A debug device really does need the debug layer

D3D10_CREATE_DEVICE_DEBUG is a really handy thing to use:


Watch your debug output with this turned on and you will get a lot of helpful stuff. Try rendering without a viewport, for example.

One thing to watch out for though - this will only work on a machine with the SDK installed. The D3D10CreateDevice call will fail on a machine without the debug layer installed if you use this flag. This is documented, but you have to look around for it.