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 提供对子资源布局更改的支持,其中以前的布局不相关或未定义。 这通常用于完整子资源或完整资源清除、放弃和复制命令。 LayoutBefore 和 LayoutAfter 设置为 D3D12_BARRIER_LAYOUT_UNDEFINED 的布局转换表示仅内存访问屏障。 许多读/写作都支持 D3D12_BARRIER_LAYOUT_COMMON。 具体而言,复制命令可以使用 D3D12_BARRIER_LAYOUT_COMMON 或 D3D12_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_RESOURCE 和 D3D12_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 |