DirectX 12-What is it and what does it do?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Erenhardt

Diamond Member
Dec 1, 2012
3,251
105
101
There was a talk some time back that DX12 will be the savior of multiGPU machines and will make use of integrated graphics of all kind no matter what dGPU you have. But the story died some time ago and now we hear about problems devs are facing to make multi-GPU to work - as it is their responsibility now - not hardware manufacturers'.

That was the most important feature of DX12 I wanted to get. If it really worked gread, I would "upgrade" to APU.
I don't need 8 cores to play games casually. 4 thread are plenty, more so with dx12. I can trade some of that CPU that sits idle most of the time for more GCN cores. lowly 512 GCN APU is equivalent of cores that are missing from Fury compared to FuryX - something people made a lot of fuss about at fury launch.

If not, I will gladly welcome DX12 multithread rendering as I have many threads disabled, waiting for a prime time.
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
DX12 transition is not the same as the DX10 transition or even the DX11 transition at all.

Critically, DX9->DX10 was PC only at the time while PC was still making its "comeback." DX10->DX11 was also PC only. And I don't know about you but DX11 games look a lot better than DX10 games did, the shadowing and ambient occlusion techniques we got in DX11 were pretty awesome and easy to spot if you have the grunt. Tessellation is pretty sweet too when used properly.

DX11->DX12 unifies API design and overhead levels to that of the extremely large and financially relevant console market. Starting from a modern (Xbone/PS4) console optimized code base it should take LESS time to get a release ready PC version compared to DX11. DX12 leverages the economic market power of consoles in a way no other DX ever has.

The situation just isn't the same. What will be similar is that it wont be adopted overnight, because nothing of this magnitude happens overnight. But the adoption curve will be faster on DX12 than on previous versions IMO

+1

You will be proven incorrect. DX12 games built from the ground up are already in the pipeline. DX12 is such a huge rethink of DX that it should be called something different entirely. DX9, 10, 11, and all those that preceded simply built on the previous versions. DX12 is a complete redesign and direction change from a thick abstraction layer to closer to the metal API.

That's a good point that it would be reason enough to rename the API. That's what Khronos Group did with Vulkan as the successor to OpenGL, after all. Direct3D development does appear to be forking now between 12 and 11.3, so it's as good a reason as any to rename it.

Asynchronous Compute and ExecuteIndirect is not supported by 11.3. Everything else is. But I wouldn't call those for features as such. Rather API performance benefits.

They are still features. Just because they don't have an obvious visual effect like tessellation doesn't make them any less of a new API feature. And comparing Direct3D 12 to Direct3D 11.3 is rather disingenuous, since they've released simultaneously with the same hardware and operating system requirements. They're basically the same thing, Direct3D 11.3 just has an easier to work with tool kit at the cost of less potential for fine tuning and control.
 
Last edited:

Dribble

Platinum Member
Aug 9, 2005
2,076
611
136
DX12 transition is not the same as the DX10 transition or even the DX11 transition at all.

Critically, DX9->DX10 was PC only at the time while PC was still making its "comeback." DX10->DX11 was also PC only. And I don't know about you but DX11 games look a lot better than DX10 games did, the shadowing and ambient occlusion techniques we got in DX11 were pretty awesome and easy to spot if you have the grunt. Tessellation is pretty sweet too when used properly.

DX11->DX12 unifies API design and overhead levels to that of the extremely large and financially relevant console market. Starting from a modern (Xbone/PS4) console optimized code base it should take LESS time to get a release ready PC version compared to DX11. DX12 leverages the economic market power of consoles in a way no other DX ever has.

The situation just isn't the same. What will be similar is that it wont be adopted overnight, because nothing of this magnitude happens overnight. But the adoption curve will be faster on DX12 than on previous versions IMO

But DX12 is all about going "too the metal" in which case consoles hardware is substantially different to the latest pc's. Gpu are several gen's newer and much more varied, they don't have edram, or shared memory with cpu. The cpu's are quite different so how you code to communicate with the gpu is different. Basically they work differently, the performance of the individual parts are quite different, resolutions are different, hence the bottlenecks will be different. Hence the low level optimisations you'll do will be substantially different for pc's - eg. no point putting lots of effort into pc port removing a bottle neck on consoles caused by their slow cpu's that just isn't there for 90% of pc's with their i5 and i7's. No point taking that key xbox one optimisation to work around the slow ddr3 memory by using edram cache efficiently when the pc gpu has super fast hbm and no edram cache.

Personally I think we'll see lots of games called "DX12" that are basically DX11 + 5% performance for some DX12 feature. i.e. they'll take a DX11 renderer, port to DX12 with no real changes/benefits then pick something DX12 based and write the low level code to optimise it for particular gpus, hyping it too the roof tops. All that hype will translate into about 5% performance, but only if you have one of the particular gpu's they coded it for.

From the ground up DX12 renderers won't happen for a couple of years, they'll need that time to work out how to write them in a way that works across cards and doesn't need recoded for each new gpu that comes out.
 
Last edited:

Headfoot

Diamond Member
Feb 28, 2008
4,444
641
126
But DX12 is all about going "too the metal"

The consoles are the closest they've ever been to PCs by a mile. x86, GCN based GPUs with 8 GB of unified RAM and good total memory bandwidth.

The consoles have a few bits of hardware accelerated stuff that differs from PC like the Xbox One eDRAM and various accelerated audio DSPs, yes, but its a mountain out of a molehill.

DX12 now has x86 GCN based consoles using a highly similar APIs. The transition to DX10 happened during X360 and PS3 -- a tri-core hyperthreaded PowerPC core using a unified shader custom Xenos GPU that shared memory with the CPU in total only 512mb (when concurrent PCs had 1-2gb for CPU and 256-512MB for GPU), and the PS3: a single core plus 8 wide vector CPU with 256mb memory plus a bolted on fixed pipeline non-unified shader (pixel and vertex shader based) GPU with another 256mb of memory.

If you think developers cant cross platform optimize for 3 machines all of which use similar close to the metal APIs, all of which use x86 (consoles using the exact same x86 core with the exact same core count), all of which use unified shader GPUs, all of which GPUs are based on the same exact architecture (plus nVidia on PC), all of which have 8GB of memory (most gaming PCs that could push DX12 at all have this much), and only differ in a few pieces of fixed function acceleration when they could cross-platform optimize for x360-PC-PS3; then you're delusional.
 
Last edited: