如何检查代码是否CPU支持C#上的硬件加速?

时间:2019-10-03 15:35:26

标签: c# directx direct3d hardware-acceleration

我正在构建一个程序,该程序使用Direct3D对象using Direct3D = Microsoft.DirectX.Direct3D渲染实时流。我在Windows 7机器上进行了测试,问题是CPU不支持Hardware Acceleration。为了运行程序,我在创建Direct3D对象时将标志更改为Direct3D.CreateFlags.SoftwareVertexProcessing,这很好。我想知道是否有任何方法可以检查CPU是否支持Hardware Acceleration。如果是这样,请使用Direct3D.CreateFlags.HardwareVertexProcessing,否则请使用software。我的程序将运行在不同的计算机上,因此,与构建两个程序相比,这种方法会更好。该程序是用C#编写的,但是如果您知道如何用其他语言编写,我将不胜感激,并且我将尝试用C#进行翻译。

1 个答案:

答案 0 :(得分:2)

我不知道C#中是否有更直接的路线,但是在[C ++] [1]中,您可以使用以下方法进行检查:

HRESULT GetDeviceCaps(
  UINT       Adapter,
  D3DDEVTYPE DeviceType,
  D3DCAPS9   *pCaps
);

[1] https://docs.microsoft.com/en-us/windows/win32/direct3d9/selecting-a-device