Metodo ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo (d3d12.h)

Eseguire una query sul driver per i requisiti delle risorse per creare una struttura di accelerazione.

Sintassi

void GetRaytracingAccelerationStructurePrebuildInfo(
  [in]  const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  [out] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO      *pInfo
);

Parametri

[in] pDesc

Descrizione della compilazione della struttura di accelerazione. Questa struttura è condivisa con BuildRaytracingAccelerationStructure. Per altre informazioni, vedere D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS.

L'implementazione può esaminare tutti i parametri della CPU in questo struct e struct annidati. Potrebbe non controllare o dereferenziare gli indirizzi virtuali della GPU, diverso da verificare se un puntatore è NULL o meno, ad esempio la trasformazione facoltativa in D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC, senza rinviarla. In altre parole, il calcolo dei requisiti di risorsa per la struttura di accelerazione non dipende dai dati geometry effettivi (ad esempio posizioni del vertice), invece può dipendere solo dalle proprietà complessive, ad esempio il numero di triangoli, il numero di istanze e così via.

[out] pInfo

Risultato della query.

Valore restituito

nessuno

Osservazioni

La descrizione della struttura dell'accelerazione di input è uguale a quella riportata in BuildRaytracingAccelerationStructure. Il risultato di questa funzione consente all'applicazione di fornire la quantità corretta di archiviazione di output e archiviazione zero a BuildRaytracingAccelerationStructure in base alla stessa geometria.

Le compilazioni possono essere eseguite anche con la stessa configurazione passata a GetAccelerationStructurePrebuildInfo in generale, ad eccezione di conteggi uguali o minori per il numero di geometrie/istanze o il numero di vertici/indici/AABB in qualsiasi geometria specificata. In questo caso, i requisiti di archiviazione segnalati con le dimensioni originali passate a GetRaytracingAccelerationStructurePrebuildInfo saranno validi. La compilazione può effettivamente utilizzare meno spazio ma non più. Questo è utile per gli scenari dell'app in cui la risorsa di archiviazione di grandi dimensioni allocata per le strutture di accelerazione è utile.

Questo metodo si trova nell'interfaccia del dispositivo anziché nell'elenco di comandi sul presupposto che i driver devono essere in grado di calcolare i requisiti di risorsa per una struttura di accelerazione solo esaminando le parti visibili della CPU della chiamata, senza dover dereferenziare qualsiasi puntatore alla memoria GPU contenente dati di vertice effettivi, dati di indice e così via.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1809 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione d3d12.h
Libreria D3d12.lib
DLL D3d12.dll

Vedi anche

ID3D12Device5