Compartir a través de


Método ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*) (d3d12.h)

Obtiene información enriquecida sobre el tamaño y la alineación de la memoria necesaria para una colección de recursos en este adaptador. Vea también ID3D12Device::GetResourceAllocationInfo.

Además de la D3D12_RESOURCE_ALLOCATION_INFO devuelta desde el método , esta versión también devuelve una matriz de estructuras de D3D12_RESOURCE_ALLOCATION_INFO1, que proporcionan detalles adicionales para cada descripción del recurso que se pasa como entrada. Consulte el parámetro pResourceAllocationInfo1.

Sintaxis

D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
  [in]  UINT                            visibleMask,
  [in]  UINT                            numResourceDescs,
  [in]  const D3D12_RESOURCE_DESC       *pResourceDescs,
  [out] D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1
);

Parámetros

[in] visibleMask

Tipo: UINT de

Para la operación de gpu única, establézcalo en cero. Si hay varios nodos de GPU, establezca bits para identificar los nodos (adaptadores físicos del dispositivo). Cada bit de la máscara corresponde a un único nodo. Consulte también sistemas de varios adaptadores.

[in] numResourceDescs

Tipo: UINT de

Número de descriptores de recursos de la matriz de pResourceDescs. Este es también el tamaño (el número de elementos de) pResourceAllocationInfo1.

[in] pResourceDescs

Tipo: const D3D12_RESOURCE_DESC*

Matriz de estructuras de D3D12_RESOURCE_DESC que describen los recursos para obtener información.

[out] pResourceAllocationInfo1

Tipo: D3D12_RESOURCE_ALLOCATION_INFO1*

Matriz de estructuras de D3D12_RESOURCE_ALLOCATION_INFO1, que contiene detalles adicionales para cada descripción del recurso que se pasa como entrada. Esto facilita que la aplicación asigne un montón para varios recursos y sin calcular manualmente los desplazamientos para dónde se debe colocar cada recurso.

Valor devuelto

Tipo: D3D12_RESOURCE_ALLOCATION_INFO

Estructura D3D12_RESOURCE_ALLOCATION_INFO que proporciona información sobre la memoria de vídeo asignada para la matriz de recursos especificada.

Observaciones

Al usar CreatePlacedResource, la aplicación debe usar GetResourceAllocationInfo para comprender las características de tamaño y alineación de los recursos de textura. Los resultados de este método varían en función del adaptador concreto y deben tratarse como únicos para este adaptador y la versión del controlador.

La aplicación no puede usar la salida de GetResourceAllocationInfo para comprender las propiedades mip empaquetadas de texturas. Para comprender las propiedades mip empaquetadas de texturas, la aplicación debe usar GetResourceTiling.

Los tamaños de recursos de textura difieren significativamente de la información devuelta por GetResourceTiling, ya que algunas arquitecturas de adaptador asignan memoria adicional para las texturas para reducir el ancho de banda efectivo durante escenarios comunes de representación. Esto incluye incluso texturas que tienen restricciones en sus diseños de textura o tienen diseños de textura estandarizados. Esa memoria adicional no se puede asignar ni reasignar de forma dispersa mediante una aplicación mediante CreateReservedResource y UpdateTileMappings, por lo que no se notifica mediante GetResourceTiling.

La aplicación puede forgo mediante GetResourceAllocationInfo para los recursos de búfer (D3D12_RESOURCE_DIMENSION_BUFFER). 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 mayor o igual que D3D12_RESOURCE_DESC::Width.

Cuando se pasan varias descripciones de recursos, se usa el algoritmo de C++ para calcular un tamaño de estructura y una alineación. Por ejemplo, una matriz de tres elementos con dos pequeños recursos alineados con 64 KB y un pequeño recurso alineado con 4 MB, informa de tamaños diferentes en función del orden de la matriz. Si el recurso alineado de 4 MB está en el medio, el Tamaño resultante es de 12 MB. De lo contrario, el tamaño de resultante es de 8 MB. La Alineación devuelta siempre sería de 4 MB, ya que es el superconjunto de todas las alineaciones de la matriz de recursos.

Requisitos

Requisito Valor
cliente mínimo admitido Compilación 20348 de Windows 10
servidor mínimo admitido Compilación 20348 de Windows 10
de la plataforma de destino de Windows
encabezado de d3d12.h
biblioteca de d3d12.lib
DLL de d3d12.dll

Consulte también

ID3D12Device4