swapc (sm5 - asm)
執行兩個輸入暫存器之間值的元件型條件式交換。
swapc dst0[.mask], dst1[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
項目 | 描述 |
---|---|
dst0 |
[in]使用任意無空寫入遮罩註冊。 必須與 dst1不同。 |
dst1 |
[in]使用任意無空寫入遮罩註冊。 必須與 dst0不同。 |
src0 |
[in]提供 4 個條件。 非零整數值表示 true。 |
src1 |
[in]要交換的其中一個值。 |
src2 |
[in]要交換的其中一個值。 |
備註
此指令的編碼方式會嘗試在兩個 4 元件暫存器之間精簡表達多個平行條件式交換,並稍微彈性地排列涉及交換的數位組。
src0、src1 和 src2的註冊和值選擇不受限制,例如movc。
您可以使用 movc 指令的對等作業來描述此指令的語意。 下列範例顯示最差的情況,請確定目的地暫存器在結束之前不會更新。
swapc dst0[.mask],
dst1[.mask],
src0[.swizzle],
src1[.swizzle],
src2[.swizzle]
expands to:
movc temp[dst0 s mask],
src0[.swizzle],
src2[.swizzle], src1[.swizzle]
movc dst1[.mask],
src0[.swizzle],
src1[.swizzle], src2[.swizzle]
mov dst0.mask, temp
您可以選擇如何直接處理工作。 例如,相同效果可以透過最多 4 個簡單純量條件交換的序列來達成,或如上所示,兩個向量 movc 指令,再加上任何額外負荷,以確保先前作業在擴充時不會雜亂來源值。
使用此指令進行排序。
本指示適用于下列著色器階段:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
X | X | X | X | X | X |
最小著色器模型
下列著色器模型中支援此指示:
著色器模型 | 支援 |
---|---|
著色器模型 5 | 是 |
著色器模型 4.1 | 否 |
著色器模型 4 | 否 |
著色器模型 3 (DirectX HLSL) | 否 |
著色器模型 2 (DirectX HLSL) | 否 |
著色器模型 1 (DirectX HLSL) | 否 |