dcl_maxOutputVertexCount (sm4 - asm)
Dichiara il numero massimo di vertici che possono essere restituiti da uno shader geometry.
dcl_maxOutputVertexCount conteggio |
---|
Elemento | Descrizione |
---|---|
Conteggio |
[in] Intero senza segno a 32 bit compreso tra 1 e n, inclusivo. |
Un shader geometry può restituire un massimo di 1024 valori a 32 bit. Questo massimo include le dimensioni dei dati di input e le dimensioni dei dati creati dallo shader.
Ecco alcune limitazioni:
- Se il numero di vertici viene raggiunto prima del completamento dell'esecuzione del geometry shader, lo shader termina.
- Un geometry-shader può raggiungere la fine del suo programma prima di restituire i vertici; questo è perfettamente legale.
- Se si esegue il debug di uno shader geometry, è possibile indicare il numero di vertici generati conteggiando il numero di istruzioni generate.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertex shader | Geometry shader | Pixel shader |
---|---|---|
x |
Questa istruzione è inclusa per facilitare il debug di uno shader nell'assembly; non è possibile creare uno shader nel linguaggio dell'assembly usando Shader Model 4.
Esempio
Di seguito sono riportati alcuni esempi.
Si supponga che i dati di input siano costituiti da posizione (.xyzw) e colore (.rgb). Ogni componente usa un byte; dato 7 byte, il numero massimo di vertici che il shader può generare sarebbe 1024 / (4 + 3) = 146.
dcl_maxOutputVertexCount 146
Si supponga che lo shader geometry crei 32 vettori a 4 componenti. Il numero massimo di vertici che il shader può generare sarebbe 1024 / (32 * 4) = 8.
dcl_maxOutputVertexCount 8
Modello di shader minimo
Questa funzione è supportata nei modelli shader seguenti.
Modello di shader | Supportato |
---|---|
Modello shader 5 | sì |
Modello shader 4.1 | sì |
Modello shader 4 | sì |
Modello shader 3 (DirectX HLSL) | no |
Modello shader 2 (DirectX HLSL) | no |
Modello shader 1 (DirectX HLSL) | no |