mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-12-04 04:24:26 -05:00
Page:
Feature support
No results
18
Feature support
Philip Rebohle edited this page 2025-10-04 17:38:05 +02:00
Table of Contents
Feature support
DXVK supports D3D11 up to Feature Level 12_1.
Optional feature support
DXVK supports the following optional features, provided that the Vulkan driver and GPU support the corresponding features:
- Tiled Resources: Up to Tier 3.
- Multisampled tiled resources are not supported on all Vulkan drivers.
- Sharing tiled resources or tile pools between multiple D3D devices is not supported.
- Shader feedback on raw or structured buffer loads may be inaccurate if a single load straddles 64k pages.
- Conservative Rasterization: Up to Tier 3.
- The corresponding Vulkan functionality is provided by
VK_EXT_conservative_rasterization. - Some Vulkan drivers do not support
SV_InnerCoverageand will be limited to Tier 2.
- The corresponding Vulkan functionality is provided by
- Rasterizer Ordered Views.
- The corresponding Vulkan functionality is provided by
VK_EXT_fragment_shader_interlock. - Some Vulkan drivers do not implement this functionality even if the hardware can support it.
- The corresponding Vulkan functionality is provided by
- Exporting Viewport Index and Render Target Array Index from vertex shaders or domain shaders.
- This is expressed by the VPAndRTArrayIndexFromAnyShaderFeedingRasterizer feature in D3D11.
- The corresponding Vulkan features are
shaderOutputViewportIndexandshaderOutputLayer.
- Exporting the Stencil Reference from pixel shaders.
- This is expressed by the PSSpecifiedStencilRefSupported feature in D3D11.
- The corresponding Vulkan functionality is provided by
VK_EXT_shader_stencil_export. - Not all hardware can support this.
- Double-precision shader instructions
- This is expressed by the DoublePrecisionFloatShaderOps and ExtendedDoublesShaderInstructions features in D3D11.
Unsupported features:
The following core API features are unsupported:
- Predication. Calls to SetPredication are ignored.
- Support for predicated draws and dispatches may be implemented in the future, other operations will remain unsupported.
- Prefer using indirect draws or dispatches instead.
- Target-independent rasterization: In case a render target is bound, the ForcedSampleCount parameter of the current rasterizer state will be ignored.
- ForcedSampleCount is supported when performing UAV rendering, i.e. rendering without any bound render targets.
- Most Vulkan drivers do not support 16x MSAA.
- Video APIs. These are generally not supported.
- There is rudimentary support for
ID3D11VideoContext::VideoProcessorBlt, and related functionality required for setup.
- There is rudimentary support for
The code that determines D3D11 feature support can be found here.
Shared resources
Shared Resources are partially supported, with the following restrictions:
- Proton patches are required.
- Not all formats that are guaranteed to be shareable by D3D11 are supported by all drivers.
- This does not and will never work at all on Windows.
If at all possible, please avoid sharing resources between different APIs, or different devices of the same API.