swapc (sm5 – asm)
Executa uma troca condicional em termos de componente dos valores entre dois registros de entrada.
swapc dst0[.mask], dst1[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
Item | Descrição |
---|---|
dst0 |
[in] Registre-se com máscaras de gravação nãompty arbitrárias. Deve ser diferente de dst1. |
dst1 |
[in] Registre-se com máscaras de gravação nãompty arbitrárias. Deve ser diferente de dst0. |
src0 |
[in] Fornece 4 condições. Um valor inteiro diferente de zero significa true. |
src1 |
[in] Um dos valores a serem trocados. |
src2 |
[in] Um dos valores a serem trocados. |
Comentários
A codificação desta instrução tenta expressar compactamente várias trocas condicionais paralelas de escalares em dois registros de 4 componentes, com pequena flexibilidade na disposição dos pares de números envolvidos na troca.
A escolha do registro e do valor para src0, src1 e src2 é irrestrita de qualquer maneira, como movc.
A semântica dessa instrução pode ser descrita pelas operações equivalentes com a instrução movc . O pior caso é mostrado no exemplo a seguir, certificando-se de que os registros de destino não sejam atualizados até o final.
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
Você pode escolher como lidar com a tarefa, se não diretamente. Por exemplo, o mesmo efeito pode ser obtido por uma sequência de até 4 trocas condicionais escalares simples ou, como acima, duas instruções de movc vetor, além de qualquer sobrecarga para garantir que os valores de origem não sejam bloqueados por operações anteriores no meio da expansão.
Use esta instrução para classificação.
Esta instrução se aplica aos seguintes estágios de sombreador:
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modelo de sombreador mínimo
Esta instrução tem suporte nos seguintes modelos de sombreador:
Modelo de Sombreador | Com suporte |
---|---|
Modelo de sombreador 5 | sim |
Modelo de sombreador 4.1 | não |
Modelo de sombreador 4 | não |
Modelo de Sombreador 3 (DirectX HLSL) | não |
Modelo de Sombreador 2 (DirectX HLSL) | não |
Modelo de Sombreador 1 (DirectX HLSL) | não |