D3D12_TILED_RESOURCES_TIER enumeration (d3d12.h)
Identifies the tier level at which tiled resources are supported.
Syntax
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
} ;
Constants
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED Value: 0 Indicates that textures cannot be created with the D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE layout. ID3D12Device::CreateReservedResource cannot be used, not even for buffers. |
D3D12_TILED_RESOURCES_TIER_1 Value: 1 Indicates that 2D textures can be created with the D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE layout. Limitations exist for certain resource formats and properties. For more details, see D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE. ID3D12Device::CreateReservedResource can be used. GPU reads or writes to NULL mappings are undefined. Applications are encouraged to workaround this limitation by repeatedly mapping the same page to everywhere a NULL mapping would've been used. When the size of a texture mipmap level is an integer multiple of the standard tile shape for its format, it is guaranteed to be nonpacked. |
D3D12_TILED_RESOURCES_TIER_2 Value: 2 Indicates that a superset of Tier_1 functionality is supported, including this additional support:
Adapters that support feature level 12_0 all support TIER_2 or greater. |
D3D12_TILED_RESOURCES_TIER_3 Value: 3 Indicates that a superset of Tier 2 is supported, with the addition that 3D textures (Volume Tiled Resources) are supported. |
D3D12_TILED_RESOURCES_TIER_4 Value: 4 |
Remarks
This enum is used by the D3D12_FEATURE_DATA_D3D12_OPTIONS structure.
There are three discrete pieces of functionality bundled together for tiled resource functionality:
- A tile-based texture layout option where nearby texel addresses contain nearby data coordinates. A tile of texels contains nearly the same amount of texels in each cardinal dimension of the resource. This layout is represented in D3D12 by D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE.
- Reserve a region of virtual address space for a resource, where each page is initially NULL-mapped. In D3D12, this is operation is encapsulated within ID3D12Device::CreateReservedResource, which only works with textures that have the D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE layout.
- The ability to change page mappings and manipulate texture data on tile granularities. In D3D12, these operations are ID3D12CommandQueue::UpdateTileMappings, ID3D12CommandQueue::CopyTileMappings, and ID3D12GraphicsCommandList::CopyTiles.
- Tile pools are replaced by heaps. Heaps provide a superset of capabilities than D3D11 tile pools do.
- Reserved resources may be mapped to pages from multiple heaps at the same time. The D3D11 restriction that all non-NULL mapped pages must come from the same heap does not exist.
- Applications should be aware of GPU virtual address capabilities, which enable litmus tests for particular usage scenarios. See D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT.
Requirements
Requirement | Value |
---|---|
Header | d3d12.h |