共用方式為


D3D12DDI_BARRIER_ACCESS列舉 (d3d12umddi.h)

D3D12DDI_BARRIER_ACCESS 值是下列欄位的位 OR,可指定與屏障相關的資源存取。

語法

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

常數

 
D3D12DDI_BARRIER_ACCESS_COMMON
值:0x0
指定 ExecuteCommandLists 範圍中所有資源的預設初始存取權。 支援與目前版面配置和資源屬性相容的任何類型的存取,包括不超過一個寫入存取權。 對於使用 D3D12DDI_BARRIER_LAYOUT_COMMON的緩衝區和紋理,D3D12DDI_BARRIER_ACCESS_COMMON 支援並行讀取和寫入存取。

當做 AccessAfter時,D3D12DDI_BARRIER_ACCESS_COMMON 可用來將資源傳回一般輔助功能。 請注意,如果使用不正確,這可能會強制不必要的快取排清。 可能的話,AccessAfter 應限制為明確的存取位。

避免使用 D3D12DDI_BARRIER_ACCESS_COMMON 做為屏障 AccessBefore 值。 使用明確 AccessBefore 位來處理任何寫入后或寫入後寫入危害。
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
值:0x1
緩衝區資源可存取為目前執行佇列中的頂點緩衝區。
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
值:0x2
緩衝區資源可做為目前執行佇列中的常數緩衝區來存取。
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
值:0x4
緩衝區資源可做為目前執行佇列中的索引緩衝區存取。
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
值:0x8
資源可做為轉譯目標存取。
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
值:0x10
資源可存取為未排序的存取資源。
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
值:0x20
資源可存取為可寫入深度/樣板資源。
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
值:0x40
資源可存取為唯讀深度/樣板資源。
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
值:0x80
資源可做為著色器資源存取。
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
值:0x100
數據流輸出目標可存取緩衝區。
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
值:0x200
緩衝區可存取為間接自變數緩衝區。
D3D12DDI_BARRIER_ACCESS_PREDICATION
值:0x200
緩衝區可做為述詞緩衝區存取。 以 D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT別名。
D3D12DDI_BARRIER_ACCESS_COPY_DEST
值:0x400
資源可做為複製目的地存取。
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
值:0x800
資源可做為複製來源存取。
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
值:0x1000
資源可做為解析目的地存取。
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
值:0x2000
資源可做為解析來源存取。
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
值:0x4000
資源可供讀取作為光線追蹤加速結構來存取。 資源必須使用初始狀態 D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE建立。
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
值:0x8000
資源可存取寫入為光線追蹤加速結構。 資源必須使用初始狀態 D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE建立。
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
值:0x10000
資源可存取為底紋速率來源。
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
值:0x20000
資源可供視訊譯碼佇列中的唯讀存取存取。
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
值:0x40000
可存取影片譯碼佇列中的寫入許可權資源。
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
值:0x80000
在視訊進程佇列中,可存取唯讀存取的資源。
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
值:0x100000
在視訊進程佇列中,可存取寫入存取資源。
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
值:0x200000
資源可在視訊編碼佇列中存取唯讀存取。
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
值:0x400000
資源可存取視訊編碼佇列中的寫入存取權。
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
值:0x80000000
讀取或寫入無法存取資源。 一旦子資源存取轉換為 D3D12DDI_BARRIER_ACCESS_NO_ACCESS之後,必須先由 AccessBefore 設定為 D3D12DDI_BARRIER_ACCESS_NO_ACCESS 的屏障重新啟用,才能在相同的 ExecuteCommandLists 範圍內使用。

D3D12DDI_BARRIER_ACCESS_NO_ACCESS 只能與 D3D12DDI_BARRIER_SYNC_NONED3D12DDI_BARRIER_SYNC_SPLIT搭配使用。

D3D12DDI_BARRIER_ACCESS_NO_ACCESS 無法設定為其他存取位。 D3D12DDI_BARRIER_ACCESS_NO_ACCESS 表示在後續的屏障或下一個 ECL 範圍之前,不會存取資源。

當子資源不需要足夠的時間,讓子資源從任何讀取快取清除子資源時,這個值在別名屏障中很有用。

在ExecuteCommandLists範圍的結尾之前,起始版面配置轉換作為資源的最終動作也很有用。 如果 SyncAfterD3D12DDI_BARRIER_SYNC_NONE,則 AccessAfter 必須 D3D12DDI_BARRIER_ACCESS_NO_ACCESS

要求

要求 價值
最低支援的用戶端 Windows 11 (WDDM 3.0)
標頭 d3d12umddi.h

另請參閱

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088