Thursday, June 28, 2012

Documentation!

It's not unfair to say that the D3D11 documentation is a special kind of awful.  So far that mirrors my initial exposure to the D3D9 docs, but over time I came to get used to the layout, know where to find things, and it's real value came out.  That's not happening with D3D11 and I've long since learned that it's far more useful to refer back to the D3D10 docs and mentally translate the API calls.

The obvious exception, of course, is with features that didn't exist in D3D10.  Compute shaders are the main thing I currently have on the boil, and just finding some kind of sensibly worded high-level overview that lets me get a feel for how all the individual pieces fit together is the first objective.

You would think that the SDK's "Compute Shader Overview" page (and good luck finding that in the index, because it's not there) would give you this, together with some handy definitions and links to useful stuff for getting you started.  Instead you're dropped head-first into crap like this: "The Z dimension of dispatch is limited to 1.  SV_GroupIndex must be used when accessing groupshared memory for writing.  Only RWStructuredBuffers and RWByteAddressBuffers are available as unordered access views".  What.  On.  Earth.  Are.  They.  Talking.  About?

This flaw is endemic throughout the D3D11 docs, and in cases like this it's particularly poor - there is no D3D10 equivalent to refer back to for the real info you need; it just launches into an assumption that you already have the necessary background and leaves you to sink or swim.

I'm sure that over time I'll come to look back on this with the benefit of knowledge, but right about now it sucks.  Mightily.

No comments: