ps _ 3 _ 0-Anweisungen
Dieser Abschnitt enthält Referenzinformationen für die Anweisungen in Version 3 0 des _ Pixelshader.
Es gibt mehrere Arten von Pixelshaderanweisungen, wie in der Tabelle gezeigt. Spalten auf der rechten Seite bedeuten Folgendes:
- Anweisungsslots: Anzahl von Anweisungsslots, die von jeder Anweisung verwendet werden.
- Setup: Ein Pixelshader muss über eine Versionsanweisung verfügen und muss die erste Anweisung sein.
- Arithmetisch: Diese Anweisungen stellen die mathematischen Operationen in einem Shader bereit.
- Textur: Diese Anweisungen werden verwendet, um Texturdaten zu laden und zu probieren sowie Texturkoordinaten zu ändern.
- Flow-Steuerelement: Diese Anweisungen stellen eine statische und dynamische Ablaufsteuerung für die Ausführung von Anweisungen bereit.
- Neu: Diese Anweisungen sind für diese Version neu.
Instruktionssatz
| Name | BESCHREIBUNG | Anweisungsslots | Setup | Arithmetik | Struktur | Flusssteuerung | Neu |
|---|---|---|---|---|---|---|---|
| abs – ps | Absoluter Wert | 1 | x | ||||
| add – ps | Hinzufügen von zwei Vektoren | 1 | x | ||||
| break – ps | Break out of a loop... endloop oder rep... endrep-Block | 1 | x | ||||
| break _ comp - ps | Bedingtes Unterbrechen einer Schleife... endloop oder rep... endrep-Block mit einem Vergleich | 3 | x | ||||
| breakp – ps | break out of a loop... endloop oder rep... endrep-Block basierend auf einem Prädikat | 3 | x | ||||
| call - ps | Aufrufen einer Unterroutine | 2 | x | ||||
| callnz bool – ps | Aufrufen einer Unterroutine, wenn ein boolescher Register nicht 0 (null) ist | 3 | x | ||||
| callnz pred – ps | Aufrufen einer Unterroutine, wenn ein Prädikatregister nicht 0 (null) ist | 3 | x | ||||
| cmp – ps | Vergleichen der Quelle mit 0 | 1 | x | ||||
| crs - ps | Produktübergreifend | 2 | x | ||||
| dcl _ samplerType (sm2, sm3 – ps asm) | Deklarieren der Texturdimension für einen Sampler | 0 | x | ||||
| _dcl-Semantik (sm3 – ps asm) | Deklarieren von Eingabe- und Ausgaberegistern | 0 | x | x | |||
| def - ps | Definieren von Konstanten | 0 | x | ||||
| defb – ps | Definieren einer booleschen Konstante | 0 | x | ||||
| defi – ps | Definieren einer ganzzahligen Konstante | 0 | x | ||||
| dp2add – ps | 2D-Punktprodukt und Hinzufügen | 2 | x | ||||
| dp3 – ps | 3D-Punktprodukt | 1 | x | ||||
| dp4 – ps | 4D-Punktprodukt | 1 | x | ||||
| dsx – ps | Änderungsrate in x-Richtung | 2 | x | ||||
| dsy – ps | Änderungsrate in y-Richtung | 2 | x | ||||
| else - ps | Starten eines else-Blocks | 1 | x | ||||
| endif – ps | Beenden Sie eine if... else-Block | 1 | x | ||||
| endloop – ps | Beenden einer Schleife | 2 | x | x | |||
| endrep – ps | Ende eines Wiederholungsblocks | 2 | x | ||||
| exp – ps | Vollständige Genauigkeit 2x | 1 | x | ||||
| frc – ps | Fractional-Komponente | 1 | x | ||||
| if bool - ps | Starten eines if-Blocks | 3 | x | ||||
| if _ comp - ps | Starten eines if-Blocks mit einem Vergleich | 3 | x | ||||
| if pred - ps | Starten eines if-Blocks mit Prädikation | 3 | x | ||||
| label – ps | Bezeichnung | 0 | x | ||||
| log – ps | Protokoll mit vollständiger Genauigkeit₂(x) | 1 | x | ||||
| loop – ps | Loop | 3 | x | x | |||
| lrp – ps | Lineare Interpolation | 2 | x | ||||
| m3x2 – ps | 3x2 Multiplikation | 2 | x | ||||
| m3x3 – ps | 3x3 multiplizieren | 3 | x | ||||
| m3x4 – ps | Multiplizieren von 3 x 4 | 4 | x | ||||
| m4x3 – ps | Multiplizieren von 4 x 3 | 3 | x | ||||
| m4x4 – ps | 4x4 multiplizieren | 4 | x | ||||
| mad - ps | Multiplizieren und Hinzufügen | 1 | x | ||||
| max – ps | Maximum | 1 | x | ||||
| min – ps | Minimum | 1 | x | ||||
| mov – ps | Move | 1 | x | ||||
| mul - ps | Multiplizieren | 1 | x | ||||
| nop – ps | Keine Operation | 1 | x | ||||
| nrm - ps | Normalize | 3 | x | ||||
| pow – ps | xy | 3 | x | ||||
| ps | Version | 0 | x | ||||
| rcp – ps | Gegenseitige | 1 | x | ||||
| rep – ps | Repeat | 3 | x | ||||
| ret - ps | Ende einer Unterroutine | 1 | x | ||||
| rsq - ps | Reziproke Quadratwurzel | 1 | x | ||||
| setp _ comp | Festlegen des Prädikatregisters | 1 | x | ||||
| sincos – ps | Sinus und Kosinus | 8 | x | ||||
| sub – ps | Subtrahieren | 1 | x | ||||
| texkill - ps | Rendern von Pixeln zum Kill | 2 | x | ||||
| texld – ps _ 2 _ 0 und mehr | Beispiel für eine Textur | Siehe Hinweis 1. | x | ||||
| texldb – ps | Textursampling mit Detailgenauigkeitsvoreingenommenheit von w-component | 6 | x | ||||
| texldl - ps | Textursampling mit Detailebene aus w-component | Siehe Hinweis 2 | x | x | |||
| texldd – ps | Textursampling mit vom Benutzer bereitgestellten Farbverläufen | 3 | x | ||||
| texldp – ps | Textursampling mit projektiver Division durch w-Komponente | Siehe Hinweis 3 | x |
Hinweise:
- Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 4; andernfalls Slots = 1.
- Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 5; andernfalls slots = 2.
- Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 4; andernfalls slots = 3.