Jump to content
  • Advertisement
Sign in to follow this  
Norman Barrows

how crazy should I go checking device caps?

This topic is 1241 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

i'm improving the code that selects what resolution Caveman 3.0 runs at by default.


Originally, i just checked for X8R8G8B8 support, and assumed hardware acceleration (HAL / pure device) was available.


But i got two reports of folks who this did not work for. they had to create a text file to specify a resolution that worked, in order to run the game.


I've addded a check for HAL support with X8R8G8B8 front buffer and A8R8G8B8 back buffer.


But the DX docs recommend checking device caps too.


I'm not really doing anything fancy: fixed function, presentation interval default, mipmaps, aniso, alpha test, alpha blend, and i do a two stage texture blend of a snow texture with ground textures to draw snow, that's it.   


i'm thinking these things are so common these days there may be no need to check for them. I mean if its got HAL, surely it would also have these basic capabilities.


a related question:


if CheckDeviceType says HAL is supported, D3DDEVCAPS_PUREDEVICE will always be true, correct?





i've added 24 bit depth stencil buffer check.


if CheckDeviceType says 24 bit depth buffer is ok, i dont need to call CheckDepthStencilMatch if i'm only using X8R8G8B8 front buffer and A8R8G8B8 back buffer, since the three (D3DFMT_X8R8G8B8 front, D3DFMT_A8R8G8B8 back, and D3DFMT_D24X8 stencil) are always compatible, right?

Edited by Norman Barrows

Share this post

Link to post
Share on other sites

In the DirectX SDK install folder under Samples\C++\Direct3D\ConfigSystem there is a CardCaps spreadsheet and pdf file, which tells you for a wide range of older graphics cards what capabilities they support.


Cards that support DX10 will generally all cover the same set of DX9 caps, so it's older cards that you need to worry about.


If every card on that spreadsheet supports a particular capability then it's probably fairly safe to assume that you don't need to test for it.


For example you can see from the spreadsheet that there are a few Intel chips that don't support D3DDEVCAPS_PUREDEVICE, so you probably want to test for it, or avoid using it.


On the other hand every card in the list supports both X8R8G8B8 and A8R8G8B8 render targets so if you've found one that doesn't it must be an unusual setup.


To see how common hardware is on gamers PCs http://store.steampowered.com/hwsurvey?platform=pc is very useful (although the numbers in the DX10/11 Systems graph at the top are clearly buggy - the total doesn't add up to 100%).

Edited by Adam_42

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!