• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

The Next Generation of Graphics APIs

Caporegime
Joined
12 Jul 2007
Posts
40,408
Location
United Kingdom
Dan Baker of Oxide games helped make DX11, and he was also the graphics lead on Civilization 5. Civ 5’s DX11 mode has some of the highest draw calls of any DX11 game ever made, so he knows a thing or two API's and here are his thoughts. A good read. :)

For this reason, many of the most experienced developers, Oxide included, had for years advocated a lighter, simpler API that did the absolute minimum that it could get away with. We believed we needed a teardown of the entire API rather than some modifications of current APIs. Admittedly, this was after advocating no API at all caused the hardware architects’ faces to pale a bit too much. But if we were to build something evil, at least we could make it the least evil possible.

It was this group of advocates who, with AMD, pioneered the development of Mantle. Mantle was not an API birthed by a hardware vendor, but rather a child born of developers and AMD to create a completely different class of API. AMD selected a small but expert group of developers to help advance it. The intention was not to develop the end-all solution for every developer, but rather to build something that didn’t block our studios from maximizing the very capable GPUs that AMD was building.

This group spent quite a bit of time with AMD going over and helping shape the API. Many of the features and structure of Mantle came from developers, not from AMD itself. For example, we could show that nearly every batch required at least some small data payload, so we built in a specialized fast path just for it.

Much of it was a learning experience for AMD, showing just how many things we as developers really don’t need an API to do. For example, loading textures into GPU memory has to be an asynchronous process, with a few GPU commands called to copy it into place and prepare it before we use it. As it turns out, this task was once owned by the driver, but our engine was perfectly capable of doing it both faster and more reliably than any driver could.

Oxide still remembers the day we did our first tests. We watched as driver overhead, once the dominant chunk of our frame execution time, practically disappeared. We watched as the thick driver threads that often polluted our cache and stole our CPUs disappeared. We watched as the little driver overhead we had linearly scaled across our cores. We saw this, in spite of the fact that Mantle was a very new API, competing against established and optimized APIs. There are still many optimizations that both we and AMD have yet to make!

We heard nothing of the development of a new version of D3D12 until sometime after the early tests of Mantle were indicating that this radically different API model could work, and work well – data which we shared with Microsoft. What prompted Microsoft to redesign DX is difficult to pin down, but we’d like to think that it would never have happened if Mantle hadn’t changed the game. We are delighted in DX12’s architectural similarities to Mantle, and see it is a validation of the pioneering work that Oxide was privileged to be part of.

Does D3D12 mitigate the need for Mantle? Not at all. Though it is difficult to determine without more complete information on D3D12, our expectation is that Mantle will have the edge of D3D12 in terms of CPU performance. This is because the GCN architecture by AMD is the most general of all the current GPUs, and therefore the driver needs to do a bit less.

Full Article
http://www.oxidegames.com/2014/05/21/next-generation-graphics-apis/
 
Caporegime
OP
Joined
12 Jul 2007
Posts
40,408
Location
United Kingdom
I may have posted these before, can't remember so ill just add them here anyway. Two other game devs, Firaxis and Crytek on their Mantle support.

Firaxis said:
By reducing the CPU cost of rendering, Mantle will result in higher frame rates on CPU-limited systems. As a result, players with high-end GPUs will have a much crisper and smoother experience than they had before, because their machines will no longer be held back by the CPU. On GPU-limited systems, performance may not improve, but there will still be a considerable drop in power consumption. This is particularly important given that many of these systems are laptops and tablets. The reduced CPU usage also means that background tasks are much less likely to interfere with the game’s performance, in all cases.
Finally, the smallness and simplicity of the Mantle driver means that it will not only be more efficient, but also more robust. Over time, we expect the bug rate for Mantle to be lower than D3D or OpenGL. In the long run, we expect Mantle to drive the design of future graphics APIs, and by investing in it now, we are helping to create an environment which is more favorable to us and to our customers.
Full Interview
http://www.firaxis.com/?/blog/single/why-we-went-with-mantle


Crytek and AMD have collaborated closely in the past, with the company's AMD CrossFire™ technology helping to power Crysis 3 when the game first wowed audiences at E3 in 2012. Crytek's R&D team says they have benefitted from the practical aspects of working with AMD tech. The reduced CPU overhead and better CPU scaling maintain a draw call count on lower spec CPUs that is usually reserved for higher quality settings. On the GPU front, async compute makes it easier to schedule graphics processing and utilize hardware resources for higher frame rates – meaning the team have been able to issue post processing asynchronously to run in parallel with, for example, shadowmap generation which is rasterizer, not alu, bound.

Reviewing the partnership overall, Crytek's Director of Business Development, Carl Jones, said it was a natural step to support AMD's Mantle. "Our ultimate aim has always been to make CRYENGINE the most powerful, adaptable tool it can be for developers, and this collaboration with AMD is further evidence of that. As we continue to embrace the best technology available we enable all CRYENGINE users to create unparalleled gaming experiences."
Source
http://www.crytek.com/blog/crytek-partner-with-amd-to-bring-mantle-support-to-cryengine
 
Associate
Joined
10 Nov 2009
Posts
1,099
Location
London
Finally, the smallness and simplicity of the Mantle driver means that it will not only be more efficient, but also more robust. Over time, we expect the bug rate for Mantle to be lower than D3D or OpenGL.
That hadn't occurred to me before. If true then that's potentially an much bigger deal to studios than the performance improvements.
 
Caporegime
Joined
18 Oct 2002
Posts
33,188
That hadn't occurred to me before. If true then that's potentially an much bigger deal to studios than the performance improvements.

Conversely though with game devs being given more control you can have less of a safety net to prevent bugs. The reality is DX became such a big stonking huge black box that the safety net of having it control everything was not hugely effective and most game devs(and in general most programmers) can make decent code. Though there is potential for far more game breaking bugs from devs, the reality is making code that works to a simple driver and where you have effectively complete control is generally much easier to code for than programming something and HOPING that a driver and DX work correctly to make that code work fine.

But it lets us vote with game sales, if a game dev is 98% responsible for most crashes moving in to the future then if someone makes crap games(bug wise) then don't buy from them again.

As Dice have showed with BF4, it's perfectly possible to make a buggy game using either API :p
 
Man of Honour
Joined
21 May 2012
Posts
31,940
Location
Dalek flagship
Dan Baker of Oxide games helped make DX11, and he was also the graphics lead on Civilization 5. Civ 5’s DX11 mode has some of the highest draw calls of any DX11 game ever made, so he knows a thing or two API's and here are his thoughts. A good read. :)



Full Article
http://www.oxidegames.com/2014/05/21/next-generation-graphics-apis/

Bearing in mind some of the bugs that are still in Civ5 that the Devs have given up on, I would hardly say that is a plus on the CV.
 
Soldato
Joined
26 May 2009
Posts
22,100
I'm asking a genuine question here not trying to diss Mantle, but how much of this bit:

a lighter, simpler API that did the absolute minimum that it could get away with.

Is due to it only supporting a handful of cards from just one vendor?


Civ 5’s DX11 mode has some of the highest draw calls of any DX11 game ever made, so he knows a thing or two API's

That's like saying Halo PC or GTA4 needed very over-specified hardware just to get a decent framerates so the programmers must know loads about writing an efficient game ;)
 
Last edited:
Man of Honour
Joined
21 May 2012
Posts
31,940
Location
Dalek flagship
a lighter, simpler API that did the absolute minimum that it could get away with.

It gobbles up 1.2gb more VRAM than DX11 @4K settings on BF4 making the experience totally useless for multi GPU setups. I don't think lighter, simpler API are appropriate words here.
 
Caporegime
Joined
18 Oct 2002
Posts
33,188
Is due to it only supporting a handful of cards from just one vendor?

No, it's because a low level API by definition does less. One of the single biggest differences between what we would normally deem low/high level api's is high level will usually manage memory, low level will usually give control to the dev.

Code to manage something will be bigger than code to not manage it. The general idea behind low level api's is to make as slim a layer as possible to expose all the hardware/performance to the game dev's and leave it up to the game dev's to decide how best to use it.

In DX's case with a high level API, a game dev may write something fast and efficient but then it gets sucked up into the DX black box and managed and changed and sorted again. One of the fundamental issues is in coding you WANT to manage memory yourself anyway, and many other things, and because games tend to be on consoles also which operate in a low level api environment, then engines are designed to do most of this control to start with... and then with high level DX, you are in many ways effectively duplicating a lot of work.

It gobbles up 1.2gb more VRAM than DX11 @4K settings on BF4 making the experience totally useless for multi GPU setups. I don't think lighter, simpler API are appropriate words here.

and it doesn't do this in Thief. BF4 was fundamentally written for DX, that doesn't mean that every piece of programming they did is suitable or even good in Mantle. Ultimately with DX they don't have to manage memory, but they do anyway, but in a way that simply works to how DX works, it doesn't mean it's written in a way that is getting the best possible usage out of Mantle.

Again one of the single biggest reasons for a low level API is giving memory management to the game dev's.... which basically puts the blame squarely on the game dev for not managing the memory. Johan has even said that ideally they would completely rewrite the memory management code to keep to limits but it's not that feasible.

Increased memory usage isn't on it's own, a bad thing. Going over what memory there is IS a problem, using what you have fully isn't a problem.
 
Man of Honour
Joined
21 May 2012
Posts
31,940
Location
Dalek flagship
and it doesn't do this in Thief. BF4 was fundamentally written for DX, that doesn't mean that every piece of programming they did is suitable or even good in Mantle. Ultimately with DX they don't have to manage memory, but they do anyway, but in a way that simply works to how DX works, it doesn't mean it's written in a way that is getting the best possible usage out of Mantle.

Again one of the single biggest reasons for a low level API is giving memory management to the game dev's.... which basically puts the blame squarely on the game dev for not managing the memory. Johan has even said that ideally they would completely rewrite the memory management code to keep to limits but it's not that feasible.

Increased memory usage isn't on it's own, a bad thing. Going over what memory there is IS a problem, using what you have fully isn't a problem.

When the 290X launched they went out of their way to bill it as a 4K card. They also made a big thing out of Mantle at the same time and bundled the cards with BF4.

How embarrassing that on a highend setup that DX11 out performs Mantle in every way (mins, maxs, avg and VRAM usage) using 4K settings (I need to do more testing with a proper 4K monitor though).

I know this is missing the point of Mantle but on a highend system with a single 290X DX11 also performs slightly faster on thief.

I think AMD have been guilty of not managing expectations with Mantle and also not really targeting it at situations where it does make a considerable difference (low and mid range systems).

Mantle is very good but it is not all things to all people. The above example being a good one - running out of VRAM @4K on a 290X multi GPU setup.
 
Caporegime
Joined
18 Oct 2002
Posts
33,188
Again, Mantle has JUST hit beta with developers, Mantle in BF4 was alpha, and it was added to the game LONG after the game was finished(engine wise).

The issues you talk about are primarily down to the game dev and the individual game.

BF4 from day one was built to be a DX11 game, everything about the engine was built to work as well as possible in DX11, Mantle was added in the final few months of a 2+ year development cycle. The game is not built for nor optimised for Mantle. They didn't make a single design decision about the engine geared towards Mantle.

DX11 is as good as it will ever get, Mantle isn't even a final version and you're still blaming Mantle for a fault that is completely obviously with BF4, the most buggy game of recent history.

As for what constitutes a high end system, 99.9999999999999% of gamers don't run tri/quad sli/xfire, it's a statistically and revenue wise insignificant market that I and realistically no one else cares about.

As for Thief, odd, 9/10 benchmark comparisons I've seen show Mantle smashing Dx11 to pieces in the places that matter(single card + cpu anywhere from weak to very good).

It's again, alpha/beta state. You do not focus on quad xfire performance for the 12 people in the world that use it, you focus development on the broadest market, single card, any cpu. Managing expectations, seems rather funny as the only person not doing so appears to be you.

Nvidia just released a huge SLi performance(fix) driver to get better dx11 improvements. How long had the 780/titan been out, how long has DX11 been out, yet Nvidia have only just released a really good sli performance boosting driver. So for a old API, and relatively old cards, Nvidia still focus on their biggest markets, but for a non final brand new API, not having brilliant 2-4 xfire Mantle performance is unforgivable?


How embarrassing is it that the cards work great in dx11 with 4k with bf4? I would think not much but that is just me. If DX11 is better for you, then why do you care, you have Dx11 performance. For others who find Mantle better, good for them, how is another option and a chance for more performance "embarrassing".
 
Caporegime
OP
Joined
12 Jul 2007
Posts
40,408
Location
United Kingdom
Have a look at the Thief benchmark thread. Big gains for most people on that vs DX.

Single GPU

#1, Avenged7Fold: 290X @ 1300/1600, 4770K @4.5 - Mantle FPS: Min 71.4 / Avr 86.3. Link
#2, Gregster: GTXTitan @ 1306/1881, 3930K @ 5Ghz - DirectX FPS: Min 60.5 / Avr 84.2. Link
#3, tommybhoy: 290X @ 1175/1475, 3770K @ 4.5Ghz - Mantle FPS: Min 59.7 / Avr 81.8. Link
#4, Protoo: 290X @ 1208/1498, FX-9370 @ 4.9Ghz - Mantle FPS: Min 63.0 / Avr 80.3 - DirectX FPS: Min 36.0 / Avr 56.0. Link
#5, Kaapstad: 290X @ 1250/1625, 4930k @ 4.8Ghz - Mantle FPS: Min 61.3 / Avr 79.4 - DirectX FPS: Min 61.9 / Avr 80.2. Link
#6, Humbug: 290P @ 1150/1400, P-II x6 @ 4Ghz - Mantle FPS: Min 58.3 / Avr 70.2 - DirectX FPS: Min 31.5 / Avr 45.4. Link
#7, ElliorR: 290P @ 977/1250, 4670k @ 3.4Ghz - Mantle FPS: Min 56.1 / Avr 66.8 - DirectX FPS: Min 34.7 / Avr 60.7. Link
#8, Protoo: 7950 @ 1250/1751, FX-9370 @ 4.8Ghz - Mantle FPS: Min 46.5 / Avr 58.5 - DirectX FPS: Min 34.5 / Avr 50.8. Link

Your results do look a tad low for the clocks used as well Kaap, on both API's.
 
Man of Honour
Joined
21 May 2012
Posts
31,940
Location
Dalek flagship
Again, Mantle has JUST hit beta with developers, Mantle in BF4 was alpha, and it was added to the game LONG after the game was finished(engine wise).

The issues you talk about are primarily down to the game dev and the individual game.

BF4 from day one was built to be a DX11 game, everything about the engine was built to work as well as possible in DX11, Mantle was added in the final few months of a 2+ year development cycle. The game is not built for nor optimised for Mantle. They didn't make a single design decision about the engine geared towards Mantle.

DX11 is as good as it will ever get, Mantle isn't even a final version and you're still blaming Mantle for a fault that is completely obviously with BF4, the most buggy game of recent history.

As for what constitutes a high end system, 99.9999999999999% of gamers don't run tri/quad sli/xfire, it's a statistically and revenue wise insignificant market that I and realistically no one else cares about.

As for Thief, odd, 9/10 benchmark comparisons I've seen show Mantle smashing Dx11 to pieces in the places that matter(single card + cpu anywhere from weak to very good).

It's again, alpha/beta state. You do not focus on quad xfire performance for the 12 people in the world that use it, you focus development on the broadest market, single card, any cpu. Managing expectations, seems rather funny as the only person not doing so appears to be you.

Nvidia just released a huge SLi performance(fix) driver to get better dx11 improvements. How long had the 780/titan been out, how long has DX11 been out, yet Nvidia have only just released a really good sli performance boosting driver. So for a old API, and relatively old cards, Nvidia still focus on their biggest markets, but for a non final brand new API, not having brilliant 2-4 xfire Mantle performance is unforgivable?


How embarrassing is it that the cards work great in dx11 with 4k with bf4? I would think not much but that is just me. If DX11 is better for you, then why do you care, you have Dx11 performance. For others who find Mantle better, good for them, how is another option and a chance for more performance "embarrassing".

Remember it was AMD that pushed Mantle + 290Xs + 4K not me.

If you want to run 4K you need the hardware to do it properly and so far Mantle is the bit that is letting the side down. AMD dug this hole, I am just pointing out the obvious.

AMD are also running out of time with Mantle, when DX12 gets here it will probably get swallowed up by Microsofts latest API.
 
Soldato
Joined
30 Mar 2010
Posts
13,008
Location
Under The Stairs!
Another fine article matteus.

Remember it was AMD that pushed Mantle + 290Xs + 4K not me.

If you want to run 4K you need the hardware to do it properly and so far Mantle is the bit that is letting the side down. AMD dug this hole, I am just pointing out the obvious.

AMD are also running out of time with Mantle, when DX12 gets here it will probably get swallowed up by Microsofts latest API.

It's a hole as large as the amount of dirt you can fit on a teaspoon though.:p

Your pushing 4K performance Kap, but next to no one has access to it, I also pointed out before that AMD never pushed 'maxing' 4K, that's Nvidia talk.;)
 
Associate
Joined
30 Jan 2012
Posts
2,483
Location
Stoke On Trent
Remember it was AMD that pushed Mantle + 290Xs + 4K not me.

If you want to run 4K you need the hardware to do it properly and so far Mantle is the bit that is letting the side down. AMD dug this hole, I am just pointing out the obvious.

AMD are also running out of time with Mantle, when DX12 gets here it will probably get swallowed up by Microsofts latest API.

Bloody hell Kaap u faked 4K with a resolution scale on a rather buggy game and yer gona base it all on that? Come on man.. sell some of those cards u got.. buy a 4K monitor and test again ;) :p
 
Caporegime
OP
Joined
12 Jul 2007
Posts
40,408
Location
United Kingdom
Bloody hell Kaap u faked 4K with a resolution scale on a rather buggy game and yer gona base it all on that? Come on man.. sell some of those cards u got.. buy a 4K monitor and test again ;) :p

Kaap's lost the plot. :p

I let DM address his post. :D

I will say this, Mantle has never been pushed for 4K that im aware of and i don't miss much AMD related. They pushed the 290X for 4K, but that runs BF4 fine in DX. When the 290X was being pushed for 4K, mantle was not even announced yet. (i think)
 
Last edited:
Associate
Joined
30 Jan 2012
Posts
2,483
Location
Stoke On Trent
Btw i get 30+fps @ 4K on the Test Range in BF4 with my 7950.. VRAM is maxed out though causing a lot of stutter.. yes i did test it out :D

Note that when Mantle first came to BF4 even 150% scaling just crashed the game for me so at least its improving as it wont crash at 200% now :)
 
Back
Top Bottom