You are on page 1of 2

A BRIEF PRIMER ON MANTLE

Mantle has been many years in the making by AMD, but we were not alone in this effort! Mantle was also directly shaped by the input we received from the greater game development community that has long sought a low-level graphics API for PCs. We worked shoulder-to-shoulder with developers like DICE and Oxide Games to create Mantle in the image of their needs: a streamlined, robust, efficient API for modern graphics work. In fact, Mantle is the very first API designed directly by game developers for their modern craft! At the simplest level, Mantle is an Application Programming Interface (API), or a language that game developers can use to write code that creates the beautiful graphics on your screen. In its current iteration, the Mantle API uniquely leverages the hardware in the Graphics Core Next architecture (GCN) of modern AMD Radeon GPUs for peak performance. More broadly, Mantle is functionally similar to DirectX and OpenGL, but Mantle is different in that it was purpose-built as a lower level API. By lower level, its meant that the language of Mantle more closely matches the way modern graphics architectures (like AMDs own GCN) are designed to execute code. The primary benefit of a lower level API is a reduction in software bottlenecks, such as the time a GPU and CPU must spend translating/understanding/reorganizing code on-the-fly before it can be executed and presented to the user as graphics. Mantle comes in contrast to the high level API, which offers broader compatibility with multiple GPU architectures, but does so at the expense of lower performance and efficiency. Before you proceed with performance analysis, however, we wanted to provide some new insight on the design goals of the Mantle API.

DESIGN PRINCIPLES OF MANTLE


First and foremost, Mantle is primarily designed to improve performance in scenarios where the CPU is the limiting factor (so-called CPU-bound cases); CPU-bound scenarios are legion in gaming, as existing APIs have heavy validation overhead, along with difficulty scaling out to multiple CPU cores. In addressing this common problem, Mantle enables a pronounced improvement for the majority of global PC gamers that have entry-level and mid-range processors. Some of the techniques to achieve this include: Low-overhead validation and processing of API commands Explicit command buffer control Close to linear performance scaling from recording command buffers onto multiple CPU cores Reduced runtime shader compilation overhead

In turn, Mantle makes less of an impact in cases where high resolutions and maximum detail settings are used, as these settings are likely to be maximally taxing GPU resources in a manner 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

Its also prudent to note that Mantle is still in the beta phase and may not reflect the full performance we might be able to achieve through the optimization time well be investing in the months ahead. And, as developers are still familiarizing themselves with Mantle and its relationship to Graphics Core Next, they may not have capitalized on all available opportunities for optimizationsbut that will come with time. One such optimization is the approach to multi-GPU performance scaling, which now rests in the hands of the game developer in the Mantle ecosystem. Developer control of multi-GPU performance empowers them to design an optimal multi-GPU codebase that perfectly matches the approach their rendering engine takes to graphics. Battlefield 4 is currently enabled with multi-GPU capabilities on Mantle, but the Oxide Games StarSwarm demo will be enabled with these capabilities in a later build.

THE ROAD AHEAD


Throughout the months that have followed our October unveiling of Mantle, you have been patient and kind to us as the Mantle consortium labored to make the first release the best it could possibly be. Concurrently, your support and coverage have been real and personal encouragement for every person working on the API. While we can never truly repay your kindness with a piece of software, we hope that it goes into the world with no uncertain amount of gratitude from us. We thank you so very deeply for your support, and vow to bring an even more sensational experience in the months ahead!