DirectX Capabilities
This section details the various capabilities and features supported by DirectX on Windows platforms. Understanding these capabilities is crucial for developing high-performance graphics and multimedia applications.
Hardware Feature Levels
DirectX supports a range of hardware feature levels, allowing developers to target different GPU capabilities. Applications can query for the highest supported feature level to ensure compatibility and leverage advanced hardware features when available.
Feature Level | Description | Minimum Hardware Requirements (Example) |
---|---|---|
12 Ultimate | Includes all features of DirectX 12, plus Mesh Shaders, Variable Rate Shading (Tier 2), Shader Model 6.5, and Sampler Feedback. | Recent GPU generations (e.g., NVIDIA GeForce RTX 30 series, AMD Radeon RX 6000 series) |
12.1 | Introduces support for Mesh Shaders and Variable Rate Shading (Tier 1). | NVIDIA GeForce RTX 20 series, AMD Radeon RX 5000 series |
12.0 | Core DirectX 12 features, including explicit multi-adapter, asynchronous compute, and more efficient CPU utilization. | NVIDIA GeForce GTX 900 series, AMD Radeon R9 290 series |
11.3 | Builds upon DirectX 11.2 with support for new rasterizer-ordered views (ROVs) and bindless textures. | NVIDIA GeForce GTX 900 series, AMD Radeon R9 290 series |
11.2 | Introduces tiled resources, stereoscopic 3D support, and bindless textures. | NVIDIA GeForce GTX 600 series, AMD Radeon HD 7000 series |
11.1 | Adds Shader Model 5.0 updates, Direct3D 11.1 runtime, and integrated support for stereo 3D. | NVIDIA GeForce GTX 500 series, AMD Radeon HD 6000 series |
11.0 | Introduces compute shaders, tessellation, DirectCompute, and advanced multithreading capabilities. | NVIDIA GeForce GTX 400 series, AMD Radeon HD 5000 series |
10.1 | Shader Model 4.1, improved tessellation, cubemap arrays. | NVIDIA GeForce 8 series, AMD Radeon HD 2000 series |
10.0 | Shader Model 4.0, Geometry Shaders, stream output. | NVIDIA GeForce 8 series, AMD Radeon HD 2000 series |
9.3 | Shader Model 3.0 improvements, instancing. | NVIDIA GeForce 6 series, ATI Radeon X1000 series |
9.2 | Shader Model 3.0, dynamic shader branching. | NVIDIA GeForce 6 series, ATI Radeon X1000 series |
9.1 | Shader Model 2.0b, vertex texture fetch. | NVIDIA GeForce FX, ATI Radeon 9700 |
Shader Model Support
The Shader Model defines the capabilities of the GPU's programmable shaders. Newer Shader Models offer more advanced features and performance optimizations.
- Shader Model 6.7: Includes latest advancements in compute shaders, ray tracing, and AI inference acceleration.
- Shader Model 6.6: Enhancements for ray tracing, including new intrinsics and programmable stages.
- Shader Model 6.5: Support for Sampler Feedback, allowing shaders to influence texture cache behavior.
- Shader Model 6.4: New instructions for compute shaders, including Wave operations and Integer Add/Sub.
- Shader Model 6.3: Introduction of wave MMA (Matrix Multiplication-Accumulation) instructions for AI workloads.
- Shader Model 6.2: Full support for Mesh Shaders and Amplification Shaders.
- Shader Model 6.1: Expanded compute shader capabilities and better support for textures.
- Shader Model 6.0: Mandatory for DirectX 12, offering full compute shader support, typed unordered access views, and 64-bit float support.
- Shader Model 5.0: Introduced with DirectX 11, featuring compute shaders, tessellation shaders, and bindless resource access.
- Shader Model 4.0: Introduced with DirectX 10, providing powerful programmable vertex and pixel shaders.
API Version Information
DirectX comprises several core APIs, each with its own versioning and capabilities:
- Direct3D 12: The latest generation of Direct3D, offering low-level hardware access for maximum performance and control.
- Direct3D 11: A robust and widely supported API, balancing performance and ease of use.
- Direct3D 10/10.1: Introduced significant architectural changes and improved shader capabilities.
- Direct3D 9: The predecessor to DirectX 10, still supported by many older applications and hardware.
Advanced Graphics Features
Modern DirectX versions enable a wide array of advanced graphics techniques:
- Ray Tracing: Real-time ray tracing support for realistic lighting, reflections, and shadows.
- Mesh Shaders: A new programmable pipeline stage for highly efficient geometry processing.
- Variable Rate Shading (VRS): Allows developers to vary the shading rate across the screen, improving performance without significant visual loss.
- Tiled Resources: Efficient management of large textures by loading only the necessary portions into GPU memory.
- Asynchronous Compute: Enables the GPU to perform compute tasks concurrently with graphics rendering.
- Explicit Multi-Adapter: Allows applications to manage and utilize multiple GPUs independently.
Querying Capabilities
Developers can query the system for supported DirectX capabilities programmatically. The primary method involves using interfaces like ID3D12Device::CheckFeatureSupport
to determine the available hardware and driver features.
// Example snippet for checking feature support in Direct3D 12
D3D12_FEATURE_DATA_D3D12_OPTIONS options;
HRESULT hr = pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &options, sizeof(options));
if (SUCCEEDED(hr)) {
if (options.MeshShaderTier != D3D12_MESH_SHADER_TIER_NOT_SUPPORTED) {
// Mesh shaders are supported
}
if (options.VariableRateShadingTier != D3D12_VARIABLE_RATE_SHADING_TIER_NOT_SUPPORTED) {
// Variable Rate Shading is supported
}
}
Refer to the specific DirectX API documentation for detailed information on querying each capability.