AMD Mantle API [updating]

It's Xbox One and most likely Windows 9 (and please, please don't start yet another [post=1830752]"but Mantle works on Windows 7" [/post] argument or ask [post=1830789] "why they can't backport D3D12 to Windows 7, 8, or 8.1"[/post] ;) )

When Windows 9 will be released next Spring, Windows 7 will be almost six years old. This fact alone should make users consider a newer OS, not to mention things like SATA Express/NVMe for SSDs (since Windows 8.1 FYI), Direct3D 12 (and WDDM 2.x?), and other yet undisclosed improvements.

Look, Microsoft is on a new yearly OS release schedule for a foreseeable future. There won't be major service packs that add significant features. Tablet/phone consumers don't understand it, they want simple numbers in the product name, not mumbo-jumbo like "Windows Vista SP2 with Platform Update OEI DSP" etc. which is decipherable only by tech-support junkies. The casual users see Android going from 2.2 to 4.4 or Chrome going from 7 to 22 in just two years and think "hey, that's probably cool". So Microsoft will play this game too. No more beating the dead horse, no backporting - if you want new features, get a newer OS.

It is just my bet. But I think you will get surprissed.
 
http://www.hardware.fr/news/13553/amd-catalyst-14-1-beta-avec-mantle-ligne.html

I'll try to find a source in English later. Obviously, GCN 1.0 is still supported, but it required more work, presumably significantly different codepaths here and there. I'm not saying GCN 1.0 and/or Kepler is likely to lack DX12 support, just that nothing is certain.

And while having broad initial support for a new API is a good thing, there's also something to be said for trying to design the best possible API by ignoring what hardware features are currently available and aiming for what ought to be available. Sometimes, this kind of approach pays off in the long term, even if it can mean slow initial adoption.

A little precision about GCN "1.0" in practice.. i use 2x 7970 ( 1100mhz ), and in crossfire + BF4, its a nearly 10fps gain in average in CFX ( at 2560x1440 max setting possible ).. So i believe with one gpu maybe the gain is not really viewable ( in term of framerates ),... anyway, the game seems more fluid with Mantle vs DX in multiplayer ... ( maybe just a feeling, .. BF4 have got 2 patches lately who have fix nearly all problem... in DX as in Mantle )... Finally the game is now where it should have been on the release, in DX as in Mantle.

Now the gpu and system ram usage is absolutely incredibly high with Mantle... ( Vram is 5000 to 6000MB ( across 2 gpu so in reality i hit my 3GB / gpu limit , on system ram, i hit 12go of memory usage when playing ( 16Go of DDR3 in quadchannel ).. i have check a bit the process across threads, the 12 threads of my CPU are active during playing ( not 100% on all core but higher of 60-70% in each )


Dont look the pagefiles i have no pagefile set on my SSD's raid. so just for illustrates, the 12th threads have got 91% max of usage, vram hit max 6003 MB... and this is with a I7 4930K @ 4.8ghz..
 
Last edited by a moderator:
In what OS DX12 will appear.
Hopefully Windows 7. Otherwise there's a big risk that DX12 will become the next DX10 (= will be skipped by most developers). Huge majority of gamers will be using Windows 7 for a long time (as they have just upgraded to it from Windows XP).
 
I hope too Windows 7 and upwards.

It could be posible to have DX12 just for 64 bits OS?
Which ones could be the benefits of it if any.

HSA like make sense in a 32 bits OS?
 
It could be posible to have DX12 just for 64 bits OS?
64-bit Windows still has a 32-bit compatibility layer and each system component comes in both 64-bit and 32-bit flavours. If you also consider GDR/LDR/QFE branches and the number of already supported Windows releases (Vista RTM/SP1/SP1, 7 RTM/SP1, 8, 8.1) Microsoft will be buried under support problems if they decide to backport such a major feature.

Hopefully Windows 7. Otherwise there's a big risk that DX12 will become the next DX10 (= will be skipped by most developers).
DX10 was "skipped" by the developers because it wasn't available on the consoles, so they had to produce assets and tools that are cross compatible and run to the lowest common denominator. D3D11 feature level 11_0 is now the lowest common denominator on next-gen consoles, the PC and soon in the mobile world.
 
Last edited by a moderator:
Otherwise there's a big risk that DX12 will become the next DX10 (= will be skipped by most developers).
I hope it's Win7 too but this is a bit of an unfair characterization of DX10. I know devs like to say they "skipped" it and went "straight to DX11" but they didn't... I don't think even a single game requires feature level 11 yet. Just because Microsoft made it so that you can use both via the same interface and the API calls have "D3D11" in them doesn't mean it's "feature level 11" ;)

And the games that people write for DX11 still have the same constraints that DX10 did in terms of OS, so Microsoft "won" in the end here... people still have to upgrade to Vista+ to play these games.

I also think the fact that DX10 was a pretty big API change and people were stuck with ~DX9-level console hardware at the time had as much to do with developer realities as the OS situation. I agree that there were some developers that would have wanted to make a DX10 path but couldn't justify the time to management due to lack of market penetration, but I don't think that set of people was huge to be honest. For the really keen folks there were games that had both DX10 and DX9 paths and for everyone else DX9 was sufficient until they were ready to make the big transition of their code base off of the old API concepts.

But yeah, I obviously agree it would be in Microsoft's best interest this time around to support Win7. It's just not trivial from a tech point of view... I can't really see a good way for them to do it without effectively having to support two different WDDM versions/layers on Win7, which would be a bit of a mess. The alternatives in terms of only selectively updating systems with new drivers available seem even worse.

Anyways we're a bit far from the Mantle topic at this point although the two are related. Guess a mod should split some of this out... I suppose I could technically do that now but it sounds complicated ;)
 
xbox-one-dx12_t.jpg


Microsoft has updated the presentation slide of DX12 putting xboxone logo too .... but it has hw "dx11"...Hopes that the DX12 are compatible with dx11 compliant vgas (and perhaps more efficient portings to pc)?
 
At least some of the DX12 feature should be available to DX11 hardware, considering it will run on XBox One and Mantle runs on GCN.

Unfortunately I see Microsoft making DX12 exclusive to Windows 9 or 8 at the most. DX11.2 is already Win8 exclusive :(
 
The Xbox One was described as having a lower-level (and/or lower overhead, I forget) API with a feature list that is a superset of DX11, which was labelled DX11.X.

A natural progression from DX11 to DX12 would also make DX12 a superset of DX11. It hasn't been disclosed how those two sets would compare.
 
If consoles were the main reason it took so long for DX10/11 to be used, then why were even so many PC exclusives DX9 only? Plenty of games have required DX10 cards, yet still stuck with DX9

But the only two games I know of that do require a DX11 card are Crysis 3 and CoD:Ghosts
 
If consoles were the main reason it took so long for DX10/11 to be used, then why were even so many PC exclusives DX9 only? Plenty of games have required DX10 cards, yet still stuck with DX9

I think the reason you see D3D10 cards required for D3D9 games is driver support for ATI's D3D9 cards was dead in 2009.
 
If consoles were the main reason it took so long for DX10/11 to be used, then why were even so many PC exclusives DX9 only?
Hardware features are only a part of the equation - game assets and developer tools are another equally important and often-overlooked part.

The problem is, developers just did not plan and design their games around Direct3D feature level 11_x! Even hardcore games were based on D3D9-era technology and assets - everything from lighting models to level geometry to texture formats and compression.

Techniques allowed by feature levels 10_x and 11_x require quite a different approach to game level design - they cannot run on D3D9-era assets by simply porting a few lines of code! And if you only make a few tweaks here and there, the end result is not very different from what's available on feature level 9_3 (aka DX9.0c).

Hull/Domain shaders alone are quite a radical shift, and of course early hardware implementations were just too slow to be used in real games. Only GCN1.0/Kepler level hardware made them somewhat attractive from a performance level.

Again, now that feature level 11_0 hardware will be a new baseline on next-gen consoles (Xbox One and PS4), the PC and even new mobile devices, and many of them will run D3D11/12, things might start to slowly change at least for the hardcore market. Casual game developers will remain on feature level 9_3 for a long time to come, since they need to cover as many mobile devices as they can.


I think the reason you see D3D10 cards required for D3D9 games is driver support for ATI's D3D9 cards was dead in 2009.
DDI10 is more efficient and scales up well for D3D9 content and HLSL shaders.

Direct3D 11 supports feature levels 9_x, 10_x and 11_x - so even if your game requires Direct3D 11 runtime with a Direct3D 10/11 card, in theory it might actually run through a D3D9-level graphics path.
In practice that would be a waste from performance considerations, but also because many D3D10 methods and HLSL features are not available on level 9_x, since the Direct3D 11 runtime directly calls DDI9 in the WDDM 1.x driver.
 
Last edited by a moderator:
Anything specific you guys want me to try and cover in my Mantle talk at GDC next week?
http://schedule.gdconf.com/session-id/828212

Rendering Battlefield 4 with Mantle
In this technical presentation Johan Andersson will show how the Frostbite 3 game engine is using the low-level graphics API Mantle to deliver significantly improved performance in Battlefield 4 on PC and future games from Electronic Arts. He will go through the work of bringing over an advanced existing engine to an entirely new graphics API, the benefits and concrete details of doing low-level rendering on PC and how it fits into the architecture and rendering systems of Frostbite. Advanced optimization techniques and topics such as parallel dispatch, GPU memory management, multi-GPU rendering, async compute & async DMA will be covered as well as sharing experiences of working with Mantle in general.
 
http://www.hardware.fr/news/13553/amd-catalyst-14-1-beta-avec-mantle-ligne.html

I'll try to find a source in English later. Obviously, GCN 1.0 is still supported, but it required more work, presumably significantly different codepaths here and there. I'm not saying GCN 1.0 and/or Kepler is likely to lack DX12 support, just that nothing is certain.
Whatever work Tahiti needed for performance optimization, the limited testing thus far shows its percentage improvement with Mantle is in the same range as Hawaii. That's better than the non-improvement or regression with Bonaire.

Anything specific you guys want me to try and cover in my Mantle talk at GDC next week?
http://schedule.gdconf.com/session-id/828212

Will there be discussion on how command submission works differently than with the DX runtime, or what the Mantle driver does at a low level compared to the traditional one?
How does Mantle fit into or work around the Windows driver model?

Are there differences between the revisions of GCN?
As far as the experience goes working with Mantle:
There were multiple BF4 patches and Mantle driver releases that were released pretty close to the Mantle launch, including later changes that made it feasible to run multi-GPU.
What elements are there that developers are able to innovate on independently, and how much still depends on GPU driver releases or hotfixes?
 
Back
Top