{"version":"1.0","provider_name":"DirectX Developer Blog","provider_url":"https:\/\/devblogs.microsoft.com\/directx","author_name":"Bill Kristiansen","author_url":"https:\/\/devblogs.microsoft.com\/directx\/author\/billkris\/","title":"A Look Inside D3D12 Resource State Barriers - DirectX Developer Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"9hnKiJvcpN\"><a href=\"https:\/\/devblogs.microsoft.com\/directx\/a-look-inside-d3d12-resource-state-barriers\/\">A Look Inside D3D12 Resource State Barriers<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/directx\/a-look-inside-d3d12-resource-state-barriers\/embed\/#?secret=9hnKiJvcpN\" width=\"600\" height=\"338\" title=\"&#8220;A Look Inside D3D12 Resource State Barriers&#8221; &#8212; DirectX Developer Blog\" data-secret=\"9hnKiJvcpN\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/directx\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/03\/ultimate.png","thumbnail_width":487,"thumbnail_height":484,"description":"Many D3D12 developers have become accustomed to managing resource state transitions and read\/write hazards themselves using the ResourceBarrier API. Prior to D3D12, such details were handled internally by the driver.\u00a0 However, D3D12 command lists cannot provide the same deterministic state tracking as D3D10 and D3D11 device contexts.\u00a0 Therefore, state transitions need to be scheduled during [&hellip;]"}