Как проверить, поддерживает ли процессор аппаратное ускорение? - PullRequest
1 голос
/ 03 октября 2019

Я строю программу, которая использует объект Direct3D, using Direct3D = Microsoft.DirectX.Direct3D, для рендеринга живого потока. Я проверил его на Windows 7 машине, и проблема в том, что процессор не поддерживает Hardware Acceleration. Чтобы запустить программу, я изменил флаг, когда создаю объект Direct3D на Direct3D.CreateFlags.SoftwareVertexProcessing, что нормально. Я хотел бы знать, есть ли способ проверить, поддерживает ли процессор Hardware Acceleration. Если это так, используйте Direct3D.CreateFlags.HardwareVertexProcessing, а если нет - software. Моя программа будет работать на разных машинах, поэтому лучше бы не создавать две программы. Программа написана на C#, но если вы знаете, как это сделать на других языках, я был бы признателен за это и постараюсь перевести на C#.

1 Ответ

2 голосов
/ 03 октября 2019

Я не знаю, есть ли более прямой маршрут в C #, но в [C ++] [1] вы можете проверить с помощью:

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

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

...