AMD's new Mantle API - Console Perspective

AMD's twitter suggests that it works in conjunction with D3D on PCs, since they link to Anandtech's speculation
The article covers a few things including their belief that it could be on the XB1.
So it's hard to know if AMD was agreeing to the whole article or not, as it was a good article in general.

We've heard about a recent driver boost from some developers such as Capcoms DeadRising3. Could that be optimizations through mantle?
This is just speculation but could Mantle already be up and running on x1 in some form?
MS had said that they had released a new DX driver from what I remember.
They started of with a bloated driver (probably straight from PC), and then started to optimise and strip unrequired things from it.
 
As a developer I'm truly excited about this development.
If Nvidia come out with a similar API, DX will become almost instantly obsolete.
Porting to a couple of APIs is not a big deal. HLSL compatibility is key though.
I'm willing to bet, Mantle will be the only way to match next-gen consoles draw call performance.
If you think PCs have trouble with 5k draw calls right now, imagine what will happen when consoles start pushing 100k draw calls in a year or two ...
That is interesting. They say that Mantle is going to improve draw calls by 9x, so if you multiply 5k x 9 you get 45k, which is a huge improvement, although 100k draw calls still doubles it, taking into account PCs raw power it doesn't matter.

I am going to re/read Anandtech's article now that I read Ceger's post, although somehow I know consoles don't need this new API, I think.
 
So some people are thinking this will replace PCs D3D, while others are thinking it will relatively easily work in conjuction with many HLSL such as D3D, but not making D3D obselete.

AMD's twitter suggests that it works in conjunction with D3D on PCs, since they link to Anandtech's speculation

HLSL is just a language and is what most developers use to program their shaders. It's pretty much independent on the API it's running on, apart from the fact that MS didn't allow extensions into it till recently.
I'm assuming under Mantle AMD could add any extension they cared to have, which could do wonders for performance (and this one is GPU performance!).

Mantle will most likely not work in "conjunction" with D3D - but rather Mantle will coexist with whichever D3D is installed (which is pretty awesome since DX is often tied to OS upgrades).

I wouldn't assume that just because AMD linked to Anandtech's article they are confirming "all" the speculations that are in there. I'd take most of what was written with a huge grain of salt.
 
That is interesting. They say that Mantle is going to improve draw calls by 9x, so if you multiply 5k x 9 you get 45k, which is a huge improvement, although 100k draw calls still doubles it, taking into account PCs raw power it doesn't matter.

The 100k figure is for having the GPU feed itself draw calls. This is still only going to be possible under an API like Mantle.

It will take some time to get there even on consoles though, since re-engineering a graphics engine to such a degree will take some time, and will most likely happen once developers stop targeting current gen.
 
HLSL is just a language and is what most developers use to program their shaders. It's pretty much independent on the API it's running on, apart from the fact that MS didn't allow extensions into it till recently.
I'm assuming under Mantle AMD could add any extension they cared to have, which could do wonders for performance (and this one is GPU performance!).

Mantle will most likely not work in "conjunction" with D3D - but rather Mantle will coexist with whichever D3D is installed (which is pretty awesome since DX is often tied to OS upgrades).

I wouldn't assume that just because AMD linked to Anandtech's article they are confirming "all" the speculations that are in there. I'd take most of what was written with a huge grain of salt.

Yeah I'm aware of all that and by 'conjunction' I mean the same thing as you mean by 'coexisting', though you may have a different interpretation of what that word means.
Its just you said that you thought it would make D3D obsolete. From where I stand I don't follow your train of thinking. I could see a small diminish in relevance, but not a whole lot DX will still be king on PC though the mantle will be lowered, but not obsolescence. Can you elaborate on your thoughts regarding obsolescence? :smile:
 
Last edited by a moderator:
As a developer I'm truly excited about this development.
If Nvidia come out with a similar API, DX will become almost instantly obsolete.
Porting to a couple of APIs is not a big deal. HLSL compatibility is key though.
I'm willing to bet, Mantle will be the only way to match next-gen consoles draw call performance.
If you think PCs have trouble with 5k draw calls right now, imagine what will happen when consoles start pushing 100k draw calls in a year or two ...

This is really encouraging, thanks for sharing your thoughts. If developer opinion is so positive around this and draw calls on next gen consoles are really likely to explode to levels unreachable though DX then it sounds as if NV will more or less be forced to match this with a low level API of their own.

At that point we'll have a 3 API system including DX but DX is still going to be important for Intel GPU's and smaller developers who only have the funds to develop for one common API (or who aren't targeting high end graphics). Additionally Mantle doesn't support older than GCN hardware and it's likely NV will draw a line in the sand too with Maxwell or Volta so DX will still be important for older hardware too.

But then I don't see Intel being left out in the cold if both NV and AMD have their own API's so at that point you'll be looking at 4. Interesting times!
 
But then I don't see Intel being left out in the cold if both NV and AMD have their own API's so at that point you'll be looking at 4. Interesting times!

Actually, there'd probably be quite a few more. The mobile space could benefit most from Mantle, since it has the weakest hardware.

Add Imagination, ARM, Qualcomm, Broadcom, Vivante... And more: the mobile GPU arena is extraordinarily fragmented right now.

Worse, the mobile GPU vendors don't seem to know how to make proper drivers.

http://de.dolphin-emu.org/blog/2013/09/26/dolphin-emulator-and-opengl-drivers-hall-fameshame/

The additional support burden of a new API falls not just on developers, but also on GPU vendors. Since mobile GPU vendors are having problems making robust drivers for the current APIs, I think the maintenance burden of supporting new APIs would be rather high.
 
All I want is Mantle to be something like this :
http://forum.beyond3d.com/showthread.php?t=63565

empowering, yet with a little abstraction allowing ofher manufacturers to release compatible drivers.
I want to be able to use the GPU power w/o having the API get in the way !
I even stopped working on my own 3D engine because current PC API are horrible, both of them. :(
 
I dont think that at all.

Neither do I, where I work, older versions of our tool (naively) had a lot more draw-calls than this (something like ~6-8x that amount...) with no form high-level culling what so ever, completely brute-force approach.

In this version our renderer took about ~35% of the program's time on a single thread (but our app is not single-threaded so) on PCs with intel core i5/i7 chips and mid to high spec graphics cards.

Really there was no reason to have that amount of draw-calls when most of the geometry may not be even in view most of the time (except in the worse case scenario).

I believe a combination of very high-level CPU-based frustum culling, geometry instancing, instance level GPU-based frustum culling and indirect draw-calls should be more than enough to make this (in most cases) a none issue both CPU & GPU wise and all of this is possible in OpenGL and should be in DX11.

At this point there shouldn't be much of a reason to parallelize draw-calls as the actual number needed should be a lot smaller unless you legitimately have many uniquely individual pieces of "geometry chunks" in view to render even when using instancing.

In this case OpenGL has multi-draw commands which also has variants of both indirect & instancing (and together) so there must be a way to more efficiently deal with that case too.

Does D3D11 support such draw-calls? As far as I'm aware it doesn't.

I think the only real advantage of Mantle has in terms of draw-calls is the ability to more easily parallize draw-calls with almost linear speeds per core added.

Anyway Mantle isn't just about speeding up & parallelizing draw-calls.

The 100k figure is for having the GPU feed itself draw calls. This is still only going to be possible under an API like Mantle.

Isn't that true for indirect calls in both OpenGL and DX11? I mean you can have shaders manipulate draw command buffer objects. The only thing CPU side is adding execution/dispatch points. You have similar API functions for dispatching compute shaders, indirect dispatch commands.
 
Isn't that true for indirect calls in both OpenGL and DX11? I mean you can have shaders manipulate draw command buffer objects. The only thing CPU side is adding execution/dispatch points. You have similar API functions for dispatching compute shaders, indirect dispatch commands.

Indirect draw/dispatch only lets you control draw call parameters but you can't modify state.
OpenGL recently got the bindless-resource extension which is a lot closer to what I had in mind. However even that leaves a lot of things to be desired.
However the biggest problem with OpenGL adoption is that it requires you to re-author all you shaders in GLSL which is a very expensive proposition.
Clearly AMD were aware of this and hence made Mantle compatible with HLSL.
 
Back
Top