A debug device really does need the debug layer

D3D10_CREATE_DEVICE_DEBUG is a really handy thing to use:

https://msdn2.microsoft.com/en-us/library/bb204909.aspx

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.