Freigeben über


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 BuildRaytracingAccelerationStructure mit derselben Geometrie zu.

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

Siehe auch

ID3D12Device5-