D3D12_TILED_RESOURCES_TIER 枚举 (d3d12.h)
标识支持平铺资源的层级别。
语法
typedef enum D3D12_TILED_RESOURCES_TIER {
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
D3D12_TILED_RESOURCES_TIER_1 = 1,
D3D12_TILED_RESOURCES_TIER_2 = 2,
D3D12_TILED_RESOURCES_TIER_3 = 3,
D3D12_TILED_RESOURCES_TIER_4 = 4
} ;
常量
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED 值: 0 指示无法使用 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE 布局创建纹理。 ID3D12Device::CreateReservedResource 不能使用,甚至不能用于缓冲区。 |
D3D12_TILED_RESOURCES_TIER_1 值:1 指示可以使用D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE布局创建 2D 纹理。 某些资源格式和属性存在限制。 有关详细信息,请参阅 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE。 可以使用 ID3D12Device::CreateReservedResource。 未定义 GPU 读取或写入 NULL 映射。 建议应用程序通过重复将同一页映射到将使用 NULL 映射的任意位置来解决此限制。 如果纹理 mipmap 级别的大小是其格式的标准磁贴形状的整数倍,则保证为非打包。 |
D3D12_TILED_RESOURCES_TIER_2 值: 2 指示支持Tier_1功能的超集,包括以下附加支持:
支持功能级别 12_0 的适配器都支持TIER_2或更高版本。 |
D3D12_TILED_RESOURCES_TIER_3 值: 3 指示支持第 2 层的超集,此外还支持 3D 纹理 (卷平铺资源) 。 |
D3D12_TILED_RESOURCES_TIER_4 值: 4 |
备注
此枚举由 D3D12_FEATURE_DATA_D3D12_OPTIONS 结构使用。
有三个离散功能组合在一起,用于平铺资源功能:
- 基于磁贴的纹理布局选项,其中附近的纹素地址包含附近的数据坐标。 纹素磁贴在资源的每个基数维度中包含几乎相同的纹素量。 此布局在 D3D12 中由 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE 表示。
- 为资源保留虚拟地址空间区域,其中每个页面最初都是 NULL 映射的。 在 D3D12 中,此操作封装在 ID3D12Device::CreateReservedResource 中,它仅适用于具有D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE布局的纹理。
- 更改页面映射和操作磁贴粒度上的纹理数据的功能。 在 D3D12 中,这些操作包括 ID3D12CommandQueue::UpdateTileMappings、 ID3D12CommandQueue::CopyTileMappings 和 ID3D12GraphicsCommandList::CopyTiles。
- 磁贴池由堆替换。 堆提供的功能比 D3D11 磁贴池更集。
- 保留的资源可以同时映射到多个堆中的页面。 不存在所有非 NULL 映射页必须来自同一堆的 D3D11 限制。
- 应用程序应了解 GPU 虚拟地址功能,这些功能可针对特定使用方案启用 litmus 测试。 请参阅 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT。
要求
标头 | d3d12.h |