Mantle has consistently proven itself in a number of games and engines, to the extent that low-overhead APIs were one of the hottest topics at the 2014 Game Developer Conference. Microsoft announced DirectX® 12, a “console-like” iteration of their famous API that promises to streamline development and address programming overhead. Others talked low-overhead OpenGL™, and the practices that might need to be adopted to get there.

 

It’s important to highlight that AMD was an essential voice in both of these discussions, and the chronology plainly demonstrates that Mantle has been highly influential to both the theme and the existence of these discussions. Naturally, we are 100% behind any decision that provides the benefits of low-overhead game development accessible to more gamers and developers.

 

As DirectX® 12 games sits about 20 months away by Microsoft’s estimation (“holiday 2015”), there exists a long  period of time from today where game developers must prepare their studios for a future when all major graphics APIs seek to extract the same sort of benefits that Mantle has pioneered. As the industry’s only proven low-overhead API for PC graphics, Mantle stands ready and waiting to address that gap.

 

Beyond that point, we expect DirectX® 12 to be every bit the robust and powerful solution Microsoft has promised it will be. We know that because we, too, are a member of the consortium Microsoft assembled to help shape this and every other version of their API since the 1990s.

 

When DirectX® 12 lands in late 2015, millions of AMD Radeon™ products based on the GCN Architecture will be compatible on day one. Thanks to Mantle and our presence in the console space, AMD will also stand alone with a graphics architecture that has received years of attention from developers working with low-overhead graphics APIs.

 

Above all, Mantle will present developers with a powerful shortcut to DirectX® 12, as the lingual similarities between APIs will make it easy to port a Mantle-based render backend to a DirectX® 12-based one if needed or desired. In addition, Mantle developers that made the bold decision to support our historic API will be well-educated on the design principles DirectX® 12 also promises to leverage. Finally, we will ensure that tomorrow’s game engines have an easy time of supporting a Mantle render backend, just as talented devs are comfortable with supporting multiple backends today to better address the needs of gamers.

 

port_times.PNG.png

 

IN CONCLUSION

Over the last seven months, we have been quite transparent about the origins of Mantle rooted in requests from developers, the problems we hope to solve with Mantle, and the effect it has had on this incredible industry. In our communications, even within this very blog, we’ve also been open and honest about the nature of our data and the areas we’re still actively addressing to make Mantle an even better solution for problems in game development. And today, we’ve shared with you our vision for the future of graphics, along with Mantle’s place in that future.

 

We heartily welcome discussion and analysis of the nature of Mantle in ways that comprehensively and accurately consider both CPU-bound and GPU-bound scenarios. We also invite inquisitive and philosophical investigation into why Mantle’s adoption has been so rapid, why Mantle is gaining traction amongst the largest and most experienced development studios, and how Mantle has shaped the direction of the graphics industry as a whole.

 

Whatever the future ultimately holds, we at AMD are simply proud the industry is joining us in making faster hardware through smarter software. That was our prime philosophy since the day game developers came to us—as they did each hardware vendor—asking us for a better way. We’re glad others respect that philosophy, too, and we can’t wait to put our GPUs to work in support of that mission wherever it may go.


Robert Hallock does Technical Communications for Desktop Graphics at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.

rhallock

The performance of Mantle

Posted by rhallock May 28, 2014

Mantle is an API made in service to the game development industry, optimized to handle the performance challenges most often encountered by developers. A key challenge for these developers is engine performance that has been constrained by poor multi-core scaling or processing overhead, particularly in scenes with a large number of objects.

 

The performance benefits of Mantle are very important to industry titans like DICE and Crytek. Figures 1 and 2 reflect the efficiency gains that have captured their attention.


mantle_in_thief.png

FIGURE 1: The performance of the Mantle graphics API is extracting untapped performance from existing hardware by removing bottlenecks in CPU-bound scenarios.

 

Figure 1 shows the built-in benchmark mode for Thief, which is designed to deliberately pressure systems with a high number of draw calls including characters, weather, carts, stalls, reflections, complex shadowing and many more objects.

 

Behind the scenes, each object represents a “draw call,” or a moment in time when the CPU and GPU must communicate to put something on the screen for your enjoyment. Historically, the quantity of draw calls—the image quality and detail provided to you—has reached a software limit before the hardware limit. The money you are investing in powerful hardware has been hamstrung by software inefficiencies!

 

Mantle is specifically designed to address this case by significantly raising the draw call limit by up to 900%.1 While increasing the draw call limit does not necessarily yield an equivalent jump in FPS, the data in figure 1 certainly demonstrates big performance gains can be achieved when you allow for better parallelization.

 

HARDCORE GAMERS: A LOOK AT MANTLE & MULTI-GPU

Moving on to multi-GPU platforms, we enter into an area where hardware has been even more constrained by software, as limited multithreading capabilities must now be stretched thin across two graphics cards hungry to get data and do work—even at 1600p!

 

Visiting the “Angry Sea” mission in Battlefield 4™ with this configuration demonstrates a large performance delta between DirectX® 11 and Mantle, even when one of those graphics cards is using a driver allegedly tuned to improve performance by reducing driver overhead in DirectX® 11.


mantle_mgpu.png

FIGURE 2: The data reveals that Mantle better equips a processor to feed a hungry dual-GPU configuration than DirectX® 11.

 

We would be remiss if we didn’t put a fine point on this and remind you that this performance disparity represents a squandering of the money you invested in your hardware. Mantle isn’t just a way to increase detail or performance--it’s a return on your investment as a gamer.


ON THE TOPIC OF ROI

Another interesting trend arises from the data, in that the low-overhead benefits of Mantle are evidently unlocking the true performance of processors across the board, allowing contenders at very different prices to churn out approximately equal performance regardless of their retail cost. The importance of this trend, when extrapolated to an industry now focused on low-overhead APIs, cannot be understated.

 

mantle_cpu_prices.png
FIGURE 3: The AMD FX-8350 is $850.99 less expensive than the Intel Core-i7 4960X, but it’s faster in Thief, a game equipped with the Mantle graphics API.2

 

Consider the implications of a new landscape where the budgetary choices you make for your PC have been democratized by software that totally deemphasizes the importance of your processor decision (and, by extension, the corresponding motherboard).

 

What would that do to the cost of your system when low-overhead APIs like Mantle become the norm? Would you purchase a less costly CPU and a more powerful graphics card instead? Would you simply reduce the cost of your system, perhaps by several hundred dollars? Little has been discussed on this topic, but we invite you to consider it in greater detail in your communities and articles.

 


Robert Hallock does Technical Communications for Desktop Graphics at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.


FOOTNOTES:

  1. Testing performed at AMD Labs by isolating API CPU performance.  “Draw” defined as the minimum unique entity that can be rendered by an API draw command and a typical unique state associated with it.  Mantle performed an average draw of 0.36 microseconds over two CPU threads.  DirectX 11 performed an average draw of 3.89 microseconds over a single API thread and a single driver thread.  Mantle results discounted by 20% for conservatism (i.e. 3.89/0.36/1.2 = 9.00).    Test configuration:    Intel Core 2 CPU X9650 at 3GHz, 4 GB of PC2-6400 RAM, AMD Radeon HD 7970 video card with 3 GB VRAM. [MAN-36]
  2. Pricing data obtained from Newegg.com on 05 May, 2014. Intel Core i7-4960X ($1049.99). AMD FX-8350 ($199.99).

We’ve said much about Mantle’s goals and merits of late, but now it’s time to listen directly to the brilliant people who are actually in the business of making games.

 

Dan Baker, a partner at Oxide Games and the former graphics lead for Sid Meier’s Civilization® V, knows a thing or two about driver overhead and graphics APIs. In an interview conducted by MaximumPC regarding their Mantle-enabled “Nitrous” engine, he explained that Mantle is a cure for an industry that is in need of greater parallelization.

 

[…]APIs are still designed in this functional threading model where you have a series of processes that pass work back and forth to each other. The idea is that you have say, one thread for rendering, one thread for audio, one thread for gameplay, etc. This is really not a scalable way to build things,” Baker said.

 

“In situations where you have a shared L3 cache, you also create contention from all the different processes running, since they all access completely different memory. The industry continues to move to a job-based setup, where we have lots of tiny jobs that run asynchronously. This can now scale to a large number of CPUs, and we can fill up most of the previously unused time where one of the processors isn't doing something.”


On the topic of driver overhead, Baker’s insights were also particularly enlightening, noting that his team has been “completely limited in what [they] could do by driver overhead problems.” With Mantle, however, his team rapidly discovered that Mantle is such an elegant solution that it “dwarfs” the Direct3D 11 performance they could achieve in their engine with any hardware vendor.

 

The team at Firaxis, authors of the upcoming Civilization: Beyond Earth, unequivocally voiced the same opinion in a recent blog on Mantle: “Simply put, Mantle is the most advanced and powerful graphics API in existence.  It provides essentially the same feature set as DX11 or OpenGL, and does so at considerably lower runtime cost.”


For game developers, who live and breathe time-to-market pressures on their titles, Mantle has an added benefit. Mantle is their only opportunity to spend less time “tricking the system” to overcome software limitations, and more time getting on with the business of designing cool stuff for gamers. Our development partners have praised Mantle for reducing developmental complexity, which cannot always be said for API extensions or laborious code optimization efforts.

 

A notable proponent of this philosophy is Chris Roberts, CEO of Cloud Imperium Games and the brains behind Kickstarter sensation “Star Citizen.” In announcing support for Mantle, he noted that the API was key for achieving his vision without fighting the software to get there.

 

"AMD's Mantle will allow us to extract more performance from an AMD Radeon GPU than any other graphics API," Roberts said. "Mantle is vitally important for a game like Star Citizen, which is being designed with the need for massive GPU horsepower. With Mantle, our team can spend more time achieving our perfect artistic vision, and less time worrying about whether or not today’s gaming hardware will be ready to deliver it."


Firaxis also had something to say on this topic, noting that Mantle’s thinner abstraction layer empowers them to make better-informed game development decisions.

 

“The Mantle API is able to be backed by a very small, simple driver, which is thus considerably faster,” Firaxis said in their blog.  “It also means that this work, which must still be done, is done by someone with considerably more information.  Because the engine knows exactly what it will do and how it will do it, it is able to make design decisions that drivers could not.”


Dan Baker has a related philosophy, noting in his opening remarks (figure 1) at GDC14 that Mantle addresses fundamental development challenges that cannot addressed by a retrofit of an existing API.

 

mantle_retrofit.png

FIGURE 1: Dan Baker of Oxide Games said it plainly when he presented this slide at the 2014 Game Developer Conference: you can’t retrofit old APIs.


Baker continued this line of thinking in a recent blog, saying: “[…] many of the most experienced developers, Oxide included, had for years advocated a lighter, simpler API that did the absolute minimum that it could get away with. We believed we needed a teardown of the entire API rather than some modifications of current APIs.”

 

Johan Andersson, technical director of the Frostbite engine at DICE, has also praised Mantle for making development easier. That was the central theme of his keynote presentation at the APU13 developer conference late last year, which opened with exactly that sentiment (figure 2).

 

mantle_johan.png

FIGURE 2: An opening slide from Johan Andersson's keynote presentation at the AMD APU13 developer conference.


In review, it is evident that Mantle is addressing a clear need within the industry to reimagine or reinvent the graphics API, and to flush out tired problems that have long stifled game development. Together, AMD and top game developers are collaborating not only to undertake that effort, but to share the results widely throughout the gaming industry so that gamers of every stripe might ultimately benefit.

 

 


Robert Hallock does Technical Communications for Desktop Graphics at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.

rhallock

Mantle 101

Posted by rhallock May 28, 2014

In the six months since Mantle’s January launch, it has quickly grown to be incredibly successful: seven game developers have pledged support, four game engines have adopted and 20+ games will be Mantle-based. Within those figures, Crytek and AMD recently announced Mantle support in Cryengine, and AMD joined forces with 2K Games to bring Mantle support to Sid Meier’s Civilization®: Beyond Earth™. In addition, this month marked the start of the private beta program for the Mantle SDK, which boasts another 40 developers committed to exploring the benefits of our revolutionary API.

 

With all this momentum for Mantle, we thought it would be a good time to look forwards, backwards and sideways at Mantle to give a comprehensive view of  how and why it has achieved overwhelming industry praise. Let’s start, however, by looking at how Mantle reclaims lost performance for gamers.

 

With a basic implementation, Mantle was designed to improve performance in scenarios where the CPU is the limiting factor (so-called “CPU-bound” cases). CPU-bound scenarios are commonplace in gaming, as existing APIs are laden with heavy validation overhead, and have difficulty scaling out to multiple CPU cores. By addressing these problems, games developed with Mantle improve the experience for the majority of global PC gamers that have entry-level and mid-range processors.

 

Mantle achieves this through:

  • Low-overhead validation and processing of API commands
  • Explicit command buffer control
  • Close to linear performance scaling from reordering command buffers onto multiple CPU cores
  • Reduced runtime shader compilation overhead

 

Mantle is also designed to improve situations where high resolutions and “maximum detail” settings are used, although to a somewhat lesser degree, as thess settings tax GPU resources in a way that is more difficult to improve at the API level (so-called “GPU-bound” scenarios). While Mantle provides some built-in features to improve GPU-bound performance, gains in these cases are largely dependent on how well Mantle features and optimizations are being utilized by the developer. Some of those features include:

 

  • Reduction of command buffers submissions
  • Explicit control of resource compression, expands and synchronizations
  • Asynchronous DMA queue for data uploads independent from the graphics engine
  • Asynchronous compute queue for overlapping of compute and graphics workloads
  • Data formats optimizations via flexible buffer/image access
  • Advanced Anti-Aliasing features for MSAA/EQAA optimizations

 

For even more detail, we recently published our first whitepaper on Mantle. This 11-page brief contains essential technical information on the form and function of the Mantle graphics API. In addition, you might also read these recent blogs by Oxide Games and developer Josh Barczak, which detail some specific and significant ways Mantle is improving their development experience.

 

Altogether, these mechanisms have proven unquestionably attractive for a legion of game developers, to the extent that the first-year adoption rate for the Mantle API is projected to exceed the adoption rate of DirectX® 11 (see fig. 1 below).

 

api_adoption.PNG.png

FIGURE 1 - Industry interest in a picture: the number of games in development with Mantle support through Q1 2015.

 

We’re thrilled to see so many industry luminaries in active development with Mantle in its beta phase, as these studios have a vested interest in making the ideal, high-performance API for PC graphics. Throughout this process, we are discovering new opportunities to reduce inefficiency, and we’re evolving how we make better use of the technologies we have on-hand today.

 

As the famous lyrics go: “you ain’t seen nothin’ yet!”

 


Robert Hallock does Technical Communications for Desktop Graphics at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.

 

FOOTNOTES:

  1. http://en.wikipedia.org/wiki/List_of_games_with_DirectX_10_support
  2. http://en.wikipedia.org/wiki/List_of_games_with_DirectX_10_support
  3. AMD internal estimates

Filter Blog

By date:
By tag: