   Question about proper queries/assuring a DirectX 9 program will run on all computers.
  Hello fellow DirectX programmers,   I have a few questions about proper use of queries and how to assure that a DirectX 9 program will run properly on all computers.   My situation is this....I decided to build a D3D FPS game about a year ago.  Because it was my first D3D application I did not have the knowledge that I do now that I have worked with D3D for awhile.   Because I was new when I started I did no hardware validation (checking for device caps and making sure that all features are supported) outside of the standard GetBestDevice() structure used with the DXSDK framework.    The game is nearing completion but my concern is this...    My game runs fine on my computer, but how do I assure that the game will run on ALL computers, i.e, when/how/where/and what should I query to make sure that the proper features are supported?    In short, I get the best device but I just don't know what other validation I need to do.  Again, outside of the device, I need to know when/how/where/and what I should query to make sure that the proper features are supported on all computers and that the program will run successfully on any computer. Thank you so much.    Also, if at all possible, please be as specific as possible and code snippets would be greatly welcome.Thank you for your help,    Jeremy   
Quote:Original post by grill8how do I assure that the game will run on ALL computersTo be honest, its extremely difficult to go for ALL computers. At best you can "gracefully fail" on those that dont cut it, but even then there are so many bad drivers (mostly for older hardware) that it's near enough impossible to guarantee that it will work correctly.Quote:Original post by grill8In short, I get the best device but I just don't know what other validation I need to do.You keep referring to "queries" - but its more broadly known as "enumeration" and/or "checking the caps"...Simply put, if you want to be as safe as possible, check EVERYTHING.IDirect3D9 has pretty much all the information you need - the various ::Check**() calls and the ::GetDeviceCaps() function.Quite what you need to check is difficult to say - its very dependent on what features you're using. Most of the documentation pages will include "remarks" or general comments regarding any hardware requirements - you simply need to check anything/everything that you use.As a head-start you can look at the cardcaps.xls file thats been in the SDK since Oct'05. It includes (as the first few columns) "Lowest Common Denominator" entries - this is good guidance as to what you can/can't expect from hardware.hthJack