{"id":6624,"date":"2022-07-14T12:19:04","date_gmt":"2022-07-14T19:19:04","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/directx\/?p=6624"},"modified":"2022-07-14T12:38:12","modified_gmt":"2022-07-14T19:38:12","slug":"preview-agility-sdk-1-706-3-preview-sm-6-7-enhanced-barriers-and-more","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/directx\/preview-agility-sdk-1-706-3-preview-sm-6-7-enhanced-barriers-and-more\/","title":{"rendered":"Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more"},"content":{"rendered":"<p><span data-contrast=\"auto\">In addition to support for Shader Model 6.7, this preview Agility SDK contains improved support for Enhanced Barriers and some smaller features<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">For more on the public release of Shader Model 6.7, please see our <\/span><a href=\"https:\/\/devblogs.microsoft.com\/directx\/shader-model-6-7\/\"><span data-contrast=\"auto\">1.606.3 announcement<\/span><\/a><span data-contrast=\"auto\">. 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 <a href=\"https:\/\/devblogs.microsoft.com\/directx\/shader-model-6-7#raw-gather-limitations\">here<\/a>.<\/span><\/p>\n<p><span data-contrast=\"auto\">When using this developer preview agility SDK, set D3D12SDKVersion to D3D12_PREVIEW_SDK_VERSION.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Go <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Direct3D.D3D12\/1.706.3-preview\">here<\/a> to download 1.706.3-preview.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h4 aria-level=\"2\"><span data-contrast=\"none\">Enhanced Barriers Preview 2<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">The enhanced barriers API is pretty much unchanged since <\/span><a href=\"https:\/\/devblogs.microsoft.com\/directx\/d3d12-enhanced-barriers-preview\/\"><span data-contrast=\"none\">1.700.10-preview<\/span><\/a><span data-contrast=\"auto\">. 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:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li><span data-contrast=\"auto\">GPU-Based Validation (GBV) supports enhanced barriers.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">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\u2019t exist using enhanced barriers.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">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 <code>ID3D12Debug6::ForceLegacyBarrierValidation<\/code>. However, this prevents any validation of resources that do use enhance barrier layouts.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Improved inter-op validation mixing enhanced barriers with legacy barriers.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Adds <code>ID3D12DebugCommandList3::AssertTextureLayout<\/code> and\u00a0<code>ID3D12DebugCommandQueue1::AssertResourceAccess<\/code> methods.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Fixes bugs translating legacy ResourceBarrier APIs to enhanced barriers at the driver level, particularly in cases where multiple read-bits are set.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Access bits are no longer validated as a \u2018state\u2019 of a resource. The only stateful barrier attribute is Layout. Access validation is limited to compatibility with texture layout and resource create-time constraints.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<h4 aria-level=\"2\"><span data-contrast=\"none\">New Minor Features<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">More features have been added in this preview that continue our push for ease of use and alignment with other graphics APIs.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h5 aria-level=\"3\"><span data-contrast=\"none\">Independent Front\/Back Stencil Refs and Masks<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h5>\n<p><span data-contrast=\"auto\">Check for support by calling <\/span><code><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/api\/d3d12\/nf-d3d12-id3d12device-checkfeaturesupport\"><span data-contrast=\"none\">CheckFeatureSupport<\/span><\/a><\/code><span data-contrast=\"auto\"> with a pointer to a <code>D3D12_FEATURE_DATA_D3D12_OPTIONS14.<\/code> When <code>IndependentFrontAndBackStencilRefMaskSupported <\/code>is true, front and back stencils in D3D12 can be specified with both separate stencil mask and separate reference values. <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Front and back masks can be set independently with <code>D3D12_DEPTH_STENCILOP_DESC1<\/code> in <code>D3D12_DEPTH_STENCIL_DESC2<\/code>, which can be used with <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/api\/d3d12\/nf-d3d12-id3d12device2-createpipelinestate\"><span data-contrast=\"none\"><code>CreatePipelineState<\/code><\/span><\/a><span data-contrast=\"auto\">. <code>CD3DX12_DEPTH_STENCIL_DESC2<\/code>\u00a0along with <code>CD3DX12_PIPELINE_STATE_STREAM3<\/code> are available in the D3DX12 helpers to set up the pipeline stream desc.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Front and back reference values can be set independently with <code>OMSetFrontAndBackStencilRef<\/code> in <code>ID3D12GraphicsCommandList8<\/code>.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h5 aria-level=\"3\"><span data-contrast=\"none\">Triangle fan\u00a0<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h5>\n<p><span data-contrast=\"auto\">Check for support by calling <\/span><code><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/api\/d3d12\/nf-d3d12-id3d12device-checkfeaturesupport\"><span data-contrast=\"none\">CheckFeatureSupport<\/span><\/a><\/code><span data-contrast=\"auto\"> with a pointer to a <code>D3D12_FEATURE_DATA_D3D12_OPTIONS15<\/code>. When <code>TriangleFanSupported<\/code> is true, <code>D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN<\/code>\u00a0is valid to specify as the primitive topology. These behave in the expected way, <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/direct3d9\/triangle-fans\"><span data-contrast=\"none\">as they did in D3D9.<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h4 aria-level=\"2\"><span data-contrast=\"none\">Driver support<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">Once you\u2019ve downloaded <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Direct3D.D3D12\/1.706.3-preview\">1.706.3-preview<\/a>, you can find drivers as follows:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">AMD<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">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: <\/span><a href=\"https:\/\/www.amd.com\/en\/support\/kb\/release-notes\/rn-rad-ms-agility-sdk-2022-1-706\"><span data-contrast=\"none\">https:\/\/www.amd.com\/en\/support\/kb\/release-notes\/rn-rad-ms-agility-sdk-2022-1-706<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">NVIDIA<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">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.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Intel<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">A preview driver for Intel\u00ae Arc\u2122 Graphics Family (DG2) cards is available at: <\/span><a href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/download\/737144\/737145\"><span data-contrast=\"none\">https:\/\/www.intel.com\/content\/www\/us\/en\/download\/737144\/737145<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Support for additional Intel\u00ae graphic cards will be available in future driver updates.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In addition to support for Shader Model 6.7, this preview Agility SDK contains improved support for Enhanced Barriers and some smaller features\u00a0 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 [&hellip;]<\/p>\n","protected":false},"author":2473,"featured_media":12651,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-directx"],"acf":[],"blog_post_summary":"<p>In addition to support for Shader Model 6.7, this preview Agility SDK contains improved support for Enhanced Barriers and some smaller features\u00a0 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 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts\/6624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/users\/2473"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/comments?post=6624"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts\/6624\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/media\/12651"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/media?parent=6624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/categories?post=6624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/tags?post=6624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}