我有一个 DX11 应用程序,我想添加对软件渲染的支持。这是因为在某些情况下,它将在没有 GPU 的机器上运行。从我所做的研究来看,似乎我最好的选择是WARP。
将应用程序更改为使用 WARP 非常简单:
hr = D3D11CreateDevice(
NULL,
D3D_DRIVER_TYPE_WARP, // was D3D_DRIVER_TYPE_HARDWARE
NULL,
creationFlag,
featureLevels,
ARRAYSIZE(featureLevels),
D3D11_SDK_VERSION,
&mDevice,
&mFeatureLevel,
&mDeviceContext
);
它运行良好。我正在努力确定何时将 DriverType 设置为 WARP 而不是硬件。有没有我可以调用的函数来告诉我系统上是否有硬件支持?
我正在使用 DX 11 功能级别 9_1。