ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo-Methode (d3d12.h)

Fragen Sie den Treiber nach Ressourcenanforderungen ab, um eine Beschleunigungsstruktur zu erstellen.

Syntax

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

Parameter

[in] pDesc

Beschreibung des Beschleunigungsstrukturbuilds. Diese Struktur wird mit BuildRaytracingAccelerationStructure geteilt. Weitere Informationen finden Sie unter D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS.

Die Implementierung darf alle CPU-Parameter in dieser Struktur und geschachtelten Strukturen betrachten. Es darf keine virtuellen GPU-Adressen untersuchen/dereferenzieren, außer um zu überprüfen, ob ein Zeiger NULL ist oder nicht, z. B. die optionale Transformation in D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC, ohne ihn zu dereferenzieren. Anders ausgedrückt: Die Berechnung des Ressourcenbedarfs für die Beschleunigungsstruktur hängt nicht von den tatsächlichen Geometriedaten (z. B. Vertexpositionen) ab, sondern kann nur von Gesamteigenschaften wie der Anzahl der Dreiecke, der Anzahl der Instanzen usw. abhängen.

[out] pInfo

Das Ergebnis der Abfrage.

Rückgabewert

Keine

Bemerkungen

Die Beschreibung der Eingabebeschleunigungsstruktur entspricht der Beschreibung von BuildRaytracingAccelerationStructure. Das Ergebnis dieser Funktion ermöglicht es der Anwendung, die richtige Menge an Ausgabespeicher und Scratchspeicher für BuildRaytracingAccelerationStructure bei derselben Geometrie bereitzustellen.

Builds können auch mit der gleichen Konfiguration durchgeführt werden, die insgesamt an GetAccelerationStructurePrebuildInfo übergeben wird, mit Ausnahme der gleichen oder kleineren Anzahl für die Anzahl von Geometrien/Instanzen oder die Anzahl der Vertices/Indizes/AABBs in einer bestimmten Geometrie. In diesem Fall sind die Speicheranforderungen, die mit den ursprünglichen Größen gemeldet wurden, die an GetRaytracingAccelerationStructurePrebuildInfo übergeben wurden, gültig– der Build verbraucht möglicherweise weniger Speicherplatz, aber nicht mehr. Dies ist praktisch für App-Szenarien, in denen ein konservativer großer Speicher für Beschleunigungsstrukturen in Ordnung ist.

Diese Methode befindet sich auf der Geräteschnittstelle im Gegensatz zur Befehlsliste unter der Annahme, dass Treiber in der Lage sein müssen, Ressourcenanforderungen für einen Beschleunigungsstrukturbuild zu berechnen, indem sie nur die CPU-sichtbaren Teile des Aufrufs betrachten, ohne dass Zeiger auf den GPU-Speicher mit tatsächlichen Vertexdaten, Indexdaten usw. dereferenziert werden müssen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3d12.lib
DLL D3d12.dll

Weitere Informationen

ID3D12Device5