D3D12_TILED_RESOURCES_TIER enumeration (d3d12.h)

Identifies the tier level at which tiled resources are supported.


typedef enum D3D12_TILED_RESOURCES_TIER {
} ;


Name Description
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED 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 Indicates that 2D textures can be created with the D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE layout.
Limitations exist for certain resource formats and properties.

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 Indicates that a superset of Tier_1 functionality is supported, including this additional support:

  • When the size of a texture mipmap level is at least one standard tile shape for its format, the mipmap level is guaranteed to be nonpacked.
    For more info, see D3D12_PACKED_MIP_INFO.

  • Shader instructions are available for clamping level-of-detail (LOD) and for obtaining status about the shader operation.
    For info about one of these shader instructions, see Sample(S,float,int,float,uint).

  • Reading from NULL-mapped tiles treat that sampled value as zero.
    Writes to NULL-mapped tiles are discarded.

Adapters that support feature level 12_0 all support TIER_2 or greater.
D3D12_TILED_RESOURCES_TIER_3 Indicates that a superset of Tier 2 is supported, with the addition that 3D textures (Volume Tiled Resources) are supported.


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:

Three significant changes over D3D11 are:
  • 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.


Header d3d12.h

See also

Core Enumerations