
AMD's Mantle API is a polarizing topic in the world of PC gaming. There are many opinions, lots of information, plenty of speculation, and a handful of known facts to sift through. We want to tell the whole story, and we want to do it right. Unfortunately, it's almost impossible to discuss this topic without resorting to industry jargon, so let's start at the very beginning and lay out some definitions, set the stage, identify where we were, and how we got here.
What is an API?
The acronym API stands for application programming interface. The key word here is interface. An API is designed to allow applications to interface, or communicate, with each other.
A great example of this is copy and paste functionality in Windows. When you copy a paragraph of text from your browser to the clipboard, and then paste that text into a word processor, you have applied the power of an API. The developers of your browser included support for the API's request (or call) to copy, while the programmers of the word processor included support for the API's call to paste. Those two programs communicate to each other via the API.
The advantage of an API is that software developers don't have to code specific support for every possible application. If it wasn't for APIs, all of the document editing software in the world would have to contain unique code to interface something like copy and paste functionality with every other document editing software in the world. That model would be impossible to maintain.
The downside? An API is not as efficient as coding specific support for direct communication between software. The price of convenience is increased utilization of hardware and processing resources.
OK, what is a graphics API?
Since an API exists to provide a communication interface between applications, a graphics API communicates between an application and a graphics card driver.
The name of the game here is compatibility. Instead of coding a game engine to support multiple paths to interface with specific graphics card drivers, game developers can concentrate on communication with the API instead. The API then calls the graphics driver, which implements its instructions to the graphics card. In this way, graphics APIs can be considered one of the abstraction layers between the OS and hardware.
If the purpose of a graphics API is simplicity and convenience, why is there more than one API?
OpenGL has its roots in SGI's proprietary Iris GL, which was released in the early 1980s. In a surprising move, the company handed it off as an open standard called OpenGL (Open Graphics Library) API. SGI's competitors were given access in exchange for sharing the burden of maintaining and updating the code.
Microsoft even had a seat on the OpenGL Architecture Review Board until 2003, when the company pulled support in favor of its proprietary DirectX API, which is now more prolific. Currently, DirectX is used in Windows and the Xboxes, so it's easy to justify choosing Microsoft's API from the standpoint of a developer who wants to get the most out of their available resources.
Having said that, John Carmack is a famous holdout who we've seen prove that OpenGL can still be used to run high-end PC games (like Rage). In addition, OpenGL is important because it can be used across platforms: Windows, Mac, and Linux. Android, Windows Phone, and the iPhone use OpenGL ES (Open GL for Embedded Systems). As gaming on mobile devices gains prominence, so does OpenGL.
What's wrong with DirectX 11 and OpenGL? Why does the world need another graphics API?
Two standards at odds are bad enough. It seems counter-intuitive to add another. So how do existing APIs fall short of developer expectations?
Both DirectX and OpenGL were created in the previous millennium. It was a time before multi-core CPUs in mainstream devices were possible. Recently, some developers have voiced concerns that they are bloated, prone to instability, and scale poorly (or not at all) on well-threaded platforms. In addition, no API is perfect. Have you ever had to update a graphics driver to get a game to work properly? Every time this happens, the graphics API has failed in its role as an abstraction layer.
On top of this, it was rumored that Microsoft considered halting DirectX development in 2013. In an interview with c't, AMD's Roy Taylor was quoted as saying, "A new DirectX has again and again refreshed the industry, new graphics cards need more processors and more RAM. But there is no DirectX 12 come. That's it. As far as we know, there are no plans for DirectX 12". In addition, a leaked Microsoft email said the cross-platform XNA Game Studio development platform is not in active development, and that DirectX is no longer evolving as a technology. Microsoft later retracted this and claimed it was a miscommunication, but with no published plans for DirectX 12, the developer community was getting antsy.
|
|
|
|
|
AMD claims to have been driven to the creation of a new API that would address those issues at the behest of developers disenchanted with the state of DirectX and OpenGL. In addition, because AMD APUs and GPUs drive the Xbox One, PlayStation 4, and many PCs, the company is in a unique position to offer an API that could potentially be leveraged across multiple platforms.
How does Mantle supposedly improve compared to OpenGL and DirectX?
Mantle is associated with the phrases "low-level" and "closer to the metal". But what does that actually mean? In simple terms, the answer is minimalism. It's smaller, simpler, and consequently faster than DirectX 11 and OpenGL. AMD's new API purportedly makes fewer assumptions about how developers want to render a given scene. This puts more control of resources in the developer's hands, instead of the API's, allowing for better optimization.
In this light, Mantle has the potential to be more efficient. In addition, Mantle is able to execute fully-parallel draw submissions in order to divvy up workloads to multiple CPU execution units. If the API is able to effectively utilize more processing resources, slower CPUs with multiple execution units may be less of a bottleneck.
Put simply, AMD claims that Mantle has the potential to increase performance on systems with slower multi-core host processors. Where the CPU is not a bottleneck, Mantle might even lower GPU power consumption.
AMD claims to be a big supporter of open source. Is Mantle an open source API?
Mantle is not open source, nor does AMD claim that it will ever be open source in the future. The company does say that it will make the Mantle SDK available to anyone by the end of 2014 with no license fee or restrictions once the closed beta program is complete, though.
To clarify, access to the SDK isn't the same as open source. But it does mean that, in theory, Nvidia and Intel could write a Mantle-compatible driver. Realistically, I think this is unlikely. But I'll save my analysis of the situation for our conclusion. The point is, AMD wants to keep control of Mantle to optimize it for the GCN architecture and allow for fast developer adoption of new hardware features, which isn't practical for generic APIs like DirectX and OpenGL.
Alright, I think I have a handle on the basics of Mantle. What now?
Well, we want to put Mantle to the test and see exactly what it can do. While AMD promises that a number of developers are working on Mantle support for upcoming titles like Civilization: Beyond Earth, Star Citizen, and Dragon Age: Inquisition, at the time of writing, there are only three games on the market that currently support AMD's API: Battlefield 4, Thief, and Plants vs. Zombies: Garden Warfare. Since Plants vs. Zombies: Garden Warfare does not have Mantle benchmark functionality available, and it uses the same Frostbite engine that powers Battlefield 4, we'll concentrate on the first two Mantle-enabled titles.
You might assume that Mantle's primary purpose is to squeeze as much performance as possible out of Radeon graphics cards. In a sense, that is true. But it's important to keep in mind that the problem Mantle is designed to solve isn't really graphics-oriented. Rather, Mantle is intended to tackle the inefficiencies that hamper how the work is distributed to CPUs.
Therefore, in a best-case scenario, Mantle alleviates bottlenecks imposed by budget-oriented processors (the kind AMD manufactures and sells). For instance, consider this scenario: in DirectX, a Radeon card may deliver faster performance on a high-end Intel Core i7 than on an FX-4170. If Mantle works as intended, we should expect to see the FX-4170's performance results increase and come closer to the Core i7. We wouldn't expect the Core i7's numbers to increase much because it's already a very fast CPU that masks the driver overhead imposed by DirectX.
To test this, I set up a wide array of platforms and graphics cards described in the table below. All Radeon cards are benchmarked under DirectX and Mantle to gauge whether there are appreciable differences. I also include GeForce cards for the sake of comparison.
|
|
|
|
|
While we usually run our benchmarks through Fraps or FCAT, both solutions are designed for use under DirectX, and consequently don't work with Mantle. As a result, we're forced to use the built-in benchmarking tools supplied with Thief and Battlefield 4. Thankfully, the command console of Battlefield's Frostbite engine is quite robust, allowing us to capture detailed frame time variance data. As for Thief, we can only record game-supplied frame rates, so frame time data is not available.

As you'll see later in this story, we needed a specific mid-range card with 4 GB of memory for a special test. MSI sent over its Radeon R9 270X Gaming 4G, armed with a Twin Frozr IV cooler and three operating modes: silent (1050 MHz), gaming (1080 MHz), and overclocked (1120 MHz).
High-end graphics cards require a substantial amount of power, so XFX sent us its PRO850W 80 PLUS Bronze-certified power supply. This modular PSU employs a single +12 V rail rated for 70 A. XFX claims continuous (not peak) output of up to 850 W at 50 degrees Celsius.
We've almost exclusively eliminated mechanical disks in the lab, preferring solid-state storage for alleviating I/O-related bottlenecks. Samsung sent all of our labs 256 GB 840 Pros, so we standardize on these exceptional SSDs.
| FM2+ System | AM3+ System | LGA 1155 System | LGA 1150 System | |||
|---|---|---|---|---|---|---|
| Motherboard | ASRock FM2A88X-ITX+, Socket FM2+ | Gigabyte GA-990FXA-UDS, Socket AM3+ | Asus P8Z77-V LX, LGA 1155 | ASRock Z87 Pro3, LGA 1150 | ||
| Processor | AMD A10-7850K, Quad-Core, 3.7 GHz (4 GHz maximum Turbo Core) | AMD FX-8350, Octa-Core, 4 GHz (4.2 GHz maximum Turbo Core) AMD FX-4170, Quad-Core, 4.2 GHz (4.3 GHz maximum Turbo Core) | Intel Core i3-3220, Dual-Core, Hyper-Threading, 3.3 GHz | Intel Core i7-4770K, Quad-Core, Hyper-Threading, 3.5 GHz (3.9 GHz maximum Turbo Boost) | ||
| Memory | 8 GB Corsair Vengeance LP (2 x 4 GB) 1600 MT/s, CAS 9-9-9-24-1T | |||||
| Graphics | GeForce GTX 650 2 GB GDDR5 GeForce GTX 660 2 GB GDDR5 GeForce GTX 780 Ti 3 GB GDDR5 Radeon R7 250X 1 GB GDDR5 Radeon R9 270 2 GB GDDR5 Radeon R9 270X 4 GB GDDR5 Radeon R9 290X 4 GB GDDR5 | |||||
| System Drive | Samsung 840 Pro, 256 GB SSD, SATA 6Gb/s | |||||
| Power Supply | XFX PRO850W, 850 W, 80 PLUS-certified | |||||
| Software and Drivers | ||||||
| Operating System | Microsoft Windows 8 Pro x64 | |||||
| DirectX | DirectX 11 | |||||
| Graphics Drivers | AMD Catalyst 14.3 Beta (14.4 Beta demonstrates some performance detriment issues) Nvidia GeForce 337.88 WHQL | |||||
And here are the benchmark details:
| Benchmark Configuration | |
|---|---|
| 3D Games | |
| Thief | Built-in benchmark |
| Battlefield 4 | THG custom benchmark, 90 seconds |
We begin at the bottom end of Mantle-capable GPUs, with integrated graphics on AMD's A10-7850K APU. As mentioned on the benchmark setup page, Thief does not record frame time data, so all we can report are frame rates.

Mantle demonstrates an advantage, but it's very slight. Nevertheless, it comes just a bit closer to an average of 30 FPS, though a minimum frame rate of 20 FPS isn't something we'd consider playable.
Discrete graphics cards allow us to bump the resolution up from 720p to 1080p. So, let's paint a more detailed performance picture:

Here we see Mantle's ability to marginalize platform bottlenecks. Under DirectX, the Core i7-4770K averages about 42 FPS, while AMD's FX-4170 tops out at 34 FPS. That's an 8 FPS delta that's reduced to 2 FPS when the FX-4170 platform leverages Mantle instead.
On the previous page, we started with an A10-7850K APU and Radeon R7 250X graphics card at Low detail levels. Now we're increasing graphics quality to the Normal preset at 1920x1080 using a Radeon R9 270 and GeForce GTX 660.
Again, Thief appears to be an ideal proof point for Mantle. Under DirectX, the Core i7-4770K-based platform averages 56.7 FPS, while the FX-8350 registers 46. Once we switch over to Mantle, the AMD CPU is able to muster 56.4 FPS, nearly achieving performance parity with Intel's high-end processor.

Finally, with the High preset enabled, and a Radeon R9 290X/GeForce GTX 780 Ti installed, the results start getting strange. Nvidia's high-end gaming card averages about 80 FPS on a Core i7-4770K, and is matched by the Radeon R9 290X using Mantle and an FX-8350. Then, we swap the R9 290X into our Core i7-4770K-based system and observe dismal results with Mantle turned on.
The numbers are repeatable, and we don't have a concrete explanation to put forth. But we're reminded that AMD considers Mantle to be a technology in its beta stage. Overall, though, Mantle continues to help performance trend higher than DirectX.
Thanks to Battlefield 4's built-in frame time capture tool, we can extrapolate detailed information about performance. Let's start with the Very Low detail preset at 1600x900 using the A10-7850K's on-die graphics engine.


Mantle offers a tiny advantage, but it's not worth affecting your purchasing decision. The bigger surprise is that an APU can handle Battlefield 4 at 1600x900 without dropping under 30 FPS at all.


The frame time variance is excellent under Mantle and DirectX in this test. It's very low with no remarkable spikes, so the result appears quite smooth on-screen.
Next, the Radeon R7 250X and GeForce GTX 650 demonstrate what lower-end discrete cards can do. We put pressure on them by increasing the detail preset to High and increase resolution to 1920x1080.


Alright, there are a lot of bars and a lot of lines in the two charts above. But what they're basically telling us is that Mantle hurts performance, rather than helps.
We contacted AMD about our numbers, and company representatives let us know that Battlefield 4 has a specific issue with Mantle that is triggered on cards with less than 4 GB of memory. The Radeon R7 250X we tested has 1 GB. The GeForce GTX 650 has 2 GB, though of course that's not Mantle-compatible. I'll get into more depth on the issue shortly. But for now, let's have a look at frame time variance.


Variance is in the acceptable range; none of the cards demonstrate more than 3 ms at the 95th percentile. There are a few spikes, but nothing to cause alarm.
A Radeon R9 270 and GeForce GTX 660, both with 2 GB of GDDR5, give us an opportunity to either confirm or refute AMD's claim that Mantle has an issue with less than 4 GB of memory. If true, we should see the same problem again. Just to make sure we're increasing graphics load at the same time, detail is increased to the Ultra preset.


And there it is. The performance hit remains. Does frame time variance change at all?


Variance remains low, although stuttering is more noticeable when the frame rate drops below 25 FPS.
Lastly, we drop in the Radeon R9 290X and GeForce GTX 780 Ti. AMD's card is armed with 4 GB, so we should avoid the admitted memory issue and observe positive scaling from Mantle. Both powerful boards inspire us to raise the resolution to 2560x1440, too.


AMD's API has some impact, finally, allowing the FX-8350-powered system to jump from an average of 45 FPS with DirectX to 51.4 under Mantle. Additionally, Mantle allows the Radeon R9 290X to approach the GeForce GTX 780 Ti's performance (and Nvidia's board is quite a bit more expensive).


As with our other Battlefield 4 tests, frame time variance reported by the in-game tool is low, helping quantify a smooth result.
As mentioned, we let AMD know about our Mantle issues under Battlefield 4, and was told that the game currently suffers from an issue that results in lower performance on cards with less than 4 GB of memory. In order to test this issue, we were sent an MSI Radeon R9 270X with 4 GB of GDDR5. Does the extra memory alleviate our observed problem?


While we don't see the performance penalty that Mantle caused previously, there's no perceptible advantage, either.
Once again, the frame time variance is exceptionally low on average, and the occasional spikes make little difference.
For now, it appears that on-board memory isn't the only limiting factor. At least in Battlefield 4, Mantle demonstrates an advantage over DirectX on high-end cards with 4 GB of memory. The extra GDDR5 doesn't appear to help a Radeon R9 270X under the API.
Battlefield 4 (June 3 Update) And Catalyst 14.6 Beta Release Candidate 2
This is one of the most benchmark-intensive articles I've ever written, involving multiple graphics cards tested across multiple platforms. I began the project back when Catalyst 14.4 Beta was the newest driver available, but used Catalyst 14.3 Beta because there were instances of the 14.4 driver penalizing performance.
Once testing was complete, I spent a lot of time doing additional research. I discussed the numbers with AMD, which led to 4 GB corner case benchmarking. I did more homework on APIs, and Chris Angelini spent some time with AMD's Richard Huddy in Bakersfield. To make a long story short, enough time passed that Battlefield 4 received an update on June 3rd, and AMD released its Catalyst 14.6 Beta driver.
I needed to make sure that my Mantle-based performance data was still relevant, so I ran a few tests with the latest updates and found that, in Battlefield 4, performance under Mantle improved on video cards with less than 4 GB of memory. The bad news is that, while the gap gets smaller, AMD's API is still a tad slower with a less consistent frame rate than DirectX 11. Even though the gap is much closer, Mantle doesn't offer an advantage in anything less than a Radeon R9 290.
The bottom line is that Radeon cards with less than 4 GB of memory still do not benefit from a performance advantage in Battlefield 4 under Mantle. But with the newest driver and game patch, that hit is smaller than our numbers with the 14.3 Beta package. Its an encouraging development, which speaks to the work AMD and DICE are putting into the API. But it also shows us how much effort is required. We'd hope that Battlefield 4 would run faster under Mantle, regardless of the card installed and its on-board graphics memory capacity.
Image Quality Comparison: Mantle vs. DirectX
When the Mantle patch first launched, we saw evidence of inconsistent visual output using the newer API compared to DirectX 11 in Battlefield 4. So, I took some screenshots in the two games we tested for a comparison. Here are the results:

Previously, it was reported that there was a difference in saturation and contrast between Mantle and DirectX in Battlefield 4. But at this point in development, the disparity is apparently gone. We know DICE addressed the bug publicly and claimed to have fixed it in a subsequent patch.

As for Thief, I didn't find any meaningful image quality disparities between Mantle and DirectX.
How does Mantle impact the future of gaming?
Today we thoroughly tested the only two benchmarkable titles with AMD Mantle support. Thief exhibits clear (and impressive) performance gains under the API and really does mitigate much of the platform-oriented bottleneck imposed by low-cost CPUs. Battlefield 4 demonstrates gains with a Radeon R9 290X, while mid-range and low-end discrete cards suffer from what AMD suggests is a memory-related issue under Mantle. I tested a Radeon R9 270X with 4 GB as verification, and while Mantle didn't hurt performance, it also didn't enjoy an advantage. AMD says Mantle is in its beta stage, and so perhaps anomalies like this are expected as we sort through corner cases.
Regardless, based on most of our tests (and developer testimony), it's pretty clear that Mantle offers certain advantages over DirectX 11, at least. We don't have any OpenGL-based games to compare, but the claim is that both entrenched graphics APIs are limited compared to Mantle. So, what does that mean for you as a PC user?
In the short to medium term, Mantle may provide owners of GCN-based Radeon cards a performance boost in a very short list of games. That speed-up will be minimal on platforms with fast host processors like Intel's Core i7. But it should be more significant on lower-end CPUs like the FX-4170, A10 APU, or Athlon X4.
The list of Mantle-capable games will grow in the months to come. But even if you go by AMD's count, the total isn't large. Developers who find DirectX 11 too constraining for their engine may find it worthwhile to invest in a Mantle code path. Of course, that's extra work necessitating additional resources. In this way, Mantle is currently an equivalent to Nvidia's PhysX: a vendor-specific benefit in a small number of titles.
Step out further. Once AMD introduces its Mantle SDK, it's theoretically possible for Intel and Nvidia to develop a Mantle-compatible driver, which would probably give the ISV community more impetus to jump on the bandwagon. Frankly, this is unlikely. It doesn't make a lot of sense to hitch your cart to a horse driven by a competitor. Intel has reportedly asked for access to the Mantle SDK, but this is probably for internal testing purposes.
That brings us to the long game, which is where AMD's collective head has to be right now. Will there be a place for Mantle once DirectX 12 arrives, with its own take on minimalism and the ability to execute fully parallel draw submissions concurrently on multiple CPU cores? It seems pretty clear that Intel and Nvidia will embrace the Microsoft option. I suppose that if Mantle is closely compatible with DirectX 12, developers might be willing to invest some development time to support it. But AMD will inevitably support DirectX 12 too, so the work could be redundant. Once DirectX begins propagating, Mantle's biggest strength will be its ability to expose any new Radeon-exclusive features quickly for developers who want to access them, a la 3dfx's Glide.
|
|
|
|
|
Of course, the discussion emphasizes PCs, but consoles are in play here as well. If Microsoft and Sony were to embrace Mantle on their AMD-based platforms with lightweight Jaguar-based x86 cores, the API would almost necessarily enjoy a leap in developer support. Much of the PC game library is ported from (or at least developed concurrently with) console builds. Microsoft naturally has the incentive to wait until DirectX 12 is ready. As for Sony, the PlayStation 4 has its own API, which is advanced compared to DirectX 11 and OpenGL. Johan Andersson, DICE's lead graphics programmer, has said that the “PS4 graphics API is good as well; we don’t need Mantle on PS4.”
Really, the unknown quantity could be Valve's Steambox. While AMD currently doesn't support Mantle in its Linux driver, the company hinted it might be possible in the future. Assuming Valve can figure out how to make its concept hold some value (right now, we have a hard time seeing it), there may be demand for Mantle there. SteamOS has a long way to go before this is a significant factor, though.
In the meantime, Mantle does represent innovation. Even if it's eclipsed by DirectX 12, there's every reason to believe that Mantle is what spurred Microsoft into motion on its next-gen graphics API. Clearly, there was a real need or desire to eradicate overhead affecting the gaming experience. And whether AMD compelled action or the development was concurrent, AMD got its message out first. For now, and until AMD makes more notable overtures to the industry, we're looking at it as a value-added feature like PhysX. We don't mean this in a technical sense, obviously, but in the sense that it provides an advantage to one graphics card manufacturer in a handful of games.



