> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetResourceAllocationInfo

> GetResourceAllocationInfo (Direct3D 12 no XBOX): obtém o tamanho e o alinhamento da memória necessária para uma coleção de recursos neste adaptador.

Obtém o tamanho e o alinhamento da memória necessária para uma coleção de recursos neste adaptador.

## Sintaxe

```cpp theme={null}
D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(
    UINT visibleMask,
    UINT numResourceDescs,
    const D3D12_RESOURCE_DESC* pResourceDescs
)
```

### Parâmetros

*visibleMask \[in]*\
Tipo: UINT

Para operação com uma única GPU, defina como zero. Se houver vários nós de GPU, defina bits para identificar os nós (os adaptadores físicos do dispositivo). Cada bit na máscara corresponde a um único nó. Confira também [Sistemas com vários adaptadores](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

*numResourceDescs \[in]*\
Tipo: **[UINT](https://learn.microsoft.com/en-us/windows/win32/WinProg/windows-data-types)**

O número de descritores de recursos na matriz *pResourceDescs*.

*pResourceDescs \[in]*\
Tipo: **const [D3D12\_RESOURCE\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_resource_desc_public)\***

Uma matriz de estruturas **D3D12\_RESOURCE\_DESC** que descrevem os recursos sobre os quais obter informações.

### Valor retornado

Tipo: D3D12\_RESOURCE\_ALLOCATION\_INFO

Uma estrutura [D3D12\_RESOURCE\_ALLOCATION\_INFO](/pt-BR/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public) que fornece informações sobre a memória de vídeo alocada para a matriz de recursos especificada.

Se ocorrer um erro, **D3D12\_RESOURCE\_ALLOCATION\_INFO::SizeInBytes** será igual a **UINT64\_MAX**.

## Comentários

Ao usar [CreatePlacedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public), seu aplicativo deve usar **GetResourceAllocationInfo** para entender as características de tamanho e alinhamento dos recursos de textura. Os resultados deste método variam de acordo com o adaptador específico e devem ser tratados como exclusivos deste adaptador e desta versão de driver.

Seu aplicativo não pode usar a saída de **GetResourceAllocationInfo** para entender as propriedades de mips empacotados das texturas. Para entender as propriedades de mips empacotados das texturas, seu aplicativo deve usar [GetResourceTiling](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public).

Os tamanhos dos recursos de textura diferem significativamente das informações retornadas por **GetResourceTiling**, porque algumas arquiteturas de adaptador alocam memória extra para texturas a fim de reduzir a largura de banda efetiva durante cenários comuns de renderização. Isso inclui até mesmo texturas que têm restrições em seus layouts de textura ou que têm layouts de textura padronizados. Essa memória extra não pode ser mapeada de forma esparsa nem remapeada por um aplicativo usando [CreateReservedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public) e [UpdateTileMappings](/pt-BR/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public), portanto, ela não é informada por **GetResourceTiling**.

Seu aplicativo pode deixar de usar **GetResourceAllocationInfo** para recursos de buffer ([D3D12\_RESOURCE\_DIMENSION\_BUFFER](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_dimension)). Os buffers têm o mesmo tamanho em todos os adaptadores, que é simplesmente o menor múltiplo de 64 KB maior ou igual a [D3D12\_RESOURCE\_DESC::Width](/pt-BR/reference/graphics/d3d12/structs/d3d12_resource_desc_public).

Quando várias descrições de recursos são passadas, é usado o algoritmo do C++ para calcular o tamanho e o alinhamento de uma estrutura. Por exemplo, uma matriz de três elementos com dois recursos pequenos alinhados a 64 KB e um recurso pequeno alinhado a 4 MB informa tamanhos diferentes com base na ordem da matriz. Se o recurso alinhado a 4 MB estiver no meio, o **Size** resultante será 12 MB. Caso contrário, o **Size** resultante será 8 MB. O **Alignment** retornado será sempre 4 MB, porque é o superconjunto de todos os alinhamentos na matriz de recursos.

## 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

[ID3D12Device](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [GetResourceAllocationInfo1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_getresourceallocationinfo1_public.md)
- [D3D12_RESOURCE_ALLOCATION_INFO](/pt-BR/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public.md)
- [GetResourceTiling](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public.md)
- [CreatePlacedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [CreatePlacedResource2 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
