Freigeben über


Stammsignaturen

Die Stammsignatur definiert, welche Ressourcentypen an die Grafikpipeline gebunden sind.

In diesem Abschnitt

Thema BESCHREIBUNG
Übersicht über Stammsignaturen
Eine Stammsignatur wird von der App konfiguriert und verknüpft Befehlslisten mit den Ressourcen, die die Shader benötigen. Die Grafikbefehlsliste enthält sowohl eine Grafik- als auch eine Computestammsignatur. Eine Computebefehlsliste verfügt einfach über eine Computestammsignatur. Diese Stammsignaturen sind unabhängig voneinander.
Verwenden einer Stammsignatur
Die Stammsignatur ist die Definition einer willkürlich angeordneten Auflistung von Deskriptortabellen (einschließlich ihres Layouts), Stammkonstanten und Stammdeskriptoren. Jeder Eintrag hat Kosten in Richtung eines Höchstlimits, sodass die Anwendung den Ausgleich zwischen der Anzahl der einzelnen Arten von Einträgen in der Stammsignatur ausgleichen kann.
Erstellen einer Stammsignatur
Stammsignaturen sind eine komplexe Datenstruktur, die geschachtelte Strukturen enthält. Diese können programmgesteuert mithilfe der folgenden Datenstrukturdefinition definiert werden (einschließlich Methoden zur Initialisierung von Membern). Alternativ können sie in High Level Shading Language (HLSL) erstellt werden, was den Vorteil hat, dass der Compiler frühzeitig überprüft, ob das Layout mit dem Shader kompatibel ist.
Grenzwerte für Stammsignaturen
Die Stammsignatur ist erstklassige Immobilien, und es gibt strenge Grenzwerte und Kosten zu berücksichtigen.
Verwenden von Konstanten direkt in der Stammsignatur
Anwendungen können Stammkonstanten in der Stammsignatur definieren, jeweils als Satz von 32-Bit-Werten. Sie werden in High Level Shading Language (HLSL) als Konstantenpuffer angezeigt. Beachten Sie, dass Konstantenpuffer aus historischen Gründen als Sätze von 4x32-Bit-Werten betrachtet werden.
Verwenden von Deskriptoren direkt in der Stammsignatur
Anwendungen können Deskriptoren direkt in die Stammsignatur einfügen, um einen Deskriptorheap zu vermeiden. Diese Deskriptoren nehmen viel Platz in der Stammsignatur ein (siehe Abschnitt Stammsignaturgrenzwerte), sodass Anwendungen sie sparsam verwenden müssen.
Beispiele für Stammsignaturen
Der folgende Abschnitt zeigt Stammsignaturen, die in der Komplexität von leer bis vollständig vollständig variieren.
Festlegen von Stammsignaturen in HLSL
Das Angeben von Stammsignaturen im HLSL-Shadermodell 5.1 ist eine Alternative zur Angabe in C++-Code.
Stammsignatur, Version 1.1
Der Zweck der Stammsignaturversion 1.1 besteht darin, Anwendungen zu ermöglichen, treibern anzugeben, wann sich Deskriptoren in einem Deskriptorheap nicht ändern oder die Datendeskriptoren nicht geändert werden. Dadurch können Treiber Optimierungen vornehmen, die möglicherweise mit dem Wissen möglich sind, dass ein Deskriptor oder der Speicher, auf den er verweist, für einen bestimmten Zeitraum statisch ist.

ID3D12RootSignature

ID3D12RootSignatureDeserializer

Ressourcenbindung