Last month at our unveiling of the AMD Radeon™ R9 and R7 Series GPUs, we announced a technology called Mantle. Mantle is poised to revolutionize graphics performance on PCs by giving developers low-level access to PC graphics hardware for the very first time.
From a mile-high perspective, Mantle is the harmony of three essential ingredients:
- A thin driver within the AMD Catalyst™ software suite that allows applications to speak directly to the Graphics Core Next architecture.
- A Graphics Core Next-enabled graphics chip, such as the AMD Radeon™ R9 Series, R7 Series or HD 7000 Series GPUs.
- And an application or game engine written to utilize the Mantle SDK, such as the Frostbite™ 3 engine within Battlefield™ 4.
Working in concert, these three ingredients provide a complete hardware/software stack that’s able to take advantage of an incredibly efficient and low-overhead rendering pipeline. To put a fine point on it, Mantle is a graphics language that’s symbiotic with the Graphics Core Next architecture, which developers can use to augment their game engine for ideal performance on that architecture.
Our Mantle project is governed by four key principles…
Essential principle #1: Helping developers
Mantle represents years of collaborative effort between the gaming industry and AMD, and it comes at their request. Over the years, game developers have often expressed they long for a more efficient way to harness the power of the GPU on PCs, and for a way to streamline the writing of efficient graphics code on multiple platforms.
At present, each console currently available for purchase on today’s market runs a substantially different graphics architecture from the next. And each of those consoles substantially differs from the graphics hardware available in the latest PC video cards. That’s quite messy for developers, who must now make some difficult choices for the precious commodity that is their development time:
- Do they spend their time optimizing performance for each specific graphics architecture? The opportunity cost is that they now have less time to spend on implementing unique graphical effects.
- Do they emphasize the performance and image quality of a specific graphics architecture? The opportunity cost is that the other platforms suffer.
- Do they spend their time optimizing the PC or console versions of the game? The opportunity cost is that either PC gamers or console gamers suffer. Maybe a PC version of the game never exists at all, comes at a significant delay, or at best suffers from “consolitis” (a practice in which a PC game is principally designed to accommodate console systems). We’re positive you can think of some examples.
The preeminence of Graphics Core Next is the hardware answer to these concerns, unifying the console ecosystem (and much of the PC market) under a common graphics architecture. But Mantle is the software remedy for these difficult choices, allowing developers to uniformly work across multiple platforms in a single endeavor—consoles and PCs may be treated equitably.
It’s not that Mantle is the initial language with which developers are writing their games on each platform, as some have surmised; the point of Mantle is that it’s easy to reuse, in whole or in part, the development effort expended on the next-generation consoles when bringing the same game to life on the PC. This is because Mantle allows developers to use the same features and programming techniques they are already utilizing for next-gen game consoles. And while the initial iteration of Mantle is intended specifically for PCs, it has been designed from the beginning to be extensible to other platforms as well.
Mantle aside, the gaming industry’s practical standardization on the Graphics Core Next architecture alleviates a considerable burden on developers. Developers are now significantly less concerned with learning the intimate inner-workings of half a dozen graphics architectures, and that affords them with the opportunity to spend more time on making a game look great or run great.
Essential principle #2: Helping PC gamers get better performance
Performance brings us to the second essential principle.
The PC gaming environment is a maze of “abstraction layers,” or pieces of software that attempt to obfuscate the hardware behind a common software interface that can speak to many different graphics architectures with a common language.
While a common language is good for broad compatibility, heavy abstraction can cause a reduction in graphics performance. Abstracting the hardware for broader compatibility also has the consequence of preventing developers from taking advantage of unique hardware features that cannot be accessed with the common language.
Mantle will be exposing a large variety of hardware features not currently available in existing graphics APIs. Those features will be used to improve graphics performance and to allow new graphics algorithms to be implemented.
With respect to performance, different graphics architectures yield optimal performance when game code is written in a certain way. There are always multiple routes to achieving a certain graphical effect in the code, but the performance difference between the optimized way and another way can be quite substantial. Today’s graphics APIs still offer the flexibility to take multiple approaches, but none of them will be as efficient as directly accessing the GPU hardware via a minimal abstraction layer, which is what Mantle provides.
As a company, we do not chase one or two percentage points of performance when we set our minds to a project as elaborate and historic as Mantle. While it remains too early to disclose performance figures, we expect you will be pleasantly surprised when Battlefield™ 4 is patched to support Mantle in December. And with a Mantle back-end baked into Frostbite™ 3 you can expect other games based on this engine to reap all of its benefits.
Essential principle #3: Bringing innovation back to graphics APIs
It wasn’t that long ago that graphics APIs were an arms race to continuously provide the flashiest graphics and the best performance as quickly as the schedules for these things would allow. But you’ve probably noticed that the pace has slowed as of late. Developers have long been waiting for innovations in graphics APIs that would enable them to drive their increasingly-complex rendering workload more efficiently. A typical example of this would be the ability to process draw calls in parallel onto multiple cores to avoid CPU bottlenecks. Access to more GPU hardware features is another. Gamers deserve better, and we want to give that to you. As a complete graphics API, Mantle must be capable of coding and rendering all the in-game effects you see today. But Mantle also needs to be sufficiently extensible so that we can collaborate with game studios to create the effects of tomorrow—and it is extensible!
Mantle is not a replacement for industry-standard APIs like Microsoft’s DirectX. There is and will continue to be a need for graphics programming interfaces and languages that can support a broad range of existing and future GPUs. Mantle complements these programming models by providing new options for those developers looking to extract more from the platforms they spend much of their time working on. We believe it will also serve as a proof-of-concept that will guide the evolution of industry-standard APIs in the future.
The beauty of Mantle is that it was born and raised in the loving arms of people who are relentlessly obsessed with pushing the envelope of PC graphics: AMD’s graphics division, and powerful developers like DICE. At AMD, we crave games that push our hardware to the limits; we don’t design new and more powerful hardware to support the status quo. And at DICE, brilliant software engineers are constantly looking to push their game engines to new degrees of realism. Everyone loves being dazzled by spectacular graphics!
Together we are working on a philosophical and practical vision for how games should look and run in the future, and how we can get to the future from where we are today. Mantle has the adaptable and upgradeable nature to support that effort.
Essential principle #4: Don’t break games
While Mantle is uniquely optimized for PCs containing the Graphics Core Next architecture, we recognize there other architectures in the market. Gamers with these architectures deserve good gameplay just as much as anyone else, and we have t designed Mantle in a way that respects their right to game well.
Developers using Mantle are free to implement whatever optimizations they choose to maximize the performance of their game for everyone. Now, more than ever, Mantle assures that the choices a developer must make to optimize their game code for the leading PC graphics architectures are non-interfering choices.
Where Mantle goes from here
In short, Mantle is a new and better way to bring the code developers are already writing for next-generation consoles to life on the PC. It achieves this by being similar to, and often compatible with, the code they are already writing for those platforms. The ultimate goal of Mantle is to give gamers the ultimate performance in compatible games, and doing that in such a way that developers are free to put forth whatever effort is required to ensure optimal performance for competing platforms.
With that in mind, there is still much to be said on Mantle, and we will do that at the AMD Developer Summit (APU13), hosted at the San Jose Convention Center from November 11 to 13. Johan Andersson, Chief Architect at DICE, will be presenting a keynote about Mantle at APU13 and you can expect exciting new Mantle partner announcements as well.