Maschera del registro di destinazione

La maschera specifica quali componenti del registro di destinazione verranno aggiornati con il risultato di un'istruzione. I registri delle trame hanno un set di regole e registri non ditexture hanno un altro set di regole.

  • dx9_graphics_reference_asm_vs_registers_modifiers_masking: questa sezione contiene regole per l'applicazione di maschere ai registri di destinazione.
  • Texture_Register_Masks: i registri delle trame hanno alcune regole univoche.

Maschera del registro di destinazione

Come illustrato nella tabella seguente, è possibile applicare la maschera (dove è uno dei registri del vertex shader vertex shader validi) ai singoli componenti dei dati vettoriali.

Modificatore del componente Descrizione
r.{x}{y}{z}{w} Maschera di destinazione

 

  • In generale, la specifica delle maschere di scrittura del registro di destinazione è uno stile di codifica ottimale. Semplifica la lettura e la gestione del codice.
  • Qualsiasi combinazione di componenti può essere specificata (inclusa nessuna) purché x precede y, y precede z e z precede w.
  • I registri di output oPts e oFog devono usare una sola maschera.
  • Alcune istruzioni richiedono che il registro di destinazione usi una sola maschera di scrittura: exp, expp, log, logp, pow, rcp e rsq.
  • Nella versione 1.0, l'istruzione frc richiede una delle combinazioni di maschera seguenti: .x o .y o xy. La versione 2.0 non prevede alcuna restrizione per la maschera.
  • sincos richiede una delle combinazioni di maschera seguenti: .x o .y o .xyz.
  • m3x2 richiede la maschera di scrittura xy.
  • m3x3 e m4x3 richiedono la maschera di scrittura xyz.
  • m3x4 e m4x4 richiedono la maschera di scrittura xyz o la maschera di scrittura predefinita (xyzw).

Maschere di registro delle trame

Le regole di convalida per l'uso di modificatori nei registri delle coordinate della trama sono più rigide rispetto alle regole di convalida per altri registri.

  • Se oTn è scritto, devono essere scritti anche tutti i registri precedenti (oTn-1 ~ oT0).
  • La maschera di scrittura "combinata" per qualsiasi registro oT# deve essere esattamente una delle seguenti:
    • .x
    • .Xy
    • .Xyz
    • .xyzw (equivalente a non usare modificatori di componenti)

Ad esempio, un vertex shader può restituire registri delle trame in istruzioni separate.

    oT1.y  
    oT0.y  
    oT2  
    oT0.xz  
    oT1.x

In alternativa, le istruzioni possono essere combinate.

    oT0.xyz  
    oT1.xy  
    oT2.xyzw    

Queste restrizioni si applicano solo ai registri delle coordinate della trama.

Modificatori registro vertex shader