> ## 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 sur XBOX) : obtient la taille et l'alignement de la mémoire requise pour un ensemble de ressources sur cette carte.

Obtient la taille et l'alignement de la mémoire requise pour un ensemble de ressources sur cette carte.

## Syntaxe

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

### Paramètres

*visibleMask \[in]*\
Type : UINT

Pour une opération à un seul GPU, définissez cette valeur à zéro. S'il y a plusieurs nœuds GPU, définissez des bits pour identifier les nœuds (les cartes physiques de l'appareil). Chaque bit du masque correspond à un seul nœud. Consultez également [Systèmes à plusieurs cartes](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

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

Nombre de descripteurs de ressources dans le tableau *pResourceDescs*.

*pResourceDescs \[in]*\
Type : **const [D3D12\_RESOURCE\_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_resource_desc_public)\***

Tableau de structures **D3D12\_RESOURCE\_DESC** qui décrivent les ressources pour lesquelles obtenir des informations.

### Valeur de retour

Type : D3D12\_RESOURCE\_ALLOCATION\_INFO

Structure [D3D12\_RESOURCE\_ALLOCATION\_INFO](/fr-CA/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public) qui fournit des informations sur la mémoire vidéo allouée pour le tableau de ressources spécifié.

Si une erreur se produit, **D3D12\_RESOURCE\_ALLOCATION\_INFO::SizeInBytes** est égal à **UINT64\_MAX**.

## Remarques

Lorsque vous utilisez [CreatePlacedResource](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public), votre application doit utiliser **GetResourceAllocationInfo** afin de connaître les caractéristiques de taille et d'alignement des ressources de texture. Les résultats de cette méthode varient selon la carte utilisée et doivent être considérés comme propres à cette carte et à cette version du pilote.

Votre application ne peut pas utiliser la sortie de **GetResourceAllocationInfo** pour connaître les propriétés des mips compactés des textures. Pour connaître les propriétés des mips compactés des textures, votre application doit utiliser [GetResourceTiling](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public).

La taille des ressources de texture diffère considérablement des informations retournées par **GetResourceTiling**, car certaines architectures de carte allouent de la mémoire supplémentaire aux textures afin de réduire la bande passante effective dans les scénarios de rendu courants. Cela inclut même les textures dont les dispositions de texture sont soumises à des contraintes ou sont normalisées. Cette mémoire supplémentaire ne peut pas être mappée de façon éparse ni remappée par une application à l'aide de [CreateReservedResource](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public) et de [UpdateTileMappings](/fr-CA/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public); elle n'est donc pas signalée par **GetResourceTiling**.

Votre application peut se passer de **GetResourceAllocationInfo** pour les ressources de tampon ([D3D12\_RESOURCE\_DIMENSION\_BUFFER](/fr-CA/reference/graphics/d3d12_x/enums/d3d12_resource_dimension)). Les tampons ont la même taille sur toutes les cartes, soit simplement le plus petit multiple de 64 Ko supérieur ou égal à [D3D12\_RESOURCE\_DESC::Width](/fr-CA/reference/graphics/d3d12/structs/d3d12_resource_desc_public).

Lorsque plusieurs descriptions de ressources sont passées, l'algorithme C++ de calcul de la taille et de l'alignement d'une structure est utilisé. Par exemple, un tableau de trois éléments comprenant deux petites ressources alignées sur 64 Ko et une petite ressource alignée sur 4 Mo signale des tailles différentes selon l'ordre du tableau. Si la ressource alignée sur 4 Mo se trouve au milieu, la valeur **Size** obtenue est de 12 Mo. Sinon, la valeur **Size** obtenue est de 8 Mo. La valeur **Alignment** retournée serait toujours de 4 Mo, car il s'agit du sur-ensemble de tous les alignements du tableau de ressources.

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge :** consoles XBOX Series et famille XBOX One

## Voir aussi

[ID3D12Device](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

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