Freigeben über


setp_comp – im Vergleich

Legen Sie das Prädikatregister fest.

Syntax

setp_comp dst, src0, src1

 

Hierbei gilt:

  • _comp ist ein Kanalvergleich zwischen den beiden Quellregistern. Folgende Werte sind möglich:

    Syntax Vergleich
    _Gt Größer als
    _Lt Kleiner als
    _Ge Größer als oder gleich
    _Le Kleiner als oder gleich
    _Eq Gleich
    _Ne Ungleich

     

  • dst ist das Prädikatregisterregister , p0.

  • src0 ist ein Quellregister.

  • src1 ist ein Quellregister.

Bemerkungen

Vertex-Shaderversionen 1_1 2_0 2_x 2_sw 3_0 3_sw
setp_comp x x x x

 

Diese Anweisung funktioniert wie folgt:

per channel in destination write mask
{
  dst.channel = src0.channel cmp src1.channel
}

Speichern Sie für jeden Kanal, der gemäß der Zielschreibmaske geschrieben werden kann, das boolesche Ergebnis des Vergleichsvorgangs zwischen den entsprechenden Kanälen von src0 und src1 (nachdem die Quellmodifizierer-Swizzles aufgelöst wurden).

Quellregister ermöglichen die Angabe beliebiger Komponentenschwemme.

Das Zielregister lässt beliebige Schreibmasken zu.

Das dest register muss das Prädikatregister sein.

Anwenden des Prädikatregisters

Nachdem das Prädikatregister mit setp initialisiert wurde, kann es verwendet werden, um eine Anweisung pro Komponente zu steuern. Hier sehen Sie die Syntax:

([!]p0[.swizzle]) instruction dest, srcReg, ...

Hierbei gilt:

  • [!] ist ein optionaler boolescher NOT-Wert
  • p0 ist das Prädikatregister
  • [.swizzle] ist ein optionaler Swizzle, der auf den Inhalt des Prädikatregisters angewendet werden kann, bevor es zum Maskieren der Anweisung verwendet wird. Die verfügbaren Swizzles sind .xyzw (Standardwert, wenn keine angegeben ist) oder beliebige Replikatschwänze: .x/.r, .y/.g, .z/.b oder .a/.w.
  • -Anweisung ist eine beliebige aritmetische Oder Texturanweisung. Dies kann keine statische oder dynamische Ablaufsteuerungsanweisung sein.
  • dest, srcReg, ... sind die Register, die für die Anweisung erforderlich sind

Wenn das Prädikatregister mit (true, true, false, false) Komponentenwerten eingerichtet wurde, kann es auf diese Anweisung angewendet werden:

// given r0 = 0,0,1,1
// given r1 = 1,1,0,0
setp_le p0, r0, r1
(p0) add r2, r3, r4

, um ein Hinzufügen von 2 Komponenten auszuführen.

r2.x = r3.x + r4.x
r2.y = r3.y + r4.y

Die x- und y-Komponenten von r2 werden nicht geschrieben, da das Prädikatregister false in den Komponenten z und w enthielt.

Das Anwenden des Prädikatregisters auf eine Arithmetik- oder Texturanweisung erhöht die Anzahl der Befehlsslots um 1.

Das Prädikatregister kann auch auf Anweisungen angewendet werden , wenn pred - vs, callnz pred - vs und breakp - vs . Diese Ablaufsteuerungsanweisungen haben keine Erhöhung der Anzahl der Befehlsslots bei Verwendung des Prädikatregisters.

Anweisungen zum Vertex-Shader