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

问题描述 投票:1回答:1

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

c# directx direct3d hardware-acceleration
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.