In addition to support for Shader Model 6.7, this preview Agility SDK contains improved support for Enhanced Barriers and some smaller features
For more on the public release of Shader Model 6.7, please see our 1.606.3 announcement. With the addition of preview Enhanced Barriers and Relaxed Format Casting support, raw gathers will achieve their full utility by allowing casting of a wide range of formats to unsigned integer views to grant direct access to the elements using raw gathers. For more details please see here.
When using this developer preview agility SDK, set D3D12SDKVersion to D3D12_PREVIEW_SDK_VERSION.
Go here to download 1.706.3-preview.
Enhanced Barriers Preview 2
The enhanced barriers API is pretty much unchanged since 1.700.10-preview. However, there have been vast improvements in debug validation and a handful of important bug fixes in the legacy barrier translation. Here are a few highlights:
- GPU-Based Validation (GBV) supports enhanced barriers.
- GBV is significantly faster when using enhanced barrier validation. More than half of the legacy GBV shader patching relates to promotion and decay, which doesn’t exist using enhanced barriers.
- On devices supporting enhanced barriers, GBV errors are always reported using enhanced barrier layout, even if the app does not use enhanced barriers. Legacy GBV can be forced on using
ID3D12Debug6::ForceLegacyBarrierValidation
. However, this prevents any validation of resources that do use enhance barrier layouts. - Improved inter-op validation mixing enhanced barriers with legacy barriers.
- Adds
ID3D12DebugCommandList3::AssertTextureLayout
andID3D12DebugCommandQueue1::AssertResourceAccess
methods. - Fixes bugs translating legacy ResourceBarrier APIs to enhanced barriers at the driver level, particularly in cases where multiple read-bits are set.
- Access bits are no longer validated as a ‘state’ of a resource. The only stateful barrier attribute is Layout. Access validation is limited to compatibility with texture layout and resource create-time constraints.
New Minor Features
More features have been added in this preview that continue our push for ease of use and alignment with other graphics APIs.
Independent Front/Back Stencil Refs and Masks
Check for support by calling CheckFeatureSupport
with a pointer to a D3D12_FEATURE_DATA_D3D12_OPTIONS14.
When IndependentFrontAndBackStencilRefMaskSupported
is true, front and back stencils in D3D12 can be specified with both separate stencil mask and separate reference values.
Front and back masks can be set independently with D3D12_DEPTH_STENCILOP_DESC1
in D3D12_DEPTH_STENCIL_DESC2
, which can be used with CreatePipelineState
. CD3DX12_DEPTH_STENCIL_DESC2
along with CD3DX12_PIPELINE_STATE_STREAM3
are available in the D3DX12 helpers to set up the pipeline stream desc.
Front and back reference values can be set independently with OMSetFrontAndBackStencilRef
in ID3D12GraphicsCommandList8
.
Triangle fan
Check for support by calling CheckFeatureSupport
with a pointer to a D3D12_FEATURE_DATA_D3D12_OPTIONS15
. When TriangleFanSupported
is true, D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN
is valid to specify as the primitive topology. These behave in the expected way, as they did in D3D9.
Driver support
Once you’ve downloaded 1.706.3-preview, you can find drivers as follows:
AMD
AMD Radeon Software Adrenalin Driver Version 22.10.23.05 on all currently supported AMD Radeon GPUs, including the latest RDNA GPU line, available now: https://www.amd.com/en/support/kb/release-notes/rn-rad-ms-agility-sdk-2022-1-706
NVIDIA
Developers interested in working with the latest Public and Preview Agility SDKs on NVIDIA hardware should reach out to their NVIDIA representative for more details.
Intel
A preview driver for Intel® Arc Graphics Family (DG2) cards is available at: https://www.intel.com/content/www/us/en/download/737144/737145
Support for additional Intel® graphic cards will be available in future driver updates.
The post Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more appeared first on DirectX Developer Blog.