adruab.net Deep internal/external searching… for… stuff

23Jan/100

DirectX 11 Fail

I started playing with getting a Direct3D 11 pipeline up and running recently (e.g. draw a screen space triangle). It's absolutely crazy how many more problems I've run into than I did with Direct3D 9.

First the good:

  • Core design feels cleaner. Less functional groupings to worry about and those that are left seem to be grouped fairly logically.
  • The effects framework has been released as source. It also looks like it has a cleaner reflection interface than before. Don't look at the code though, it's scary.

Frustrations in random order:

  • You have to turn on debug mode to get ANY kind of error reporting out of the immediate device context.
  • Shader compilation and DXGI seem to talk to mostly DX 10 interfaces. Wtf?
  • The documentation is very sad. They refer you to DX10 docs for everything that's not new to DX11.
  • Where is the effects framework? How about where do they tell you in the docs? At the bottom of differences from DX10 effects page (not reference).
  • Documentation errors! D3DX10async.h does not exist. D3DX11CreateEffectFromMemory "Use ???.lib". Sad monkeys.
  • PIX is useless for debugging. Only timing and replay is supported thus far.
  • Certain errors seem to hang and crash the graphics driver. Thankfully the OS survives.
  • The DXUT source sucks. Try searching for the frame buffer setup functions in their source, I dare you.

Quibbles:

  • State block interfaces. Why do you need interfaces when you have user mode drivers!? Instead of just saying SetBlendState(&blendstate), you have to create an interface set that and then use the interface pointer whenever you want to set something. Do you really gain that much out of the extra layer of indirection to make it worth it? Now simple operations like toggling on and off back face culling require many hoops. Maybe that's the point?

This is definitely the most frustrated I've ever been with a Microsoft release in a long time. Here's hoping the next release will fill all the gaps. On the plus side, I finally have a triangle drawing.

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

No trackbacks yet.