DX12 - Documentation / Tutorials?

Started by
33 comments, last by Alessio1989 9 years, 6 months ago

Hi

I wanted to know if anyone here has had the chance to use/look at the Direct3D 12 API?

How different is it from DX9, DX11? Is it a whole paradigm shift?

Is it the basics: "create buffer -> copy data to buffer -> Draw from buffer" kind of thing?

Im mostly just familiar with DX9 and want to catch up with DX12. Should I learn DX11 while waiting for docs/tutorials?

Cheers!

Advertisement

Haven't heard of any releases for DX12 yet, hints are for an early access preview later this year. You can apply for the early access from a link down the page here. That same page gives a good overview of what is changing - I think the main thing is lower level of hardware abstraction. It looks like it builds upon the approach used in DX11 (e.g. still supports command lists and so on), so I think you will be safe to start with DX 11.1 or 11.2

Justin Stenning | Blog | Book - Direct3D Rendering Cookbook (using C# and SharpDX)

Projects: Direct3D Hook, EasyHook, Shared Memory (IPC), SharpDisasm (x86/64 disassembler in C#)

@spazzarama

 

Closest thing to documentation right now: http://channel9.msdn.com/Events/Build/2014/3-564

(Rant: And knowing Microsoft, probably that's the only "documentation" we will ever have for a long time. With DX 10 & 11 I got the feeling they either didn't finish the documentation, or they did finish it but didn't provide it for free. I hear some guy at Futuremark (3DMark) already had access to the API to write a DX12 demo - I fear they, like other companies are probably already working directly with MS to figure out stuff, and we average Joes will again be left in the dark.)

It's not going to be out for quite a while, and no one is yet sure whether it will be compatible with older GPUs (feature levels) or older OS's (worse case is Win9+)... so I would definitely recommend learning D3D11 in the meantime biggrin.png

D3D9 -> D3D11 jump will be similar to the D3D12 jump, so this will still be a helpful learning exercise for you.

In D3D9, you have a lot of render-states, set with SetRenderState / SetSamplerState / etc... In D3D11, these have been replaced with a much smaller set of immutable state objects.

D3D12 will likely go further in the same direction, with an even smaller again set of immutable state objects.

D3D11 is also multi-thread friendly in design (so you can get used to using an 'immediate' and 'deferred' contexts now), whereas D3D9 only provides a single thread/context.

D3D12 will be the same, except will perform much better (D3D11 deferred context do not actually provide good performance increases in practice).

The way that you bind resources to shaders will be completely different in D3D12 than in earlier D3D versions... The closest publicly available API at the moment is GL with all the "bindless" extensions...

However, the new D3D12 model of binding resources is more flexible than the current one, which means it's possible to implement D3D9/11 style resource-binding in this new API -- you just have options to do it other ways as well biggrin.png

(Rant: And knowing Microsoft, probably that's the only "documentation" we will ever have for a long time. With DX 10 & 11 I got the feeling they either didn't finish the documentation, or they did finish it but didn't provide it for free.


A problem they had is that the DirectX group did not generate any profit (they didn't "sell" anything) so they had a pretty low budget, leading to an inability to afford dedicated documentation people. This is also why SM4/5 aren't publicly documented.

Hopefully with all the restructuring lately the accountants will be forced to recognize that DX is a core part of the Microsoft development ecosystem and is important to Microsoft's long-term health.

Sean Middleditch – Game Systems Engineer – Join my team!

If you're a professional developer you can apply for their early access program, which has documentation/samples/SDK available. If not...then you'll unfortunately have to wait until the public release.

The first Windows 9 preview should be public at the end of this month I read, so it's perfectly plausible that at the same time we will see a first Windows SDK 9 preview. It should be out more or less in Q1-2015 (in coincidence with VS14, probably a little later).

So, yes, we're all waiting the next Windows SDK, hoping at least a lil of DX12 libraries will come to Windows 8.1 (capped @feature level 11.1?).

D3D12 will be the same, except will perform much better (D3D11 deferred context do not actually provide good performance increases in practice... or this is the excuse of AMD and Intel which do not support driver command lists).


Fixed cool.png

.... This is also why SM4/5 aren't publicly documented....


http://msdn.microsoft.com/library/bb509657.aspx http://msdn.microsoft.com/en-us/library/bb943998.aspx
http://msdn.microsoft.com/library/ff471356.aspx http://msdn.microsoft.com/en-us/library/hh447232.aspx

what kind of documentation are you searching for? unsure.png

"Recursion is the first step towards madness." - "Skegg?ld, Skálm?ld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/

D3D12 will be the same, except will perform much better (D3D11 deferred context do not actually provide good performance increases in practice... or this is the excuse of AMD and Intel which do not support driver command lists).

Fixed :cool:
AMD support them on Mantle and multiple game console APIs. It's a back end D3D (Microsoft code) issue, forcing a single-thread in the kernel mode driver be responsible for kickoff. The D3D12 presentations have pointed out this flaw themselves.

what kind of documentation are you searching for?


Sorry, should've been more specific. I'm referring to documentation on the binary format to allow you to produce/consume compiled shaders like you can with SM1-3 without having to pass through Microsoft DLLs or HLSL. Consider projects like MojoShader that could make use of this functionality to decompile SM4/5 code to GLSL when porting software or a possible Linux D3D11 driver that would need to be able to compile compiled SM4/5 code into Gallium IR and eventually GPU machine code.

There's also no way with SM4/5 to write assembly and compile it which is a pain for various tools that don't work to work through HLSL or the HLSL compiler.

Sean Middleditch – Game Systems Engineer – Join my team!

So DirectX12 is it going to be like DX10. where thery get you started then they just drop it in no time and replace it with 11 wtf. Is it Is it going to be like that.

This topic is closed to new replies.

Advertisement