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
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
Numero di descrittori di risorse nella matrice
[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 |