Search code examples
visual-c++driverdirectx-12

How to get adapter driver version in DirectX12?


In DirectX9 I can call IDirect3D9::GetAdapterIdentifier method to get D3DADAPTER_IDENTIFIER9 with adapter driver version DriverVersion.

Is there anything similar in DirectX12 for getting a driver version?


Solution

  • You can get each DXGI adapter driver version from the registry,

    key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX

    (with matching DeviceId from DXGI_ADAPTER_DESC)

    For example, I get :

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX{53ED9FF6-8883-11E8-B1FF-C0C7A6E97177}

    DeviceId = 0x402

    Description = Intel(R) HD Graphics

    DriverVersion = 0x140013000f12e3

    then :

    LARGE_INTEGER nDriverVersion;
    nDriverVersion.QuadPart = 0x140013000f12e3; 
    WORD nProduct = HIWORD(nDriverVersion.HighPart);
    WORD nVersion = LOWORD(nDriverVersion.HighPart);
    WORD nSubVersion = HIWORD(nDriverVersion.LowPart);
    WORD nBuild = LOWORD(nDriverVersion.LowPart);
    

    => 20.19.15 Build 4835, which is a valid version (Intel HD Graphics Driver 20.19.15.4835 64-bit)