
D3D_FEATURE_LEVEL requestedLevels[] = D3D_FEATURE_LEVEL_12_1, D3D_FEATURE_LEVEL_12_0, D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0 ; D3D_FEATURE_LEVEL supportedLevel; HRESULT hr = D3D11CreateDevice( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, requestedLevels, ARRAYSIZE(requestedLevels), D3D11_SDK_VERSION, &device, &supportedLevel, &context);
The following are the standard Feature Levels defined in the d3dcommon.h header, arranged from lowest to highest capability: d3d_feature_level
Advanced Direct3D 12 functionality. Why Feature Levels Matter: Bridging Hardware Gaps | D3D11, D3D12* | | 10_0 | Direct3D 10 class hardware
When working with D3D feature levels, keep the following best practices in mind: Improved blending and anti-aliasing capabilities
| Feature Level | Description | Direct3D API Support | | :--- | :--- | :--- | | | Direct3D 9 class hardware. These levels map capabilities of older GPUs (like Shader Model 2.0/3.0) to the modern API runtime. | D3D11, D3D12* | | 10_0 | Direct3D 10 class hardware. Introduces Geometry Shaders and Stream Output. | D3D11, D3D12* | | 10_1 | Direct3D 10.1 class hardware. Improved blending and anti-aliasing capabilities. | D3D11, D3D12* | | 11_0 | Direct3D 11 class hardware. Introduces Hull, Domain, and Compute Shaders; Tessellation. | D3D11, D3D12 | | 11_1 | Direct3D 11.1 class hardware. Introduces Logical Blend Operations and Target-Independent Rasterization. | D3D11, D3D12 | | 12_0 | Direct3D 12 class hardware. Conservative Rasterization, high-volume resources. | D3D12 | | 12_1 | Direct3D 12 class hardware. Adds ROVs (Rasterizer Ordered Views) and VPRT (Viewport Array Support). | D3D12 |
Use D3D_FEATURE_LEVEL_9_3 or 10_0 to test how your application handles reduced capabilities.