Schreibmaske für Zielregister
Eine Schreibmaske steuert, welche Komponenten eines Zielregisters nach Abschluss einer Anweisung geschrieben werden. Eine Ausgabeschreibmaske ist zulässig, solange sich die Komponenten in der Reihenfolge .rgba oder .xyzw befinden. Das heißt, .rba und .xw sind gültige Masken. Texturregister verfügen über einen Satz von Regeln, und Nichttexturregister verfügen über einen weiteren Satz von Regeln.
Syntax
dst.writemask |
---|
where
- dst ist ein Zielregister.
- writemask ist eine Abfolge von Masken aus einem Satz: (x,y,z,w) oder (rot, grün, blau, alpha).
Bemerkungen
Die folgenden Zielschreibmasken sind verfügbar.
Pixelshaderversionen | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
.xyzw (Standard) | x | x | x | x | x | x | x | x | x |
.Xyz | x | x | x | x | x | x | x | x | x |
.W | x | x | x | x | x | x | x | x | x |
beliebige Maske | x | x | x | x | x | x |
Die beliebige Maske ermöglicht es, eine beliebige Gruppe von Kanälen zu kombinieren, um eine Maske zu erzeugen. Die Kanäle müssen in der Reihenfolge r, g, b, a aufgeführt werden, z. B. register.rba, die die roten, blauen und Alphakanäle des Ziels aktualisiert. Die beliebige Maske ist in Version 1_4 oder höher verfügbar.
Wenn keine Zielschreibmaske angegeben wird, wird für die Zielschreibmaske standardmäßig der rgba-Fall verwendet. Anders ausgedrückt: Alle Kanäle im Zielregister werden aktualisiert.
Für die Versionen 1_0 bis 1_3 kann die arithmetische Anweisung dp3 - ps dp3 nur die Ausgabeschreibmasken .rgb oder .rgba verwenden.
Schreibmasken für Zielregister werden nur für arithmetische Operationen unterstützt. Sie können nicht für Texturadressierungsanweisungen verwendet werden, mit Ausnahme der Anweisungen der Version 1_4, texcrd - ps und texld - ps_2_0 und höher.
Standardmäßig werden alle vier Farbkanäle geschrieben.
// All four color channels can be written by explicitly listing them.
mul r0.rgba, t0, v0
// Or, the default mask can be used to write all four channels.
mul r0, t0, v0
Die Alphaschreibmaske wird auch als Skalarschreibmaske bezeichnet, da sie die Skalarpipeline verwendet.
add r0.a, t1, v1
Diese Anweisung setzt also effektiv die Summe der Alphakomponente von t1 und der Alphakomponente von v1 in r0.a.
Die Farbschreibmaske wird verwendet, um das Schreiben in die Farbkanäle zu steuern.
// The color write mask is also referred to as the vector write mask,
// because it uses the vector pipeline.
mul r0.rgb, t0, v0
Für Version 1_4 können Zielschreibmasken in beliebiger Kombination verwendet werden, solange die Masken r,g,b,a sortiert sind.
// This example updates the red, blue, and alpha channels.
mov r0.rba, r1
Eine gemeinsam ausgestellte Anweisung ermöglicht es, zwei potenziell unterschiedliche Anweisungen gleichzeitig zu erteilen. Dies wird erreicht, indem die Anweisungen in der Alphapipeline und der RGB-Pipeline ausgeführt werden.
mul r0.rgb, t0, v0
+ add r1.a, t1, c1
Der Vorteil der Kopplungsanweisungen auf diese Weise besteht darin, dass verschiedene Vorgänge in der Vektor- und Skalarpipeline parallel ausgeführt werden können.
Diese Vertexshaderausgaberegister sind auf die folgenden Schreibmasken beschränkt:
Registrierungstyp | Erforderliche Schreibmaske |
---|---|
oFog | Für dieses Skalarregister ist keine explizite Schreibmaske zulässig. |
Setzt | Für dieses Skalarregister ist keine explizite Schreibmaske zulässig. |
Opos | .xyzw(Dies ist die Standardeinstellung) |
Ot # | kombinierte Maske: .x | .xy | .xyz | .xyzw (dies ist die Standardeinstellung) |
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für