A Closer Look at AMD's Mantle
Last week AMD held a powwow of tech journalists from around the world to unveil their upcoming graphics cards. Called the GPU14 Tech Day, it effectively laid out AMD’s graphics strategy for the remainder of this year and into 2014. While new products were shown and detailed, there was one element which no one was expecting: Mantle, an API which aims to upend the PC graphics industry.
In order to understand where Mantle is coming from, we need to go back in time and take the Playstation 3 as an example of how AMD wants to change the way games interact with a PC’s graphics subsystem. While the PS3’s Cell processor and its associated graphics core are extremely hard to program for, games like Uncharted 3 and The Last of Us boast visuals that are equal to if not better than some of today’s newest PC games which run on hardware that was unimaginable when Sony launched their console.
So how was this seemingly impossible feat accomplished? Consoles give developers easier access to the graphics subsystem without messy driver stacks, loads of API overhead, a cluttered OS and other unnecessary eccentricities eating up valuable resources. As a result, console games are able to fully utilize a given resource pool and allow programmers to do more with less. In some cases (the PS3 is another excellent example of this) the flow towards true utilization takes a bit longer as programmers have to literally relearn how to approach their trade but AMD's focus here is to streamline the whole process.
Mantle has been created to reduce the number of obstacles placed before developers when they’re trying to create new PC titles or port games over from consoles. In the past, things like CPU optimizations and efficient inter-component communication have largely been pushed aside as developers struggled to come to grips with the wide range of PC hardware configurations being used. This leads to multi core CPUs remaining idle, the GPU’s on-die resources being wasted and a real lack of optimal performance conditions on the PC, regardless of its advanced hardware.
There’s also a very heavy software component when programming for the PC environment since developers routinely have to contend with a predominantly heavy driver stack and slowly evolving primary level software. That’s a problem since it leads to the software / memory interaction becoming a rather stringent traffic light, bottlenecking the flow of information between the CPU and GPU, limiting throughput.
DirectX 10 and DX11 have gone a long way towards addressing some of these roadblocks but their overall performance is still hindered by their high-level nature. They keep communication between the API, GPU, game and CPU under strict control, something developers don’t want to wade through. When using them, transmitting a large number of draw calls leads to a CPU bottleneck, meaning today’s graphics architectures can never realize their full potential.
This is where Mantle gets factored into the equation; not as a direct replacement for DirectX or OpenGL but rather as a complementary force. It’s an API that focuses on “bare metal”, low level programming with a thin, lightweight driver that effectively manages resource distribution, grants additional control over the graphics memory interface and optimizes those aforementioned draw-calls. Think of Mantle like a low level strafing run that targets key components rather than high level carpet bombing that may or may not achieve a given objective.
With a more direct line of access to the GPU, AMD is hoping that GCN’s performance could drastically increase through rendering efficiencies rather than having to throw raw horsepower at problems. Opening up new rendering techniques which aren’t tied at the hip to today’s primary APIs is also a possibility. Theoretically, this could allow Mantle to process a ninefold increase in draw-calls and more importantly, it will ensure optimizations can be carried over from the console version of a game to the PC and vice versa.
There are also some notable speedbumps to this approach as well. While the high-level API (in this case DirectX / Direct3D) will remain the same across multiple hardware and product classes, Mantle is only compatible with GCN. This is great news for anyone using a compatible graphics card or one of the new consoles but GeForce and Intel HD 4000 users may be left out in the cold since, for the time being at least, neither NVIDIA not Intel have a comparable or compatible solution. Pre-GCN cards have also been cast aside in favor of forward progress. With all of this in mind, developers may be forced to bypass legacy support, add in Mantle as a selectable option, or simply ignore Mantle until incompatible products are discontinued.
It goes without saying that AMD has won the next generation console race with the Jaguar APU on both Xbox One and PS4 so leveraging those design wins is an integral part of their future strategy. But very little has been said about the high-level and lower-level APIs being used within those products, primarily the Xbox One. Direct3D 11.2 is a given but no one could point a finger at the low-level API. That could very well be Mantle, a possibility which would very much facilitate the porting of next gen console games to PC graphics hardware, or at least AMD’s GCN. Mantle’s inclusion of native DirectX HLSL compatibility should also go a long way towards making AMD’s cross-platform dreams come true.
In many ways, this approach reminds us of 3dfx’s Glide, another low-level application programming interface developed years ago but doomed to failure due to a lack of developer support and its parent company’s eventual demise.
One of main challenges with trying to do anything outside of the typical DirectX / OpenGL environments is selling the idea to developers. Mantle may have show limitless promise but we’ve seen plenty of other budding technologies pushed aside due to a lack industry support. This time around, AMD has some major backers from day one.
Had AMD trotted out a small development studio to pimp their new wares, very few industry pundits would have taken it seriously. Instead, they achieved immediate street cred by gaining the support of Electronic Arts and by extension Dice; a combination responsible for the Battlefied series and a multi-billion dollar juggernaut of the gaming industry.
According to Johan Andersson, lead designer at Dice and a well respected evangelist of higher level PC technology, Mantle is a collaborative effort between AMD, EA, Dice and other studios. As a result, Dice’s Frostbite 3 engine will natively support the new low-level API. That’s a huge deal when you consider the number of triple-A titles that will be using it. Games like Need for Speed: Rivals, Dragon Age Inquisition, Star Wars Battlefront and Battlefield 4 will all utilize the Frostbite 3 engine and could potentially include a Mantle option. Other developers will quickly come onboard too since Mantle was created to fulfill many of their wishes and address their concerns when creating a PC title or port.
The first title to include Mantle support will be the eagerly anticipated Battlefield 4. However, Mantle will only be rolled out in a December patch, about two months after the initial release. This bodes well for the future since it proves Mantle can be patched into a game without affecting the underlying code structure and we’d still like to see it as an onscreen option much like the Source Engine allows for switching between DirectX / OpenGL rendering modes. We will also be interested to see what kind of performance boost (if any) it will achieve over its competitors.
So with all of this taken into account, where does Mantle stand within the current API landscape? We’re not all that sure yet since the technology is very much in its infancy. Judging from the blogosphere’s reaction to its announcement, developers are already clamoring to get early access to the PC-centric version. That’s an encouraging sign. However, how Mantle evolves beyond its current iteration largely depends on AMD’s willingness to support it in the coming years and this is where the question mark lies. Due to its close association with consoles and an ability to facilitate console to PC porting, supporting it from the developer and hardware engineer standpoint will be a no-brainer so the hope for continued engagement is certainly there.
Mantle and its rollout tells us a number of things: AMD’s developer relation program is starting to pay some serious dividends, the inclusion of Graphics Core Next architecture into next generation consoles is a much bigger deal than NVIDIA initially made it out to be and AMD is dead serious about gaming as part of their core focus. Mantle is a common thread which binds so many initiatives together and it has the potential to be a watershed moment for everything in AMD’s portfolio, from the upcoming Kaveri APU to discrete graphics cards to consoles.
The move to Mantle won’t be something completed overnight. Last week’s unveiling is only the first step on what will be a long and hopefully rewarding journey. Stay tuned for more information and a complete in-depth look at Mantle during AMD’s Developer Summit in November.
|Latest Reviews in Video Cards|