Wrapping up our AMD product showcase coverage for the week, AMD’s final announcement for the showcase was a very brief announcement about a new API called Mantle. Mantle is something of an enigma at this point – AMD isn’t saying a whole lot until November with the AMD Developer Summit – and although it’s conceptually simple, the real challenge is trying to understand where it fits into AMD’s product strategy, and perhaps more importantly what brought them to this point in the first place. So although we don’t have all of the necessary details in hand quite yet, we wanted to spend some time breaking down the matters surrounding Mantle as much as we reasonably can.

Perspective #1: The Performance Case

The best place to start with Mantle is a high level overview. What is Mantle? Mantle is a new low-level graphics API specifically geared for AMD’s Graphics Core Next architecture. Whereas standard APIs such as OpenGL and Direct3D operate at a high level to provide the necessary abstraction that makes these APIs operate across a wide variety of devices, Mantle is the very opposite. Mantle goes as low as is reasonably possible, with minimal levels of abstraction between the code and the hardware. Mantle is for all practical purposes an API for doing bare metal programming to GCN. The concept itself is simple, and although low-level APIs have been done before, it has been some time since we’ve seen anything like this in the PC space.

Simplicity gives way to complexity however when we begin discussing not just what Mantle is, but why it exists. At the highest level Mantle exists because high level API have drawbacks in exchange for their ability to support a wide variety of GPUs. Abstractions in these APIs hide what the hardware is capable of, and the code that holds those abstractions together comes with its own performance penalty. Of all of those performance issues the principle issue at hand is the matter of draw calls, which are the individual calls sent to the GPU to get objects rendered. A single frame can be composed of many draw calls, upwards of a hundred or more, and every one of those draw calls takes time to set up and submit.

Although the issue will receive renewed focus today with the announcement of Mantle, we have known for some time now that groups of developers on both the hardware and software side of game development have been dissatisfied with draw call performance. Microsoft and the rest of the Direct3D partners addressed this issue once with Direct3D 10, which significantly cut down on some forms of overhead.

But the issue was never entirely mitigated, and to this day the number of draw calls high-end GPUs can process is far greater than the number of draw calls high-end CPUs can submit in most instances. The interim solution has been to attempt to use as few draw calls as possible – GPU utilization takes a hit if the draw calls are too small – but there comes a point where a few large draw calls aren’t enough, and where the CPU penalty from generating more draw calls becomes notably expensive.

Ergo: Mantle. A low-level API that cuts the abstraction and in the process makes draw calls cheap (among other features).

Perspective #2: The Console Connection

However even with a basic understanding of draw calls and their overhead, so far we haven’t really explained why Mantle exists, and indeed the entire frame of reference that Mantle resides in requires better understanding just why it exists. If Mantle was merely about providing a new low level API for GCN, then the issue would be far more straightforward, and Mantle in most likelihood remain an underutilized curiosity. Instead we have to talk about what is not said and not even hinted at, but what is more critical than Mantle’s performance improvements: the console connection.

As the supplier of the APUs in both the Xbox One and PS4, AMD is in a very interesting place. Both of these upcoming consoles are based on their GCN technology, and as such AMD owns a great deal of responsibility in developing both of these consoles. This goes not only for their hardware but also portions of their software stack, as it’s AMD that needs to write the drivers and AMD that needs to help develop the APIs these consoles will use, so that the full features of the hardware are made available to developers.

At the same time, when it comes to writing APIs we also have to briefly mention the fact that unlike the PC world, the use of both high level and low level APIs are a common occurrence in console software. High level APIs are still easier to use, but when you’re working with a fixed platform with a long shelf life, low level APIs not only become practical, they become essential to extracting the maximum performance out of a piece of hardware. As good as a memory manager or a state manager is, if you know your code inside and out then there are numerous shortcuts and optimizations that are opened up by going low level, and these are matters that hardcore console developers will chase in full. So when we talk about AMD writing APIs for the new consoles, we’re really talking about AMD writing two APIs for the new consoles: a high level API, equivalent to the likes of Direct3D and OpenGL, and a low level API suitable for banging on the hardware directly for maximum performance.

This brings us to the crux of the matter: what’s not being said. Simply put, what would happen if you ported both the high level and low level APIs from a console – say the Xbox One – back over to the PC? We already know what that high level API would look like, because it exists today in the form of Direct3D 11.2, an API peppered with new features that coincide with AMD GCN hardware features. But what about a low level API? What would it look like?

What’s not being said, but what becomes increasingly hinted at as we read through AMD’s material, is not just that Mantle is a low level API, but rather Mantle is the low level API. As in it’s either a direct copy or a very close derivative of the Xbox One’s low level graphics API. All of the pieces are there; AMD will tell you from the start that Mantle is designed to leverage the optimization work done for games on the next generation consoles, and furthermore Mantle can even use the Direct3D High Level Shader Language (HLSL), the high level shader language Xbox One shaders will be coded against in the first place.

Let’s be very clear here: AMD will not discuss the matter let alone confirm it, so this is speculation on our part. But it’s speculation that we believe is well grounded. Based on what we know thus far, we believe Mantle is the Xbox One’s low level API brought to the PC.

If indeed Mantle is the Xbox One’s low level API, then this changes the frame of reference for Mantle dramatically. No longer is Mantle just a new low level API for AMD GCN cards, whose success is defined by whether AMD can get developers to create games specifically for it, but Mantle becomes the bridge for porting over Xbox One games to the PC. Developers who make extensive use of the Xbox One low level API would be able to directly bring over large pieces of their rendering code to the PC and reuse it, and in doing so maintain the benefits of using that low-level code in the first place. Mantle will not (and cannot) preclude the need for developers to also do a proper port to Direct3D – after all AMD is currently the minority party in the discrete PC graphics space – but it does provide the option of keeping that low level code, when in the past that would never be an option.

Perspective #3: Developers, Developers, Developers

With that said, the potential for Mantle is not the same as the actual execution for Mantle, and even if we’re correct about Mantle’s Xbox One origins, Mantle’s success is far from guaranteed. Mantle right now is merely the toolset to realize the possibility of bringing over existing low level code to the PC. To be successful, AMD at a minimum needs to convince multiplatform developers that it’s worth their time to do Mantle enabled versions of their rendering engines, as despite the easy porting it’s still more work than just doing the typical Direct3D port. Even then, that only captures multiplatform ports; native PC games are another matter entirely. Mantle does not necessarily need native PC games to be successful for AMD, but certainly it would strongly validate the existence and capabilities of Mantle if AMD was able to get native PC games developed against it too. After all, the draw call benefits of Mantle are still very real, regardless of which platform is the lead platform for a game.

In fact the significance of developers in this entire process should not be understated. Mantle exists because it’s faster than high level APIs, it makes porting low level console code to the PC easier, and as it turns out, because it’s something developers have been telling AMD they want. More than anything else about Mantle, this is the point AMD has been trying to drive home, as they are well aware of the potential controversy Mantle would bring. Mantle doesn’t just exist because AMD wants to leverage their console connection, but Mantle exists because developers want to leverage it too, and indeed developers have been coming to AMD for years asking for such a low level API for this very reason. As such the impression we're getting from AMD – or at least the impression they're trying their best to give off – is that Mantle was created to satisfy these requests, rather than being something AMD created and is trying to drum up interest for after the fact.

The first game to use Mantle will be Battlefield 4, and as part of the Mantle announcement AMD had DICE put together a video for today’s product showcase, in which they spent some time discussing their own interest in Mantle and low level APIs. It’s one thing for AMD to claim that developers want Mantle – something that would be difficult for the press and consumers to validate – but it’s something else entirely when developers are willing to put together lengthy testimonials in support of Mantle. To that end DICE is just one developer, but with any luck for AMD they are the first of many developers. If AMD’s claims about developers asking for this are true, then we should be able to see for ourselves soon enough if and when more developers pledge support for the API.

Perspective #4: The Drawbacks of Low Level APIs

With all of that in mind, while Mantle has the potential to provide benefits to users and developers alike, there are also some very clear downsides to using a low level API in PC game development.

Unlike consoles, PCs are not fixed platforms, and this is especially the case in the world of PC graphics. If we include both discrete and integrated graphics then we are looking at three very different players: AMD, Intel, and NVIDIA. All three have their own graphics architectures, and while they are bound together at the high level by Direct3D feature requirements and some common sense design choices, at the low level they’re all using very different architectures. The abstraction provided by APIs like Direct3D and OpenGL is what allows these hardware vendors to work together in the PC space, but if those abstractions are removed in the name of performance then that compatibility and broad support is lost in the process.

A lot of press – ourselves included – immediately began comparing Mantle to Glide. Glide was another low level API that was developed by the long-gone GPU manufacturer 3dfx, and at the height of their power in the mid-to-late 90s 3dfx wielded considerable influence thanks to Glide. Glide was easier to work with than the immature Direct3D API, and for a time games either supported only Glide, or supported Glide alongside Direct3D or OpenGL. Almost inevitably the Glide rendering path was better in some respect, be it performance, features, or a general decrease in bugs. This was fantastic for 3dfx card owners, but as both AMD (nee ATI) and NVIDIA can tell you, this wasn’t great for those parties that were on the outside.

As a result of this, as great as Glide was at the time, it’s widely considered a good thing that Glide died out and that Direct3D took over as the reigning king of PC graphics APIs. Developers stopped utilizing multiple rendering paths, and their single rendering path was better for everyone as a result. Having games written exclusively in a common, industry standard API was better for everyone.

Mantle by its very nature reverses that, by reestablishing a low level API that exists at least in part in competition with Direct3D and OpenGL. Consequently while Mantle is good for AMD users, is Mantle good for NVIDIA and Intel users? Do developers start splitting their limited resources between Mantle and Direct3D, spending less time and resources on their Direct3D rendering paths as a result?

At the risk of walking a very fine line here, like so many aspects of Mantle these are not questions we have the answer to today. And despite the reservations this creates over Mantle this doesn’t mean we believe Mantle should not exist. But these are real concerns, and they are concerns that developers will need to be careful to address if they intend to use Mantle. Mantle’s potential and benefits are clear, but every stakeholder in PC game production needs to be sure that Mantle doesn’t lead to a repeat of the harmful aspects of Glide.

Final Words

When AMD first told us about their plans for Mantle, it was something we took in equal parts of shock, confusion, and awe. The fact that AMD would seek to exploit their console connection was widely expected, however the fact that they would do so with such an aggressive move was not. If our suspicions are right and AMD is bringing over the Xbox One low level API, then this means AMD isn’t just merely exploiting the similarities to Microsoft’s forthcoming console, but they are exploiting the very heart of their console connection. To bring over a console’s low level graphics API in this manner is quite simply unprecedented.

However at this point we’ve just scratched the surface of Mantle, and AMD’s brief introduction means that questions are plenty and answers are few. The potential for improved performance is clear, as are the potential benefits to multiplatform developers. What’s not clear however is everything else: is Mantle really derived from the Xbox One as it appears? If developers choose to embrace Mantle how will they do so, and what will the real performance implications be? How will Mantle be handled as the PC and the console slowly diverge, and PC GPUs gain new features?

The answers to those questions and more will almost certainly come in November, at the 2013 AMD Developer Summit. In the interim however, AMD has given us plenty to think about.



View All Comments

  • Eddytion - Friday, September 27, 2013 - link

    Yup, from the 7000 series and up. This is the best move AMD made it's last 5 years. If this works like they say it will, it would be truly revolutionary to PC gaming. Reply
  • ssiu - Thursday, September 26, 2013 - link

    Are PS4 and Xbox One low level graphics APIs the same? If not, developers still have to do 2 different things, and I don't follow the reasoning behind "this is a port of Xbox One API to PC" (i.e. why don't you guess "this is a port of PS4 API to PC" instead). Reply
  • Eddytion - Friday, September 27, 2013 - link

    The API is not the same, but PS4 and Xbox One use the exact same GCN Architecture, that's why they brought that architecture on PC with the 7000 series. They still have to do 2 different things but the PC API is very easy to develop since it's the same as the X1 and PS4 architecture (console level language). Now what they're trying to do is to make somewhat similar low-language API for multiple AMD GPUs that are a lot easier to support and optimize. Reply
  • PanzerEagle - Thursday, September 26, 2013 - link

    Love the article. I think you are exactly correct on this being a Xbox One API port. I think what is missing is the implication for Microsoft. MS had to also agree to AMDs licensing terms for the CPU/GPU for the X1, not just the other way around as well. They knew full well this was coming, the question is why?

    AMD does not, at this point, have a mobile play. They have, over the last year, strategically set themselves up for mobile, servers, and desktop success, in part by bringing back old talent from the likes of NVIDIA, Apple, and Qualcomm. The other part is owning both and x86 and ARM licenses. They know better than anyone that graphics is driving mobile and pc business, the cpu has been commoditized, and the gpu landscape is wide open and fragmented. In comes MS with their device and service company, the X1 and Xbox Live as the center piece to be leveraged in the consumer space. The X1 is just a virtualized mesh of 3 OS's that runs on common PC hardware, I am looking at you Steam. Who says they won't release a Xbox OS for PC gamers? Not to hard to think that they could just give you a download disk that would virtualize you Win8.1 and then install the Xbox OS in another VM along side. Hardcore gamers could update there hardware as they wanted, and play against all console users at once via Live. As a side note, what better way to extend a consoles life, you could update the hardware anytime you wanted if all or most developers use Mantle, wasn't that the original idea behind DirectX? The X1 name, the ONLY One you need?
    AMD's ARM license gives them access to tablets and smartphones. Qualcomm's Adreno was once AMD/ATI's. MS has stuck to Qualcomm in their phones, could it be because the hardware is still very similar, ie easy to port software? X1 has low power cores, AMD could easily add CGN to an ARM core, X1 on the tablet or phone? AMD x86 X1 Surface tablet maybe?
    This last part is, I think, the ultimate play for MS. The Xbox is clearly the consumer facing brand for MS, and the engine for unification across all platforms. Platforms being the key word. If AMD can leverage Mantle and get the backing of most of the software developers, I see MS as using the X1 as a strategic partnership with AMD. Think Nokia, and you get my meaning. Intel CPUs are clearly better, but the cpu is commoditized, and their Iris Pro is the same thing MS did with the 360 and now X1. There is clearly a benefit to adding local dram on the die, sorry Sony PS4. Intel gpu is getting better but now where near AMD, and as Apple has shown cpu power is just not that important. I would not be surprised at all if this wasn't a dry run for MS to become more vertically integrated. AMD has the license, the patents, the talent, the roadmap, and aligns very well with MS vision. It's no coincident that AMD let this loose, this is MS vision as well, cross platform everything. It might not be today, or this year, but I would not doubt MS will pick up AMD for a penny, make their own hardware, and still license out all their software for everyone else. At the end of the day software is the one thing that isn't commoditized, it's just unifying the hardware underneath that has kept MS from realizing their dream, and Mr Gate's dream.
  • wumpus - Friday, September 27, 2013 - link

    I remember a different Bill Gates, one who simply assumed that the goal was 100% marketshare. Letting AMD peddle Mantle to Steamboxes simply doesn't seem like any goal likely to fly in Redmond. Reply
  • JDG1980 - Thursday, September 26, 2013 - link

    Funny, but I don't remember all these concerns about "fragmentation" being brought up when Nvidia came up with CUDA and PhysX.

    If Mantle is available on Linux and therefore allows easy porting of games to Steambox, then in a way it is more "cross-platform" than DirectX. Sure, you lose the ability to choose an Nvidia card, but you gain the ability to choose a different OS.
  • chizow - Thursday, September 26, 2013 - link

    I don't think there was as much concern because Nvidia has a much better track record when it comes to driver support and feature integration, not to mention they have the resources (ie. money) to expand their scope of services.

    If you read what is being promised in this article, the increased burden on AMD is TREMENDOUS. I just don't think they can do it (well), I'm sorry.

    And I'm sure you are going to challenge me on my 1st comment, but in the meantime, we got NO updates whatsoever on CrossFire framepacing, EyeFinity support (even though they were teased), and in the last few years we have seen AMD do nothing but cut support for graphics families (HD4000 and older no longer supported in every release, moved to legacy). And the latest WHQL driver release, no more Win8 or Vista support? All that on top of the big news lately with the broken CF drivers, framepacing issues.

    And we really expect AMD to now create and implement a new API ecosystem for PC, XB1, PS4, Linux and also work with each dev that wants to implement their API with timely driver updates? Is anyone who owns either AMD and Nvidia cards truly satisfied with their drivers to the point they want all that added to the mix? Fragmentation concerns, indeed.
  • Creig - Thursday, September 26, 2013 - link

    You're working pretty hard to poo-poo this, chizow. I see Wreckage is out and about on damage control as well. You Nvidia fans seem pretty nervous about Mantle.

    You should be.
  • shinkueagle - Thursday, September 26, 2013 - link

    Lol!! I just love how elegantly you put those two fanboys in their place!!! I TOTALLY ROFLed at your comment! =) Reply
  • chizow - Thursday, September 26, 2013 - link

    Nervous lol, if I were an AMD user I would be nervous. AMD's driver teams need 10 more checkboxes to fulfill like I need a hole in my head. Did you even bother to keep track of how many additional driver engineering positions alone AMD is planning to undertake? Figure 2-3 heads x $100K per seat across 3-4 new platforms...that's a lot to ask for a company that just laid off a lot of people in the last year or so.

    But yes Creig, it is amazingly ironic coming from an AMD fan like yourself that spent the last few years poo-poo'ing other "proprietary" APIs and standards like CUDA and PhysX, suddenly do an about-face to welcome Mantle as the greatest thing ever invented for GPUs. :)

Log in

Don't have an account? Sign up now