dcl_input vGSInstanceID (sm5 - asm)
啟用幾何著色器實例。
dcl_input vGSInstanceID, instanceCount |
---|
項目 | 描述 |
---|---|
vGSInstanceID |
[in]實例識別碼。 |
instanceCount |
[in]實例計數。 |
備註
宣告的 instanceCount 參數會指定幾何著色器應該針對每個輸入基本類型執行的實例數目。 instanceCount的最大值為 32。
透過 dcl_maxOutputVertexCount宣告輸出的頂點數目上限會個別套用至每個實例。
此宣告中的實例計數,乘以每個實例透過 dcl_maxOutputVertexCount的最大頂點計數,必須是 < = 1024。
指定幾何著色器實例可以發出的資料量是 1024 個純量上限,其會計算針對輸入宣告的所有純量,並乘以宣告的輸出頂點計數來驗證。
使用幾何著色器實例可有效地增加每個輸入基本類型可發出的總數據量。 單一實例的 1024 純量會產生最多 1024*32 個純量輸出資料,用於單一輸入基本類型的所有幾何著色器實例。 不過,每個實例的頂點越多,每個實例可以發出較少的頂點。 單一實例 (沒有實例) 可以發出 1024 個頂點。 如果您宣告 *32 實例,表示每個實例只能輸出 1024/32 = 32 個頂點。
幾何著色器實例宣告可供程式使用獨立 32 位整數輸入暫存器 vGSInstanceID。 每個幾何著色器實例都是由 vGSInstanceID [0,1,2...] 中包含的值來識別。
vGSInstanceID 不是幾何著色器輸入頂點陣列的一部分, (例如,在輸入三角形) 時為 3 個頂點。 vGSInstanceID暫存器本身代表,例如 vPrimitiveID。
當每個幾何著色器實例結束時,輸出拓撲中有隱含的剪下,因此連續的實例彼此不相依。
雖然硬體可以平行執行每個幾何著色器實例,但結尾的所有實例輸出都會序列化,就像所有實例的幾何著色器調用在迴圈中循序執行,逐一查看從 0 到instanceCount-1的vGSInstanceID,而隱含輸出拓撲會在每個實例的結尾進行。
本指示適用于下列著色器階段:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
X |
最小著色器模型
下列著色器模型中支援此指示:
著色器模型 | 支援 |
---|---|
著色器模型 5 | 是 |
著色器模型 4.1 | 否 |
著色器模型 4 | 否 |
著色器模型 3 (DirectX HLSL) | 否 |
著色器模型 2 (DirectX HLSL) | 否 |
著色器模型 1 (DirectX HLSL) | 否 |