D3D12DDI_BARRIER_LAYOUT列舉 (d3d12umddi.h)

D3D12DDI_BARRIER_LAYOUT值描述 D3D12 子資源針對紋理屏障所使用的可能版面配置。 版面配置僅適用於紋理資源。

Syntax

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED,
  D3D12DDI_BARRIER_LAYOUT_COMMON,
  D3D12DDI_BARRIER_LAYOUT_PRESENT,
  D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
  D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
  D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
  D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

常數

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
提供子資源配置變更的支援,其中先前的配置不相關或未定義。 一般而言,這會用於 full-subresource 或 full-resource Clear、Discard 和 Copy 命令。

配置轉換, 且 LayoutBeforeLayoutAfter 都設定為 D3D12_BARRIER_LAYOUT_UNDEFINED 表示僅限記憶體存取的屏障。 許多讀取/寫入作業都支援 D3D12_BARRIER_LAYOUT_COMMON。 特別是,複製命令可以使用 D3D12_BARRIER_LAYOUT_COMMOND3D12_BARRIER_LAYOUT_COPY寫入紋理。 僅限記憶體存取的屏障可用來排清對紋理的複製寫入,而不需變更紋理配置。
D3D12DDI_BARRIER_LAYOUT_COMMON
這是 D3D12_RESOURCE_STATE_COMMON所使用的配置。 具有此配置的子資源可在任何佇列類型中讀取,而不需要變更版面配置。 它們也可以寫入為任何佇列類型中的複製目的地。

交換鏈結呈現需要後端緩衝區正在使用 D3D12_BARRIER_LAYOUT_COMMON
D3D12DDI_BARRIER_LAYOUT_PRESENT
D3D12_BARRIER_LAYOUT_COMMON的別名。
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
提供任何只讀存取 (的支援,例如:SHADER_RESOURCE、COPY_SOURCE) 。 這個值應該只用於需要多個並行讀取存取權的紋理,因為這可能不是更明確的讀取配置。
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
符合 D3D12_RESOURCE_STATE_RENDER_TARGET所使用的配置。
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
符合 D3D12_RESOURCE_STATE_UNORDERED_ACCESS所使用的配置。
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
符合 D3D12_RESOURCE_STATE_DEPTH_WRITE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
符合 D3D12_RESOURCE_STATE_DEPTH_READ所使用的配置。
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
符合 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCED3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
符合 D3D12_RESOURCE_STATE_COPY_SOURCE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
符合 D3D12_RESOURCE_STATE_COPY_DEST所使用的配置。
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
符合 D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
符合 D3D12DDI_RESOURCE_STATE_RESOLVE_DEST所使用的配置。
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
符合 D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
符合 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
符合 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
符合 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
符合 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
符合 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ所使用的配置。
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
符合 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE所使用的配置。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
僅支援直接佇列上的常見 (障礙) 使用量。 此值比較一般 D3D12DDI_BARRIER_LAYOUT_COMMON更理想。 只能在直接佇列的屏障中使用。

請注意,這無法用於 Present。 D3D12_BARRIER_LAYOUT_COMMON (也稱為 D3D12_BARRIER_LAYOUT_PRESENT) 仍是簡報所需的版面配置。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
D3D12_BARRIER_LAYOUT_GENERIC_READ 相同,但直接佇列特有的優化除外。 只能在直接佇列的屏障中使用。

此外, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ 也支援只讀深度、陰影速率來源,以及解析直接佇列上的來源存取。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS相同, 但直接佇列的特定優化除外。 只能在直接佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
D3D12_BARRIER_LAYOUT_SHADER_RESOURCE相同, 但直接佇列特有的優化除外。 只能在直接佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
D3D12_BARRIER_LAYOUT_COPY_SOURCE 相同,但直接佇列的特定優化除外。 只能在直接佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
D3D12_BARRIER_LAYOUT_COPY_DEST相同, 但直接佇列特有的優化除外。 只能在直接佇列的屏障中使用。 在直接佇列中具有下一個存取權的資源上,可能會對某些版面配置轉換造成昂貴且不必要的解壓縮。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
僅支持計算佇列上的常見 (障礙) 使用量。 可能比較一般 D3D12_BARRIER_LAYOUT_COMMON更理想。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
D3D12_BARRIER_LAYOUT_GENERIC_READ相同, 但計算佇列的特定優化除外。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS相同, 但計算佇列的特定優化除外。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
D3D12_BARRIER_LAYOUT_SHADER_RESOURCE相同, 但計算佇列的特定優化除外。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
D3D12_BARRIER_LAYOUT_COPY_SOURCE相同, 但計算佇列的特定優化除外。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
D3D12_BARRIER_LAYOUT_COPY_DEST相同, 但計算佇列的特定優化除外。 只能在計算佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
僅支持視訊佇列上常見的 (障礙) 使用量。 可能比較一般 D3D12_BARRIER_LAYOUT_COMMON更理想。 只能在視訊佇列的屏障中使用。
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
支持內部轉譯的舊版資源狀態。 沒有增強的屏障 API 會對應至此值。
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
支持內部轉譯的舊版資源狀態。 沒有增強的屏障 API 會對應至此值。
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
支持內部轉譯的舊版資源狀態。 沒有增強的屏障 API 會對應至此值。
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
支持內部轉譯的舊版資源狀態。 沒有增強的屏障 API 會對應至此值。
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
支持內部轉譯的舊版資源狀態。 沒有增強的屏障 API 會對應至此值。

備註

不論存取類型為何,緩衝區資源都只有線性配置。

資源配置必須與執行配置轉換的佇列類型相容。

規格需求

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

另請參閱

D3D12DDI_TEXTURE_BARRIER_0088