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_NONE 或 D3D12DDI_BARRIER_SYNC_SPLIT搭配使用。 D3D12DDI_BARRIER_ACCESS_NO_ACCESS 無法設定為其他存取位。 D3D12DDI_BARRIER_ACCESS_NO_ACCESS 表示在後續的屏障或下一個 ECL 範圍之前,不會存取資源。 當子資源不需要足夠的時間,讓子資源從任何讀取快取清除子資源時,這個值在別名屏障中很有用。 在ExecuteCommandLists範圍的結尾之前,起始版面配置轉換作為資源的最終動作也很有用。 如果 SyncAfter 為 D3D12DDI_BARRIER_SYNC_NONE,則 AccessAfter 必須 D3D12DDI_BARRIER_ACCESS_NO_ACCESS。 |
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 11 (WDDM 3.0) |
標頭 | d3d12umddi.h |