D3D 特征级别问题
D3D Feature Level issue
有人可以向我解释一下,当有人尝试使用比用户 GPU 支持的更高 d3d_feautre_level 的 GPU 时会发生什么?
这是我不明白的地方,如果有人能帮我解决这个问题,我将不胜感激
创建 Direct3D 设备时,您提供应用程序支持的 Direct3D 硬件功能级别列表。如果硬件不支持任何这些功能级别,则设备创建失败。
对于 Direct3D 11,您提供 D3D11CreateDevice
支持的功能级别作为第 5 个和第 6 个参数:
HRESULT D3D11CreateDevice(...
const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
...);
如果传nullptr
/0,则默认为:
D3D_FEATURE_LEVEL lvl[] = {
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0,
D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1 };
对于 Direct3D 12,D3D12CreateDevice
将您支持的最低 Direct3D 功能级别作为第二个参数:
HRESULT WINAPI D3D12CreateDevice(...
D3D_FEATURE_LEVEL MinimumFeatureLevel,
...);
大多数应用程序使用 D3D_FEATURE_LEVEL_11_0
作为最小值。
Direct3D 12 requires both Windows 10 and WDDM 2.0 drivers that support it. There are no device drivers for any video card lower than Feature Level 11.0 at this time.
见Direct3D Feature Levels
Anatomy of Direct3D 11 Create Device
Anatomy of Direct3D 12 Create Device
有人可以向我解释一下,当有人尝试使用比用户 GPU 支持的更高 d3d_feautre_level 的 GPU 时会发生什么?
这是我不明白的地方,如果有人能帮我解决这个问题,我将不胜感激
创建 Direct3D 设备时,您提供应用程序支持的 Direct3D 硬件功能级别列表。如果硬件不支持任何这些功能级别,则设备创建失败。
对于 Direct3D 11,您提供 D3D11CreateDevice
支持的功能级别作为第 5 个和第 6 个参数:
HRESULT D3D11CreateDevice(...
const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
...);
如果传nullptr
/0,则默认为:
D3D_FEATURE_LEVEL lvl[] = {
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0,
D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1 };
对于 Direct3D 12,D3D12CreateDevice
将您支持的最低 Direct3D 功能级别作为第二个参数:
HRESULT WINAPI D3D12CreateDevice(...
D3D_FEATURE_LEVEL MinimumFeatureLevel,
...);
大多数应用程序使用 D3D_FEATURE_LEVEL_11_0
作为最小值。
Direct3D 12 requires both Windows 10 and WDDM 2.0 drivers that support it. There are no device drivers for any video card lower than Feature Level 11.0 at this time.
见Direct3D Feature Levels
Anatomy of Direct3D 11 Create Device
Anatomy of Direct3D 12 Create Device