D3D12DDI_TEXTURE_BARRIER_0088结构 (d3d12umddi.h)

D3D12DDI_TEXTURE_BARRIER_0088 结构描述纹理的访问转换。

语法

typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
  D3D12DDI_BARRIER_SYNC                   SyncBefore;
  D3D12DDI_BARRIER_SYNC                   SyncAfter;
  D3D12DDI_BARRIER_ACCESS                 AccessBefore;
  D3D12DDI_BARRIER_ACCESS                 AccessAfter;
  D3D12DDI_BARRIER_LAYOUT                 LayoutBefore;
  D3D12DDI_BARRIER_LAYOUT                 LayoutAfter;
  D3D12DDI_HRESOURCE                      hResource;
  D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
  D3D12DDI_TEXTURE_BARRIER_FLAGS_0088     Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;

成员

SyncBefore

一个 D3D12DDI_BARRIER_SYNC 值,该值指定执行屏障之前必须完成的所有上述 GPU 工作的同步范围。

SyncAfter

一个 D3D12DDI_BARRIER_SYNC 值,该值指定所有后续 GPU 工作的同步范围,这些工作必须等到屏障执行完成。

AccessBefore

一个 D3D12DDI_BARRIER_ACCESS 值,该值指定屏障执行前面的纹理的访问状态。

AccessAfter

一个 D3D12DDI_BARRIER_ACCESS 值,该值指定屏障执行完成后纹理的访问状态。

LayoutBefore

一个 D3D12DDI_BARRIER_LAYOUT 值,该值指定屏障执行前纹理的布局。

LayoutAfter

一个 D3D12DDI_BARRIER_LAYOUT 值,该值指定屏障执行完成后纹理的布局。

hResource

使用屏障的纹理资源的句柄。

Subresources

一个 D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 结构,指定要屏障的纹理子资源的范围。

Flags

指定可选标志的 D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 值。

言论

有关一般信息,请参阅 增强屏障

同步

图形处理器设计为尽可能多地并行执行工作。 在访问依赖数据之前,必须同步依赖于以前的 GPU 工作的任何 GPU 工作。 SyncBeforeSyncAfter 值是用于标识要同步的任何工作的逻辑位字段掩码。

在执行屏障之前,屏障必须等待所有上述命令 SyncBefore 范围才能完成。 同样,屏障必须阻止所有后续 SyncAfter 范围,直到屏障完成。

布局切换

纹理子资源可以对各种访问方法使用不同的布局。 例如,纹理通常在用作呈现目标或深度模具时进行压缩,并且通常为着色器读取或复制命令取消压缩。 纹理屏障使用 LayoutBeforeLayoutAfter 来描述布局切换。

布局转换仅适用于纹理,因此它们仅在此数据结构中表示。

LayoutBeforeLayoutAfter 必须与执行屏障的队列类型兼容。 例如,计算队列无法将子资源转换为或移出 D3D12_BARRIER_LAYOUT_RENDER_TARGET

为了提供定义完善的屏障排序,完成屏障序列后子资源的布局是序列中的最终 LayoutAfter

要求

要求 价值
最低支持的客户端 Windows 11 (WDDM 3.0)
标头 d3d12umddi.h

另请参阅

D3D12DDI_BARRIER_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088