AMD Mantle API [updating]

MarkoIt

Regular
What is Mantle?

A cross-platform low-level API that exposes all GCN architecture features and improves performance.

More info at the AMD Developer Summit, November 11-14th.

Slides:
amd-a18ljsnc.png

amd-a19scs7n.png

91

2013-09-25_17-35-31x5s44.jpg

2013-09-25_17-34-37d4szq.jpg


More info from AMD:

Dave Baumann said:
OpenGL is fully out of the domain of Windows and wholly in the hands of the IHV's, Mantle will be no different in this respect. Memory re-write was already implemented many releases ago.

Dave Baumann said:
Development has changed. Previously a development house would create a new engine with a new game - maybe some follow ups, but there was a lot of starting from scratch. Now 50%-75% of all games on the PC are covered by a relatively small number of engines; the render engine now is effectively engine middleware. And guess what, the developer of that middleware makes money by supporting multiple different platforms and API's - Frostbite supports PC DX11 (and probably other DX revisions), XBOX 360, PS3, PS4, XBOX One; Unreal supports all of these and iOS, HTML5, etc., etc. Adding another optimized back end can actually be a selling feature of engine developers and the reuse is high - as Johan points out, look at the number of EA titles using Frostbite 3 in the coming year or so.

Dave Baumann said:
The AMD Developer Summit (which covers all things AMD from a developer point of view) is in November, we will have Mantle tracks from us and partners.


Nick said:
Mantle is the direct result of a number of AAA game developers asking us for something like this because of several constraints they're experiencing with existing PC graphics APIs. Those developers want to get closer to the metal and able to achieve more with the GPU(s) on their PC without the API getting in the way of this effort. "More with more" is the term used by Raja and it couldn't be more spot on.
AMD listened to developer feedback and entered this venture with Johan Andersson leading the charge. Johan has a passion for writing efficient code that can allow him to accomplish his technical vision and Mantle exists to serve this purpose.

Mantle is not for every developer. It is a low-level graphics API designed to drive the GPU in the most efficient manner. This level of access requires a bit more development effort than existing APIs to reap the rewards it provides.

AMD remains committed to support DirectX and OpenGL and to keep optimizing our drivers for those APIs. Mantle is an option that some developers may choose, but it does not affect those that wish to keep using existing APIs.

Some technical concerns are mentioned on this thread. The Mantle API has been in design and development for more than 2 years and rest assured we've had some time to think about the best way to address those (and loads of others).

More technical details about Mantle will be revealed in due course. Johan is a keynote speaker at the AMD Developer Summit (11-14 November, San Jose).

Nick - Gaming Engineering Manager, AMD

With Battlefield 4 running with Mantle, the card will be able to ‘ridicule’ the Titan in terms of performance.”
AMD Product Manager Devon Nekechuck

Developer thoughts:

https://twitter.com/ID_AA_Carmack/status/383051142755663872

John Carmak said:
Considering the boost Mantle could give to a steambox, MS and Sony may wind up being downright hostile to it.

repi said:
Using OpenGL would have been a downgrade from using DX11 and we wouldn't solve any of the problems that I mentioned on my slide about what challenges we have on PC. Hence Mantle is needed.

Press Reactions:

Digital Foundy


HardOCP

AnandTech.[/QUOTE]

Some notable info related

sebbi said:
Draw call overhead on PC is considerably higher compared to consoles. On a console you can just write a few bytes (command header + data) directly to the ring buffer (existing in same unified memory system). That's just a few CPU cycles. You can just ignore all the CPU and GPU synchronization if you know what you are doing (you manage the life time of your data properly, and make sure you are not modifying the data while the GPU is accessing it - for example by manually double buffering the resources).

DirectX/OpenGL doesn't know enough about your data usage pattern to skip unneeded synchronization. And on PC there's always other applications (and the OS) using the GPU as well. So the API calls (draw, map, state change) needs to be always properly synchronized. A simple mutex lock costs over 1000 cycles. There's multiple driver layers (user, kernel) and some parts are shared between all applications (and OS). So you should expect DirectX/driver to have multiple synchronization points (locks) for each draw call. And then of course the data must be transferred over PCI express bus to the GPU's memory, since there's no shared memory that both CPU and GPU can access. So the 10x overhead discussed in this thread is likely a conservative guess. I would expect the CPU cycle overhead to be much higher.

Earlier in this thread, there was some discussion about DX11 multithreaded rendering. It doesn't actually reduce the driver overhead at all. It allows you to use several CPU cores record the draw calls to separate command buffers. This is kind of awkward, since one modern (Sandy/Ivy Bridge) PC CPU core is powerful enough to run all the processing that six x360 thread would do in a single frame. Usually x360 games use just one of those six threads to submit the draw calls. With DX11 you can now use two high performance PC cores in tandem to send as many draw calls as a single x360 thread... Brute force at it's finest. Not something to brag about

*mod: I was not sure were to open this thread. I made this open post that I can update when more info is available :)
 
Last edited by a moderator:
This is great for Dice/EA and their Frostbite 3 engine.

Right now Dice is testing it out on its engine. It suggests that any future non-dice game developer that utilizing Frostbite 3 will have the opportunity to program using Mantle.

Other game studios will just have one more reason be more likely to chose Frostbite 3 over other 3rd party game engines.

This in turn will probably spur the developers of CryEngine, ID Tech5, Unrealengine etc... to get their engines to utilize Mantle. Great news for AMD.
 
Last edited by a moderator:
So we will have AMD Mantle, Nvidia Core and Intel Inner and some other sound APIs that now live in the CGPU (sorry CSGPU) :devilish:.

I have lived this before!!!!

And then Microsoft will show DirectX To The Metal! to rule them all.

I just hope this will not finnish in a OGL extensions war.
 
Hopefully, as Mantle is open and multi-platform, it will be supported by all.
 
I'm not sure about this initiative. I agree with Osamar that it feels like we've lived this before. Proprietary stuff is usually not good for the end user.
 
I don't think DirectX was ever about defeating consoles really. It was more about making Windows rock for games and multimedia because DOS was actually preferred over Windows for a time for these things. DirectX brought in efficient graphics, audio, input and networking APIs that answered developer demands. DOS had middleware for this (or do whatever you want directly with the hardware) but Windows 3 had just terrible performance.

Consoles and PC gaming were still very different cultures back then. I wasn't playing PC games on console or console games on PC in those days.
 
Will Mantle lock us in to AMD hardware? On consoles, I don't care about this. On PCs, I do.

I don't see it going down any other way. Unless Intel and NVIDIA come out and announce it's a cooperative effort. But I can't imagine that happening because it would cement AMD's new perceived gaming leadership and give them even more competitive advantage.
 
YES!!!
We had
D3D, RRedline, Ati Cif, MSI, SGL, Glide, CGL, NVLIB, S3D
All proprietary apart from d3d

Sorry, but now AMD owns PS4 and XBoxOne hardware plus a respectable part of PC GPUs as well. You had never seen these conditions before.

I, for one, would welcome this because of:

Farewell to DirectX?
The DirectX Performance Overhead

It can vary from almost nothing at all to a huge overhead,' says Huddy. 'If you're just rendering a screen full of pixels which are not terribly complicated, then typically a PC will do just as good a job as a console. These days we have so much horsepower on PCs that on high-resolutions you see some pretty extraordinary-looking PC games, but one of the things that you don't see in PC gaming inside the software architecture is the kind of stuff that we see on consoles all the time.

On consoles, you can draw maybe 10,000 or 20,000 chunks of geometry in a frame, and you can do that at 30-60fps. On a PC, you can't typically draw more than 2-3,000 without getting into trouble with performance, and that's quite surprising - the PC can actually show you only a tenth of the performance if you need a separate batch for each draw call.


Problems with Multiple GPU Architectures

Having games written exclusively in a common, industry standard API was better for everyone

http://www.anandtech.com/show/7371/understanding-amds-mantle-a-lowlevel-graphics-api-for-gcn

Customers would tend not to agree because as a result we potentially lose quite a lot of performance.

I would welcome this comment:

itchytimes - Thursday, September 26, 2013 - link
Amazing move AMD. They are going for gold. Game over nvidia...

It's about time for them :D
 
Sorry, but now AMD owns PS4 and XBoxOne hardware plus a respectable part of PC GPUs as well. You had never seen these conditions before.

Wasnt talking about that, was talking about the pc having proprietary graphics api's which we have had before
and I'm sure thats what osamar was referring to and psorcerer was denying
 
I don't see it going down any other way. Unless Intel and NVIDIA come out and announce it's a cooperative effort. But I can't imagine that happening because it would cement AMD's new perceived gaming leadership and give them even more competitive advantage.
I thought Mantle derives its performance in part by being closely aligned with AMD's GCN architecture? If they started generalizing and abstracting it to support Intel and nVidia hardware wouldn't that defeat the purpose of Mantle?
 
Hopefully, as Mantle is open and multi-platform, it will be supported by all.

I'm still not seeing anywhere that Mantle is completely open with no royalties etc. Everything seems to indicate it's only specifically coded to GCN at the moment.
 
The DICE Mantle slides are here.

AnandTech has another interesting article here.

I tend to completely agree with the AnandTech article "Understanding AMD’s Mantle: A Low-Level Graphics API For GCN" ..


Ultimately Mantle is API + Drivers .. There is absolutely zero chance that MS doesn't know about Mantle because Drivers need to be certified for Windows right?! So MS must of known about this for this to be even making its way into Windows, let alone Windows 8 which has even tighter driver certification requirements

Secondly ill quote one of the comments from the anandtech article, from
Panzer:

Love the article. I think you are exactly correct on this being a Xbox One API port. I think what is missing is the implication for Microsoft. MS had to also agree to AMDs licensing terms for the CPU/GPU for the X1, not just the other way around as well. They knew full well this was coming, the question is why?

AMD does not, at this point, have a mobile play. They have, over the last year, strategically set themselves up for mobile, servers, and desktop success, in part by bringing back old talent from the likes of NVIDIA, Apple, and Qualcomm. The other part is owning both and x86 and ARM licenses. They know better than anyone that graphics is driving mobile and pc business, the cpu has been commoditized, and the gpu landscape is wide open and fragmented. In comes MS with their device and service company, the X1 and Xbox Live as the center piece to be leveraged in the consumer space. The X1 is just a virtualized mesh of 3 OS's that runs on common PC hardware, I am looking at you Steam. Who says they won't release a Xbox OS for PC gamers? Not to hard to think that they could just give you a download disk that would virtualize you Win8.1 and then install the Xbox OS in another VM along side. Hardcore gamers could update there hardware as they wanted, and play against all console users at once via Live. As a side note, what better way to extend a consoles life, you could update the hardware anytime you wanted if all or most developers use Mantle, wasn't that the original idea behind DirectX? The X1 name, the ONLY One you need?

AMD's ARM license gives them access to tablets and smartphones. Qualcomm's Adreno was once AMD/ATI's. MS has stuck to Qualcomm in their phones, could it be because the hardware is still very similar, ie easy to port software? X1 has low power cores, AMD could easily add CGN to an ARM core, X1 on the tablet or phone? AMD x86 X1 Surface tablet maybe?

This last part is, I think, the ultimate play for MS. The Xbox is clearly the consumer facing brand for MS, and the engine for unification across all platforms. Platforms being the key word. If AMD can leverage Mantle and get the backing of most of the software developers, I see MS as using the X1 as a strategic partnership with AMD. Think Nokia, and you get my meaning. Intel CPUs are clearly better, but the cpu is commoditized, and their Iris Pro is the same thing MS did with the 360 and now X1. There is clearly a benefit to adding local dram on the die, sorry Sony PS4. Intel gpu is getting better but now where near AMD, and as Apple has shown cpu power is just not that important. I would not be surprised at all if this wasn't a dry run for MS to become more vertically integrated. AMD has the license, the patents, the talent, the roadmap, and aligns very well with MS vision. It's no coincident that AMD let this loose, this is MS vision as well, cross platform everything. It might not be today, or this year, but I would not doubt MS will pick up AMD for a penny, make their own hardware, and still license out all their software for everyone else. At the end of the day software is the one thing that isn't commoditized, it's just unifying the hardware underneath that has kept MS from realizing their dream, and Mr Gate's dream.
 
Back
Top