Condividi tramite


Metodo ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*) (d3d12.h)

Ottiene informazioni dettagliate sulle dimensioni e sull'allineamento della memoria necessarie per una raccolta di risorse in questo adattatore. Vedere anche ID3D12Device::GetResourceAllocationInfo.

Oltre al D3D12_RESOURCE_ALLOCATION_INFO restituito dal metodo , questa versione restituisce anche una matrice di strutture D3D12_RESOURCE_ALLOCATION_INFO1, che forniscono dettagli aggiuntivi per ogni descrizione della risorsa passata come input. Vedere il parametro pResourceAllocationInfo1.

Sintassi

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

Parametri

[in] visibleMask

Tipo: UINT

Per l'operazione a GPU singola, impostare questo valore su zero. Se sono presenti più nodi GPU, impostare i bit per identificare i nodi (schede fisiche del dispositivo). Ogni bit nella maschera corrisponde a un singolo nodo. Vedere anche sistemi a più schede.

[in] numResourceDescs

Tipo: UINT

Numero di descrittori di risorse nella matrice pResourceDescs. Si tratta anche della dimensione (il numero di elementi in) pResourceAllocationInfo1.

[in] pResourceDescs

Tipo: const D3D12_RESOURCE_DESC*

Matrice di strutture D3D12_RESOURCE_DESC che descrivono le risorse per ottenere informazioni.

[out] pResourceAllocationInfo1

Tipo: D3D12_RESOURCE_ALLOCATION_INFO1*

Matrice di strutture D3D12_RESOURCE_ALLOCATION_INFO1, contenente dettagli aggiuntivi per ogni descrizione della risorsa passata come input. In questo modo è più semplice per l'applicazione allocare un heap per più risorse e senza calcolare manualmente gli offset per la posizione in cui ogni risorsa deve essere inserita.

Valore restituito

Tipo: D3D12_RESOURCE_ALLOCATION_INFO

Struttura D3D12_RESOURCE_ALLOCATION_INFO che fornisce informazioni sulla memoria video allocata per la matrice di risorse specificata.

Osservazioni

Quando si usa CreatePlacedResource, l'applicazione deve usare GetResourceAllocationInfo per comprendere le dimensioni e le caratteristiche di allineamento delle risorse di trama. I risultati di questo metodo variano a seconda dell'adattatore specifico e devono essere considerati univoci per questa scheda e versione del driver.

L'applicazione non può usare l'output di GetResourceAllocationInfo per comprendere le proprietà mip compresse delle trame. Per comprendere le proprietà mip compresse delle trame, l'applicazione deve usare GetResourceTiling.

Le dimensioni delle risorse trama differiscono significativamente dalle informazioni restituite da GetResourceTiling, perché alcune architetture di adattatori allocano memoria aggiuntiva per le trame per ridurre la larghezza di banda effettiva durante gli scenari di rendering comuni. Ciò include anche trame che hanno vincoli per i layout delle trame o hanno layout di trama standardizzati. Tale memoria aggiuntiva non può essere mappata in modo sparse né mappata da un'applicazione usando CreateReservedResource e UpdateTileMappings, quindi non viene segnalata da GetResourceTiling.

L'applicazione può usare GetResourceAllocationInfo per le risorse del buffer (D3D12_RESOURCE_DIMENSION_BUFFER). I buffer hanno le stesse dimensioni per tutte le schede, che è semplicemente il multiplo più piccolo di 64 KB maggiore o uguale a D3D12_RESOURCE_DESC::Width.

Quando vengono passate più descrizioni delle risorse, viene usato l'algoritmo C++ per calcolare le dimensioni e l'allineamento di una struttura. Ad esempio, una matrice a tre elementi con due piccole risorse allineate a 64 KB e una piccola risorsa allineata a 4 MB, segnala dimensioni diverse in base all'ordine della matrice. Se la risorsa allineata a 4 MB si trova al centro, l'dimensioni risultante è 12 MB. In caso contrario, il dimensione risultante è 8 MB. Il Alignment restituito sarebbe sempre 4 MB, perché è il superset di tutti gli allineamenti nella matrice di risorse.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10 Build 20348
server minimo supportato Windows 10 Build 20348
piattaforma di destinazione Finestre
intestazione d3d12.h
libreria d3d12.lib
dll d3d12.dll

Vedere anche

ID3D12Device4