Late Wednesday, AMD revealed plans to launch its new Radeon R9 and R7 series of GPUs, but the company announced much more than just a new set of hardware products. It also revealed plans to offer game developers access to a new low-level 3D graphics API called Mantle that will work with the new Radeon GPUs.
AMD's press release states that Mantle will allow game developers to get to the "bare metal" of its new Radeon GPUs, which it claims will offer a "a deeper level of hardware optimization no other graphics card manufacturer can match." The first game that will use Mantle will be "Battlefield 4" from Electronic Arts, which will enable Mantle support via a software patch in December.
However, there is speculation that Mantle is actually a port of the same low level graphics API that AMD developed for Microsoft's Xbox One console. AnandTech has apparently posed that question to AMD who would not even discuss the matter. However, a statement in AMD's own press release seems to hint strongly that Mantle is a port of the API used in the Xbox One. It states:
Mantle also assists game developers in bringing games to life on multiple platforms by leveraging the commonalities between GCN-powered PCs and consoles for a simple game development process.
That could allow game developers who are making Xbox One games a quicker way to port their titles to the PC without the need to lose that low level programming. More information on Mantle is scheduled to be revealed at the AMD Developer Summit in mid-November.
Source: AMD and AnandTech
http://www.neowin.net/news/amds-man...phics-api-but-was-it-ported-from-the-xbox-one
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 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, but 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.
http://www.anandtech.com/show/7371/understanding-amds-mantle-a-lowlevel-graphics-api-for-gcn
Last edited: