vs_2_x
Un vertex shader programmabile è costituito da un set di istruzioni che operano sui dati dei vertici. Registra i dati in e fuori dall'ALU. È possibile applicare un controllo aggiuntivo per modificare l'istruzione, i risultati o i dati scritti.
La versione del vertex shader vs_2_x estende il set di funzionalità supportato da vs_2_0. Ogni funzionalità aggiuntiva è rappresentata da un limite corrispondente nella struttura D3DCAPS9 all'interno di D3DVS20CAPS. Per usare una delle funzionalità avanzate rappresentate da questi limiti, la versione del vertex shader deve essere specificata come vs_2_x.
- Istruzioni: vs_2_x contiene un elenco delle istruzioni disponibili.
- Registri: vs_2_x elenca i diversi tipi di registri usati dall'ALU del vertex shader.
- I modificatori del registro vertex shader vengono usati per modificare il modo in cui funziona un'istruzione.
- I modificatori del registro origine Vertex Shader modificano i dati del registro di origine prima dell'esecuzione dell'istruzione.
- Lo swizzling del registro di origine fornisce un controllo aggiuntivo sui componenti di registrazione letti, copiati o scritti.
- Registro di destinazione Maschera determina quali componenti del registro di destinazione vengono scritti.
Nuove funzioni e caratteristiche
Le nuove funzionalità sono le seguenti:
Controllo flusso dinamico
Se D3DVS20CAPS> 0, sono supportate le istruzioni di controllo del flusso dinamico seguenti:
Se è impostato anche D3DVS20CAPS , sono supportate le istruzioni aggiuntive per il controllo del flusso seguenti:
L'intervallo di valori per la profondità del controllo di flusso dinamico è compreso tra 0 e 24 ed è uguale alla profondità di annidamento delle istruzioni di controllo del flusso dinamico (vedere Flow Control Nesting Limits per informazioni dettagliate). Se questo limite è zero, il dispositivo non supporta le istruzioni di controllo del flusso dinamico.
Numero di registri temporanei
D3DVS20CAPS rappresenta il numero di registri temporaneisupportati dal dispositivo. L'intervallo di valori per questo limite è compreso tra 12 e 32.
Profondità di annidamento del flusso statico
D3DVS20CAPS rappresenta la profondità di annidamento di due tipi di istruzioni di controllo del flusso statico:/ ciclo - vsrep - vs callnz/bool- vsif bool/ - vs. ciclo - vs rep - vs. Istruzioni possono essere annidate fino a D3DVS20CAPS deep. In modo indipendente, chiamare - vs/callnz bool - le istruzioni possono essere annidate fino a D3DVS20CAPS deep. Se anche D3DVS20CAPS è impostato, callnz pred - vs viene conteggiato verso la profondità di annidamento della chiamata - vs/callnz bool - vs/if bool - vs (vedere Flow Control Nesting Limits per informazioni dettagliate).
Predicazione
Se D3DVS20CAPS è impostato, il dispositivo supporta setp_comp - vs e predicazione delle istruzioni. Se D3DVS20CAPS è maggiore di 0, sono supportate le istruzioni aggiuntive di controllo del flusso dinamico seguenti:
Conteggio istruzioni
Ogni vertex shader può avere fino a 256 istruzioni archiviate. Il numero di istruzioni eseguite può essere molto più elevato (a causa del supporto ciclo/rep) e viene limitato da D3DCAPS9, che deve essere almeno 0xFFFF.
Argomenti correlati