Temporäres Register (HLSL VS-Referenz)
Ein temporäres Vertex-Shaderregister wird verwendet, um Zwischenergebnisse zu halten.
Ein temporäres Register muss initialisiert werden, bevor es verwendet wird. Jedes temporäre Register verfügt über einmaligen Schreibzugriff und dreifachen Lesezugriff. Dies bedeutet, dass eine einzelne Shaderanweisung so viele wie drei temporäre Register als Eingaben verwenden kann.
Werte in einem temporären Register, die von vorherigen Aufrufen des Vertex-Shaders verbleiben, können nicht verwendet werden.
Ein Register besteht aus Eigenschaften, die bestimmen, wie sich jedes Register verhält.
Eigenschaft | BESCHREIBUNG |
---|---|
Name | r[n]. n ist eine optionale Registernummer. Der Standardwert ist 0 und der Wert, der verwendet wird, wenn kein Wert angegeben wird. |
Anzahl | Maximal 12 Register. |
E/A-Berechtigungen | Lese-/Schreibzugriff. Dieses Register kann von der API oder vom Shader gelesen oder geschrieben werden. |
Lesen von Ports | Die Anzahl der Male, in denen ein Register innerhalb einer einzelnen Anweisung gelesen werden kann, beträgt 3. Ein temporäres Register ist das einzige Register, das in einer einzigen Anweisung mehr als einmal gelesen und geschrieben werden kann. |
Jedes temporäre Register verfügt über einmaligen Schreibzugriff und dreifachen Lesezugriff. Daher kann eine Anweisung so viele wie drei temporäre Register in seinem Satz von Eingabequellenopernden aufweisen.
Es können keine Werte in einem temporären Register verwendet werden, die von vorherigen Aufrufen des Vertex-Shaders verbleiben. Vertex-Shader, die einen Wert aus einem temporären Register vor dem Schreiben lesen, schlägt den Direct3D-API-Aufruf fehl, um den Vertex-Shader zu erstellen.
Beispiel
Nachfolgend sehen Sie ein Beispiel mit einem temporären Register:
def c4, 0,0,0,1
...
// Decompress position
mov r0.x, v0.x
mov r0.y, c4.w // 1
mov r0.z, v0.y
mov r0.w, c4.w // 1
// Compute theta from distance and time
mov r4.xz, r0 // xz
Vertex-Shaderversionen | 1_1 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Temporäres Register | x | x | x | x | x | x |
Zugehörige Themen