如何在 DirectX12 中获取适配器驱动程序版本?

How to get adapter driver version in DirectX12?

在 DirectX9 中,我可以调用 IDirect3D9::GetAdapterIdentifier 方法来获取 D3DADAPTER_IDENTIFIER9 适配器驱动程序版本 DriverVersion

在 DirectX12 中是否有类似的东西来获取驱动程序版本?

使用 DXGI 的 IDXGIAdapter::GetDesc 方法。

这与 Direct3D 10 和 11 相同,它们也使用 DXGI。

注意 DXGI_ADAPTER_DESC 结构有多个版本,最新的是 DXGI 1.6。

您可以从注册表中获取每个 DXGI 适配器驱动程序版本,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX

(匹配来自 DXGI_ADAPTER_DESCDeviceId

例如,我得到:

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

设备 ID = 0x402

描述 = Intel(R) 高清显卡

驱动程序版本 = 0x140013000f12e3

然后 :

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,这是一个有效版本 (Intel HD Graphics Driver 20.19.15.4835 64-bit)