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