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