共用方式為


D3D12DDI_BARRIER_LAYOUT列舉 (d3d12umddi.h)

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

語法

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
提供子資源版面配置變更的支援,其中上一個版面配置無關或未定義。 這通常用於完整子資源或完整資源 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