ID3D12Device::GetResourceTiling method (d3d12.h)

Gets info about how a tiled resource is broken into tiles.

Syntax

void GetResourceTiling(
  [in]                ID3D12Resource           *pTiledResource,
  [out, optional]     UINT                     *pNumTilesForEntireResource,
  [out, optional]     D3D12_PACKED_MIP_INFO    *pPackedMipDesc,
  [out, optional]     D3D12_TILE_SHAPE         *pStandardTileShapeForNonPackedMips,
  [in, out, optional] UINT                     *pNumSubresourceTilings,
  [in]                UINT                     FirstSubresourceTilingToGet,
  [out]               D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips
);

Parameters

[in] pTiledResource

Type: ID3D12Resource*

Specifies a tiled ID3D12Resource to get info about.

[out, optional] pNumTilesForEntireResource

Type: UINT*

A pointer to a variable that receives the number of tiles needed to store the entire tiled resource.

[out, optional] pPackedMipDesc

Type: D3D12_PACKED_MIP_INFO*

A pointer to a D3D12_PACKED_MIP_INFO structure that GetResourceTiling fills with info about how the tiled resource's mipmaps are packed.

[out, optional] pStandardTileShapeForNonPackedMips

Type: D3D12_TILE_SHAPE*

Specifies a D3D12_TILE_SHAPE structure that GetResourceTiling fills with info about the tile shape. This is info about how pixels fit in the tiles, independent of tiled resource's dimensions, not including packed mipmaps. If the entire tiled resource is packed, this parameter is meaningless because the tiled resource has no defined layout for packed mipmaps. In this situation, GetResourceTiling sets the members of D3D12_TILE_SHAPE to zeros.

[in, out, optional] pNumSubresourceTilings

Type: UINT*

A pointer to a variable that contains the number of tiles in the subresource. On input, this is the number of subresources to query tilings for; on output, this is the number that was actually retrieved at pSubresourceTilingsForNonPackedMips (clamped to what's available).

[in] FirstSubresourceTilingToGet

Type: UINT

The number of the first subresource tile to get. GetResourceTiling ignores this parameter if the number that pNumSubresourceTilings points to is 0.

[out] pSubresourceTilingsForNonPackedMips

Type: D3D12_SUBRESOURCE_TILING*

Specifies a D3D12_SUBRESOURCE_TILING structure that GetResourceTiling fills with info about subresource tiles. If subresource tiles are part of packed mipmaps, GetResourceTiling sets the members of D3D12_SUBRESOURCE_TILING to zeros, except the StartTileIndexInOverallResource member, which GetResourceTiling sets to D3D12_PACKED_TILE (0xffffffff). The D3D12_PACKED_TILE constant indicates that the whole D3D12_SUBRESOURCE_TILING structure is meaningless for this situation, and the info that the pPackedMipDesc parameter points to applies.

Return value

None

Remarks

To estimate the total resource size of textures needed when calculating heap sizes and calling CreatePlacedResource, use GetResourceAllocationInfo instead of GetResourceTiling. GetResourceTiling cannot be used for this.

For more information on tiled resources, refer to Volume Tiled Resources.

Requirements

Requirement Value
Target Platform Windows
Header d3d12.h
Library D3d12.lib
DLL D3d12.dll

See also

ID3D12Device

Subresources