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 BuildRaytracingAccelerationStructuregeteilt. 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 kann keine virtuellen GPU-Adressen prüfen/ableiten, außer zu überprüfen, ob ein Zeiger NULL ist oder nicht, z. B. die optionale Transformation in D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC, ohne ihn abzuleiten. Anders ausgedrückt: Die Berechnung der Ressourcenanforderungen für die Beschleunigungsstruktur hängt nicht von den tatsächlichen Geometriedaten (z. B. Vertexpositionen) ab, sondern kann nur von gesamten Eigenschaften wie der Anzahl der Dreiecke, der Anzahl der Instanzen usw. abhängen.
[out] pInfo
Das Ergebnis der Abfrage (in einer D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO Struktur).
Rückgabewert
Nichts
Bemerkungen
Die Beschreibung der Eingabebeschleunigungsstruktur entspricht der Beschreibung BuildRaytracingAccelerationStructure. Mit dem Ergebnis dieser Funktion kann die Anwendung die richtige Menge an Ausgabespeicher und Kratzspeicher bereitstellen, um
Builds können auch mit der gleichen Konfiguration erfolgen, die an GetAccelerationStructurePrebuildInfo insgesamt übergeben wird, mit Ausnahme von gleichen oder kleineren Zählungen für die Anzahl der Geometrien/Instanzen oder die Anzahl der Scheitelpunkte/Indizes/AABBs in einer bestimmten Geometrie. In diesem Fall sind die speicheranforderungen, die mit den ursprünglichen Größen angegeben wurden, die an GetRaytracingAccelerationStructurePrebuildInfo übergeben werden, gültig – der Build verbraucht möglicherweise weniger Speicherplatz, aber nicht mehr. Dies ist praktisch für App-Szenarien, in denen konservativer großer Speicher für Beschleunigungsstrukturen in Ordnung ist.
Diese Methode befindet sich auf der Geräteschnittstelle im Gegensatz zur Befehlsliste in der Annahme, dass Treiber ressourcenanforderungen für einen Beschleunigungsstrukturbuild nur dann berechnen können müssen, wenn sie nur die CPU-sichtbaren Teile des Aufrufs betrachten, ohne Zeiger auf GPU-Speicher mit tatsächlichen Vertexdaten, Indexdaten usw. ableiten zu müssen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1809 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2016 [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | d3d12.h |
Library | D3d12.lib |
DLL- | D3d12.dll |