CreateDevice D3DERR_INVALIDCALL - How to solve without debug runtime?

Started by
10 comments, last by Tubos 12 years, 1 month ago
Generally even onboard graphics cards need some sort of driver. It's certainly possible that the graphics card they do have doesn't have the correct driver installed. The other possibility is that there is no D3D9 supporting driver available because the graphics card is ancient, or they are using a virtual machine that doesn't do 3D acceleration.

The Intel ones may simply have an out of date driver, or be such old hardware that they don't support D3D9. Same goes for the ATI and NVidia ones.

Possible code based solutions:
- Tell the user something like "Direct3D initialization failed. Make sure you have a DirectX 9 compatible graphics card and an up to date driver installed. Or contact technical support".
- If any of them are running Vista or 7 then supporting D3D11 would allow you to fix it automatically by falling back on the software renderer (WARP). This will obviously be much slower than hardware rendering though. Of course adding D3D11 support isn't a small task either.
Advertisement
Sounds like a good idea. I will give them instructions how to get the correct graphics card driver, or to contact me.

This topic is closed to new replies.

Advertisement