if_comp - ps

Avviare un se bool - ps...else - ps...endif : blocco ps , con una condizione basata su valori che possono essere calcolati in uno shader. Questa istruzione viene usata per ignorare un blocco di codice, in base a una condizione.

Sintassi

if_comp src0, src1

 

Dove:

  • _comp è un confronto tra i due registri di origine. I possibili valori sono i seguenti:

    Sintassi Confronto
    _Gt Maggiore di
    _Tenente Minore di
    _Ge Maggiore di o uguale a
    _le Minore di o uguale a
    _Eq Uguale a
    _ne Diverso da

     

  • src0 è un registro di origine. Per selezionare un componente, è necessario eseguire la replica swizzle.

  • src1 è un registro di origine. Per selezionare un componente, è necessario eseguire la replica swizzle.

Osservazioni:

Versioni del pixel shader 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
if_comp x x x x

 

Questa istruzione viene usata per ignorare un blocco di codice, in base a una condizione.

if (src0 comparison src1)
   jump to the corresponding else or endif instruction;

Prestare attenzione usando le modalità di confronto uguali e non uguali ai numeri a virgola mobile. Poiché l'arrotondamento si verifica durante i calcoli a virgola mobile, è possibile eseguire il confronto con un valore epsilon (numero diverso da zero) per evitare errori.

Tali restrizioni includono:

Esempio

Questa istruzione fornisce il controllo del flusso dinamico condizionale.

if_lt r3.x, r4.y
// Instructions to run if r3.x < r4.y

else
// Instructions to run otherwise

endif

Istruzioni per pixel shader