> ## 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 en XBOX): obtiene el tamaño y la alineación de la memoria necesaria para una colección de recursos en este adaptador.

Obtiene el tamaño y la alineación de la memoria necesaria para una colección de recursos en este adaptador.

## Sintaxis

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

### Parámetros

*visibleMask \[in]*\
Tipo: UINT

Para el funcionamiento con una sola GPU, establézcalo en cero. Si hay varios nodos de GPU, establezca los bits para identificar los nodos (los adaptadores físicos del dispositivo). Cada bit de la máscara corresponde a un único nodo. Consulte también [Sistemas de varios 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)**

El número de descriptores de recursos de la matriz *pResourceDescs*.

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

Una matriz de estructuras **D3D12\_RESOURCE\_DESC** que describen los recursos sobre los que se obtendrá información.

### Valor devuelto

Tipo: D3D12\_RESOURCE\_ALLOCATION\_INFO

Una estructura [D3D12\_RESOURCE\_ALLOCATION\_INFO](/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public) que proporciona información sobre la memoria de vídeo asignada para la matriz de recursos especificada.

Si se produce un error, **D3D12\_RESOURCE\_ALLOCATION\_INFO::SizeInBytes** es igual a **UINT64\_MAX**.

## Comentarios

Cuando use [CreatePlacedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public), su aplicación debe usar **GetResourceAllocationInfo** para conocer las características de tamaño y alineación de los recursos de textura. Los resultados de este método varían según el adaptador concreto, y deben tratarse como exclusivos de este adaptador y esta versión del controlador.

Su aplicación no puede usar la salida de **GetResourceAllocationInfo** para conocer las propiedades de los mips empaquetados de las texturas. Para conocer las propiedades de los mips empaquetados de las texturas, su aplicación debe usar [GetResourceTiling](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public).

Los tamaños de los recursos de textura difieren significativamente de la información que devuelve **GetResourceTiling**, porque algunas arquitecturas de adaptador asignan memoria adicional para las texturas con el fin de reducir el ancho de banda efectivo durante los escenarios de representación habituales. Esto incluye incluso las texturas que tienen restricciones en sus diseños de textura o que tienen diseños de textura estandarizados. Esa memoria adicional no puede asignarse de forma dispersa ni reasignarse por una aplicación mediante [CreateReservedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public) y [UpdateTileMappings](/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public), por lo que **GetResourceTiling** no la notifica.

Su aplicación puede prescindir de usar **GetResourceAllocationInfo** para los recursos de búfer ([D3D12\_RESOURCE\_DIMENSION\_BUFFER](/reference/graphics/d3d12_x/enums/d3d12_resource_dimension)). Los búferes tienen el mismo tamaño en todos los adaptadores, que es simplemente el múltiplo más pequeño de 64 KB que sea mayor o igual que [D3D12\_RESOURCE\_DESC::Width](/reference/graphics/d3d12/structs/d3d12_resource_desc_public).

Cuando se pasan varias descripciones de recursos, se usa el algoritmo de C++ para calcular el tamaño y la alineación de una estructura. Por ejemplo, una matriz de tres elementos con dos recursos diminutos alineados a 64 KB y un recurso diminuto alineado a 4 MB notifica tamaños diferentes según el orden de la matriz. Si el recurso alineado a 4 MB está en el medio, el valor **Size** resultante es 12 MB. De lo contrario, el valor **Size** resultante es 8 MB. El valor **Alignment** devuelto siempre sería 4 MB, porque es el superconjunto de todas las alineaciones de la matriz de recursos.

## Requisitos

**Encabezado:** d3d12\_xs.h o d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib o d3d12\_x.lib\
**Plataformas compatibles**: consolas XBOX Series y familia XBOX One

## Consulte también

[ID3D12Device](/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

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