• TwitterFacebookGoogle PlusLinkedInRSS FeedEmail

Shader Model 3 Graphics Card

12.01.2019 
  1. Shader Model 3 Graphics Card Download

I am writing a small utility that reports system capabilities. One is the highest shader model supported by the installed graphics card, and I am currently detecting this using and checking the VertexShaderVersion and PixelShaderVersion fields of the D3DCAPS9 structure. HRESULT hrDCaps = poD3D9->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &oCaps); if (!FAILED(hrDCaps)) { // Pixel and vertex shader model versions. Use the minimum number of each for 'the' shader model version const int iVertexShaderModel = D3DSHADER_VERSION_MAJOR(oCaps.VertexShaderVersion); const int iPixelShaderModel = D3DSHADER_VERSION_MAJOR(oCaps.PixelShaderVersion); However, both these values return shader model 3 even for cards that support higher models. Here is what GPU-Z returns for the same card, for example: indicates that DX9 will never report more than SM3 even on cards that support a higher model, but doesn't actually mention how to solve it. How do I accurately get the shader model supported by the installed card? That is, the card capabilities, not the installed DirectX driver capabilities.

The utility has to run on Windows 2000 and above, and work on systems where a graphics card and even DirectX are not installed. I am currently dynamically loading DX9, so on those systems the check gracefully fails (which is ok.) But I am seeking a similar solution: something that will still run on all systems, and work correctly (detect the SM version) on most systems. Edit - purpose: I am not using this code to dynamically change features of a program, ie select shaders.

I am using it to report hardware capabilities as a 'ping' to a server, which is used to we have a good idea of typical hardware that our customers use, which can inform future product decisions. (For example: how many customers have SM4 or above?

Shader model 3 emulator

How many are using a 64-bit OS? Etc.) This is why either (a) gracefully failing, so we know it failed, or (b) getting an accurate shader model number are the two preferred modes. Edit - answers so far: The answer below by SigTerm suggests instantiating DirectX 11, 10.1, 10, and 9.0c in order, and basing the reported shader model on which version instantiated without failures (shader model 5, 4.1, 4, and DXCAPS in that order.) If possible, I'd appreciate a code example of the DX11 and 10 ways to do this.

Shader Model 3 Graphics Card Download

Shader Models are components used to help render graphics sent from the CPU to the graphic card. The version of shader model your computer can support is based in the combination between your DirectX version and the version your graphics card can support. Shader Model 3.0 Download For Free This is the best software to play latest games on old PC or for the computer doesn’t support shader model 3.0. Photoshop cc 2017 liquify not working. What do you need to do, just.

This may not be a reliable solution. For example, I am running Windows on a VMWare Fusion virtual machine on OSX. The Fusion drivers report DX11 in DxDiag, yet I know from the Fusion tech specs that it.

Still, with this exception, this method seems the best way so far. Version 4 is only supported on Direct3D10. Acronis true image bootable disk. Therefore, D3D9 api won't report it. Use D3D10/D3D11 api to detect higher version. Something that will still run on all systems, and work correctly (detect the SM version) on most systems.

Attempt to initialize D3D10/D3D11 to check functionality, if it fails init D3D9. Use LoadLibrary + GetProcAddress to load D3D10 functions, because if you link with D3D10 using.lib file, your application will fail to start if d3d10 is missing. Or use OpenGL and try to map capabilities reported by OpenGL to D3D capabilities (probably a very bad idea). Or build GPU database and use that.