Mantle (API)
| Developer(s) | AMD, DICE[1] |
|---|---|
| Development status | Beta |
| Operating system | Windows, Linux (announced)[2][3] |
| Platform | x86 and x86-64 |
| Type | API for rendering |
| License | proprietary & freeware |
| Website | www.amd.com/mantle |
Mantle is a low-level rendering API targeted at 3D video games.[4] Mantle was originally developed by AMD in cooperation with DICE starting in 2013.[1] Mantle was designed as an alternative to Direct3D and OpenGL, primarily for use on personal computers, although suitable hardware is fully available in the Wii U, PlayStation 4 and the Xbox One.[1][5]
Contents
Hardware support[edit]
As proven by projects such as the Mesa 3D software renderer, OpenGL calculations can be done by the central processing unit instead of the GPU, without a graphics card even being present. As soon as all necessary specifications will have been published and Mantle becomes an open standard, implementations can be written in any programming language, for any instruction set and any operating system and published under any software license. AMD's director of software alliances and developer relations stated in an interview that Mantle may be made public in early 2014, or the year after.[6][7] As of July 2014, the Mantle specification and development materials remain unavailable to the general public, even less declared an open standard.
The only existing implementation of the Mantle API is hence only available as part of AMD Catalyst, the version for Microsoft Windows but not the version for Linux, as proprietary freeware. AMD promised to support their Mantle API only for their graphics cards and APUs which are based on their Graphics Core Next microarchitecture, but not older products based on the TeraScale microarchitecture. At time of writing (July 2014) the implementation of the Mantle API is available for the following hardware:
- certain Radeon HD 7000 Series GPUs
- certain Radeon HD 8000 Series GPUs
- certain AMD Radeon Rx 200 Series GPUs ("R7" and "R9")
- all Steamroller-based "Kaveri" APUs: AMD A10-7000 Series and AMD A8-7000 Series
- all Jaguar-based "Kabini" and "Temash" APUs: AMD E1-2000 Series, E2-3000 Series, A4-1200 Series, A4-1350, A4-5000 Series, A6-1450, A6-5200, Sempron 2650, Sempron 3850, Athlon 5150, Athlon 5350, etc.
- all Puma-based "Beema" and "Mullins" APUs: E1 Micro-6200T, A4 Micro-6400T, A10 Micro-6700T, E1-6010, E2-6110, A4-6210, A6-6310, etc.
Overview[edit]
The draw call improvements of Mantle help alleviate cases where the CPU is the bottleneck. The design goals of Mantle are to allow games and applications to utilize the CPUs and GPUs more efficiently, eliminate CPU bottlenecks by reducing API validation overhead and allowing more effective scaling on multiple CPU cores, provide faster draw routines, and allow greater control over the graphics pipeline by eliminating certain aspects of hardware abstraction inherent to both current prevailing graphics APIs OpenGL and Direct3D.[8]
CPU-bound scenarios[edit]
With a basic implementation, Mantle was designed to improve performance in scenarios where the CPU is the limiting factor:
- Low-overhead validation and processing of API commands[9][10]
- Explicit command buffer control[9]
- Close to linear performance scaling from reordering command buffers onto multiple CPU cores[9]
- Reduced runtime shader compilation overhead[9]
- AMD claims that Mantle can generate up to 9 times more draw calls per second than comparable APIs by reducing CPU overhead.[11]
- Multithreaded parallel CPU rendering support for at least 8 cores.[12]
GPU-bound scenarios[edit]
Mantle is also designed to improve situations where high resolutions and “maximum detail” settings are used, although to a somewhat lesser degree, as these settings tax GPU resources in a way that is more difficult to improve at the API level. 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 game engine. 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[9][4]
- Native multi-GPU support[4]
Benchmarks[edit]
- Performance superior to Direct3D 11[15]
- Up to 45% faster than Direct3D in Battlefield 4[16][17][18] and up to 319% faster in the Star Swarm demo in single GPU configuration[19][20][21] in extremely CPU-limited situations.
Other claims[edit]
|
|
This section is in a list format that may be better presented using prose. (August 2014) |
- Easier to port from Mantle to Direct3D 12 than from Direct3D 11 to Direct3D 12[22]
- At GDC 14 Oxide Games employee Dan Baker stated that Mantle would address fundamental development challenges that could not be addressed by a retrofit of an existing API. It is hard to optimize for the graphics device driver.[23][24][25]
- At the AMD Developer Summit (APU) in November 2013 Johan Andersson, technical director of the Frostbite engine at DICE praised Mantle for making development easier and enabling developers to innovate.[26]
- Mantle targets 100K[27]
- Monolithic Pipeline[4]
- Pipeline saving and loading[28]
- Hybrid Resource Model
- Generalized Resources
- Control over resource preparation
- Dynamic flow control without CPU intervention
- Direct GPU control
- Reduced runtime shader compilation overhead
- Better control over the hardware.[11]
- "All hardware capabilities are exposed through the API."[11]
- Reduction of command buffer submissions
- Data formats optimizations via flexible buffer/image access
- Explicit control of resource compression, expansion, and synchronization
- Asynchronous DMA queue for data uploads independent from the graphics engine
- Asynchronous compute queue for overlapping of compute and graphics workloads
- New rendering techniques
Usage[edit]
Game engines[edit]
- At GDC 2014, Crytek announced they will support Mantle in their CryENGINE.[29]
- During a GPU 14 Tech Days presentation, an announcement was made that Frostbite 3 would include a Mantle backend.[5][11]
- Will be used in the upcoming Nitrous game engine from Oxide Games.
- Thief is based on a modified Unreal Engine 3
Video games[edit]
- Battlefield 4[30]
- Battlefield Hardline
- Thief
- Star Citizen[31][32]
- Plants vs. Zombies: Garden Warfare
- Civilization: Beyond Earth[33]
- Dragon Age: Inquisition
- Mirror's Edge 2
- Sniper Elite 3[34]
- Star Wars: Battlefront[35]
(Partial) equivalents[edit]
The most significant functionality of Mantle—the low overhead state changes—has subsequently been made available (in multi-vendor form) in OpenGL 4.5 as Direct State Access and is going to be available in Microsoft's DirectX 12 as well.[36] After details about DirectX 12 were made public, AMD has stated that they fully intend to support DirectX 12, but at the same time they claimed that Mantle "will [still] do some things faster." They have also claimed that due to similarities in the design philosophy of the two APIs, porting games from Mantle to DirectX 12 will be relatively straightforward,[37] and easier than porting from DirectX 11 to 12.[38]
Apple has announced that iOS 8 will have a new low-level, low-overhead graphics API, called Metal.[39][40]
Comments[edit]
| “ | Much of the work that drivers used to do on an application’s behalf is now the responsibility of the game engine. ... 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. | ” |
|
—Firaxis on 2014-04-28, Why We Went With Mantle |
||
See also[edit]
- Glide – another low-level API, by the now defunct 3dfx
- GNM – low-level API of the PlayStation 4
- GNMX – high-level API of the PlayStation 4
References[edit]
- ^ a b c Altavilla, Dave (2013-09-30). "AMD and DICE To Co-Develop Console Style API For Radeon Graphics". forbes.com. Forbes. Retrieved 2014-07-14.
- ^ "AMD wants to improve gaming in Linux and Steam boxes with its Mantle tools". 2014-06-18.
- ^ "Linux support isn't ruled out completely". Phoronix. 2014-05-31.
- ^ a b c d "Mantle WhitePaper" (pdf). AMD.
- ^ a b Parrish, Kevin (Sep 25, 2013). "AMD's Mantle API Gives Devs Direct Hardware Control". tomshardware.com. Tom's Hardware. Retrieved Oct 1, 2013.
- ^ "We ask AMD: Why will Mantle be different?". VR-Zone. 30 September 2013. Retrieved 19 March 2014.
- ^ "Mantle Graphics API Frequently Asked Questions". Retrieved February 9, 2014.
- ^ "2014-02-01". AMD.
- ^ a b c d e "2014-05-28". AMD.
- ^ "AMD Gaming". 2014-02-01.
- ^ a b c d "AMD Livestream at GPU 14 Tech Days". 2013.[dead link]
- ^ Smith, Ryan (Sep 26, 2013). "Understanding AMD’s Mantle: A Low-Level Graphics API For GCN". anandtech.com. AnandTech. Archived from the original on Oct 1, 2013. Retrieved Oct 1, 2013.
- ^ "The Next Generation of Graphics APIs". Oxide Games. 2014-05-21.
- ^ "The Race to the Metal". Josh Barczak. 2014-05-23.
- ^ "2014-05-28". AMD.
- ^ AMD Mantle API Performance Analysis With Radeon R7 260X, R9 270X, R9 280X
- ^ Tłumacz Google
- ^ http://www.pcgamesn.com/battlefield/amd-claim-performance-boosts-45-using-mantle-over-directx
- ^ AMD Mantle Powered Flagship Nitrous Engine "Star Swarm Benchmark" Released on Steam
- ^ Page 2 - AMD’s Mantle benchmarked: The biggest innovation in gaming since DirectX 9 | ExtremeTech
- ^ AMD releases Mantle, shares performance numbers
- ^ "2014-05-28". AMD.
- ^ "Combining Efficient Engine Design with a modern API". 2014-03-20.
- ^ "2014-05-28". AMD.
- ^ "How Mantle changes the game" (pdf). 2013-11-21.
- ^ "Mantle for Developers (by Johan Andersson, DICE)". 2013-11-21.
- ^ "Empowering 3D Graphics Innovation". 2013-11-21.
- ^ http://community.amd.com/community/amd-blogs/amd-gaming/blog/2014/05/28
- ^ AMD Mantle support is headed to another game engine
- ^ Mantle Renderer now available in Battlefield 4
- ^ "AMD’s Revolutionary Mantle Graphics API Adopted by Industry Leading Game Developers Cloud Imperium, Eidos-Montréal and Oxide". AMD. NYSE: AMD: AMD. November 4, 2013. Archived from the original on November 5, 2013. Retrieved November 5, 2013.
- ^ "Star Citizen to Include Mantle Support". Transmission. Cloud Imperium Games. 5 November 2013. Retrieved 6 November 2013.
- ^ Mantle Takes to the Stars with Sid Meier’s Civilization: Beyond Earth
- ^ [1]
- ^ Mantle to power 15 Frostbite games; DICE calls for multi-vendor support
- ^ http://arstechnica.com/information-technology/2014/08/opengl-4-5-released-with-one-of-direct3ds-best-features/
- ^ http://techreport.com/review/26239/a-closer-look-at-directx-12/3
- ^ http://community.amd.com/community/amd-blogs/amd-gaming/blog/2014/05/28/mantle-the-start-of-low-overhead-future
- ^ http://www.anandtech.com/show/8116/some-thoughts-on-apples-metal-api
- ^ http://blogs.unity3d.com/2014/07/03/metal-a-new-graphics-api-for-ios-8/
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||