Pular para o conteúdo principal
Obtém um layout de recurso que pode ser copiado. Ajuda o aplicativo a preencher D3D12_PLACED_SUBRESOURCE_FOOTPRINT e D3D12_SUBRESOURCE_FOOTPRINT ao subalocar espaço em heaps de upload.

Sintaxe

Parâmetros

pResourceDesc [in]
Tipo: const D3D12_RESOURCE_DESC *
Uma descrição do recurso, como um ponteiro para uma estrutura D3D12_RESOURCE_DESC. FirstSubresource [in]
Tipo: UINT
Índice do primeiro sub-recurso no recurso. O intervalo de valores válidos é de 0 a D3D12_REQ_SUBRESOURCES. NumSubresources [in]
Tipo: UINT
O número de sub-recursos no recurso. O intervalo de valores válidos é de 0 a (D3D12_REQ_SUBRESOURCES - FirstSubresource). BaseOffset
Tipo: UINT64
O deslocamento, em bytes, até o recurso. pLayouts [out, optional]
Tipo: D3D12_PLACED_SUBRESOURCE_FOOTPRINT *
Um ponteiro para uma matriz (de comprimento NumSubresources) de estruturas D3D12_PLACED_SUBRESOURCE_FOOTPRINT, a ser preenchida com a descrição e o posicionamento de cada sub-recurso. pNumRows [out, optional]
Tipo: UINT *
Um ponteiro para uma matriz (de comprimento NumSubresources) de variáveis inteiras, a ser preenchida com o número de linhas de cada sub-recurso. pRowSizeInBytes [out, optional]
Tipo: UINT64 *
Um ponteiro para uma matriz (de comprimento NumSubresources) de variáveis inteiras, em que cada entrada será preenchida com o tamanho sem preenchimento, em bytes, de uma linha de cada sub-recurso. Por exemplo, se um recurso Texture2D tiver largura de 32 e 4 bytes por pixel, então pRowSizeInBytes retornará 128. pRowSizeInBytes não deve ser confundido com row pitch (passo da linha), pois examinar pLayouts e obter o passo da linha a partir dele fornecerá 256, já que ele é alinhado a D3D12_TEXTURE_DATA_PITCH_ALIGNMENT. pTotalBytes [out, optional]
Tipo: UINT64 *
Um ponteiro para uma variável inteira, a ser preenchida com o tamanho total, em bytes.

Valor retornado

Tipo: void Nenhum.

Comentários

Esta rotina ajuda o aplicativo a preencher as estruturas D3D12_PLACED_SUBRESOURCE_FOOTPRINT e D3D12_SUBRESOURCE_FOOTPRINT ao subalocar espaço em heaps de upload. As estruturas resultantes são independentes do adaptador de GPU, o que significa que os valores não variam de um adaptador de GPU para outro. GetCopyableFootprints usa detalhes especificados sobre formatos de recursos, layouts de textura e requisitos de alinhamento (da estrutura D3D12_RESOURCE_DESC) para preencher as estruturas de sub-recursos. Os aplicativos têm acesso a todos esses detalhes, portanto, este método, ou uma variação dele, poderia ser escrito como parte do aplicativo.

Exemplos

O exemplo D3D12Multithreading usa ID3D12Device::GetCopyableFootprints da seguinte maneira:
Consulte o Código de exemplo na referência do D3D12.

Requisitos

Cabeçalho: d3d12_xs.h ou d3d12_x.h
Biblioteca: d3d12_xs.lib ou d3d12_x.lib
Plataformas com suporte: consoles XBOX Series e família XBOX One

Confira também

CD3DX12_RESOURCE_DESC CD3DX12_SUBRESOURCE_FOOTPRINT ID3D12Device
Última modificação em 6 de outubro de 2026