Exploring DirectX 12: 3DMark API Overhead Feature Test
by Ryan Smith & Ian Cutress on March 27, 2015 8:00 AM EST- Posted in
- GPUs
- Radeon
- Futuremark
- GeForce
- 3DMark
- DirectX 12
Closing Thoughts
Wrapping things up, Futuremark’s latest benchmark certainly gives us a new view on DirectX 12, and of course another data point in looking at the performance of the forthcoming API.
Since being announced last year – and really, since Mantle was announced in 2013 – the initial focus on low-level APIs has been on draw call throughput, and for good reason. The current high-level API paradigm has significant CPU overhead and at the same time fails to scale well with multiple CPU cores, leading to a sort of worst-case scenario for trying to push draw calls. At the same time console developers have low enjoyed lower-level access and the accompanying improvement in draw calls, a benefit that is an issue for the PC in the age of so many multiplatform titles.
DirectX 12 then will be a radical overhaul to how GPU programming works, but at its most basic level it’s a fix for the draw call problem. And as we’ve seen in Star Swarm and now the 3DMark API Overhead Feature Test, the results are nothing short of dramatic. With the low-level API offering a 10x-20x increase in draw call throughput, any sort of draw call problems the PC was facing with high-level APIs is thoroughly put to rest by the new API. With the ability to push upwards of 20 million draw calls per second, PC developers should finally be able to break away from doing tricks to minimize draw calls in the name of performance and focus on other aspects of game design.
GDC 2014 - DirectX 12 Unveiled: 3DMark 2011 CPU Time: Direct3D 11 vs. Direct3D 12
Of course at the same time we need to be clear that 3DMark’s API Overhead Feature Test is a synthetic test – and is so by design – so the performance we’re looking at today is just one small slice of the overall performance picture. Real world game performance gains will undoubtedly be much smaller, especially if games aren’t using a large number of draw calls in the first place. But the important part is that it sets the stage for future games to use a much larger number of draw calls and/or spend less time trying to minimize the number of calls. And of course we can’t ignore the multi-threading benefits from DirectX 12, as while multi-threaded games are relatively old now, the inability to scale up throughput with additional cores has always been an issue that DirectX 12 will help to solve.
Ultimately we’re looking at just one test, and a synthetic test at that, but as gamers if we want better understand why game developers such as Johan Andersson have been pushing so hard for low-level APIs, the results of this benchmark are exactly why. From discrete to integrated, top to bottom, every performance level of PC stands to gain from DirectX 12, and for virtually all of them the draw call gains are going to be immense. DirectX 12 won’t change the world, but it will change the face of game programming for the better, and it will be very interesting to see just what developers can do with the API starting later this year.
113 Comments
View All Comments
nrexz - Friday, March 27, 2015 - link
How much can they do with it really? Games will still be developed to the limits of the consoles not pc's.Also, I'm not sure if I should be impressed or sad that Forbes published this yesterday.
nathanddrews - Friday, March 27, 2015 - link
That might be an oversimplification. If anything, this could result in console ports NOT running like crap. What's the biggest complaint about ports? That the game is tailored "to the metal" of a console, making port to such a variety of PCs more difficult to develop.Think about it - when designing games around the Xbone/PS4, they tailor the games for eight cores and are not restricted by DX11 call limits or RAM - only the GPU power, but then when they port to PC, those optimized engines have to sludge through the DX11 pipeline before tapping into the GPU. With that restrictive pipeline removed (and GPUs shipping more RAM), those game engines can operate more efficiently in multicore PCs.
It's not a cure-all (low-res textures), but I think this could be the start of a revolution in which ports stop sucking.
Flunk - Friday, March 27, 2015 - link
The current consoles both have 8GB of RAM, all of which is GPU-addressable, so texture resolution shouldn't really be a problem.Also, the Xbox One is built around DX11 so this will be helpful for that. Frankly DirectX 12 will be helpful because it will make Xbox One -> PC ports easier so hopefully we'll either see more of them or see better ports.
It's not really a big worry anyway, this is quite likely the last console generation anyway.
happycamperjack - Friday, March 27, 2015 - link
Only about 5 to 5.5GB of RAM is consoles are usable. The rest are reserved by OS.Laststop311 - Saturday, March 28, 2015 - link
I think its actually 3-3.5GB reserved for the system so 4.5-5GB available to the GPUnathanddrews - Friday, March 27, 2015 - link
My comment about low-res textures has to do with the fact that Xbone/PS4 don't always use the same high-res texture packs available to PC users and that DX12 won't help with that in either scenario.The API Xbone runs is far removed from its PC counterpart. It's a heavily modified "Direct3D 11.X" that is built exclusively for Xbone, which removes the overhead that Windows DX11 has to deal with. In PC terms, it's effectively a superset of DX11.2 features running with DX12 efficiency.
"Microsoft, though, claims that the Direct3D 11.X for Xbox One features significant enhancements in the area of runtime overhead, which results in a very streamlined, 'close to metal' level of runtime performance."
DERSS - Saturday, March 28, 2015 - link
"Close to metal"?Maybe they meant "Close to silicon"? Or they meant to compare with Apple's Metal for iOS?
deruberhanyok - Saturday, March 28, 2015 - link
It's just an expression.Way back before Apple had "Metal", ATI had "Close to Metal" (http://en.wikipedia.org/wiki/Close_to_Metal), and even earlier than that, S3 had their own API, also called Metal.
It just means being able to code with as little overhead as possible. The idea is to have very little between the application and the hardware running it, to get as close to the maximum possible performance as you can.
Navvie - Tuesday, March 31, 2015 - link
The term goes back to the C64 and Amiga demo scenes. Programming in assembler without an API and literally "hitting the metal".Silicon is a metalloid element, so "hitting the metal" doesn't really need correcting.
Kidster3001 - Wednesday, April 1, 2015 - link
The 'metal' comes from an old saying: 'bare metal'. It's still used in the compute industry when referring to special testing that bypasses OS and driver layers, talking to the silicon directly.