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 工作。 SyncBefore 和 SyncAfter 值是逻辑位字段掩码,用于标识要同步的任何工作。
在执行屏障之前,屏障必须等待前面的所有命令 SyncBefore 范围完成。 同样,屏障必须阻止所有后续 的 SyncAfter 范围,直到屏障完成。
布局过渡
纹理子资源可以对各种访问方法使用不同的布局。 例如,纹理在用作呈现目标或深度模具时通常会压缩,并且通常未压缩着色器读取或复制命令。 纹理屏障使用 LayoutBefore 和 LayoutAfter 来描述布局切换。
布局转换仅适用于纹理,因此它们仅在此数据结构中表示。
LayoutBefore 和 LayoutAfter 都必须与执行屏障的队列类型兼容。 例如,计算队列无法将子资源转换为或转换出 D3D12_BARRIER_LAYOUT_RENDER_TARGET。
为了提供明确定义的屏障排序,在完成一系列屏障后,子资源的布局是序列中最后的 LayoutAfter 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 11 (WDDM 3.0) |
标头 | d3d12umddi.h |
另请参阅
D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088