swapc (sm5 - asm)
Esegue uno scambio condizionale per componente dei valori tra due registri di input.
swapc dst0[.mask], dst1[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle] |
---|
Elemento | Descrizione |
---|---|
dst0 |
[in] Registrarsi con maschere di scrittura arbitrarie nonempty. Deve essere diverso da dst1. |
dst1 |
[in] Registrarsi con maschere di scrittura arbitrarie nonempty. Deve essere diverso da dst0. |
src0 |
[in] Fornisce 4 condizioni. Un valore intero diverso da zero indica true. |
src1 |
[in] Uno dei valori da scambiare. |
src2 |
[in] Uno dei valori da scambiare. |
Commenti
La codifica di questa istruzione tenta di esprimere in modo compatto più scambi condizionali paralleli di scalari in due registri a 4 componenti, con minore flessibilità nella disposizione delle coppie di numeri coinvolti nello scambio.
La scelta di registro e valore per src0, src1 e src2 non sono vincolati in qualsiasi modo, come movc.
La semantica di questa istruzione può essere descritta dalle operazioni equivalenti con l'istruzione movc . L'esempio peggiore è illustrato nell'esempio seguente, assicurandosi che i registri di destinazione non vengano aggiornati fino alla fine.
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
È possibile scegliere come affrontare l'attività, se non direttamente. Ad esempio, lo stesso effetto può essere ottenuto da una sequenza di fino a 4 semplici scambi condizionali scalari o, come in precedenza, due istruzioni movc vettoriali, oltre a qualsiasi overhead per assicurarsi che i valori di origine non siano clobbered da operazioni precedenti in mezzo all'espansione.
Usare questa istruzione per l'ordinamento.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertice | Scafo | Dominio | Geometria | Pixel | Calcolo |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modello minimo shader
Questa istruzione è supportata nei modelli di shader seguenti:
Modello di shader | Supportato |
---|---|
Modello shader 5 | sì |
Modello shader 4.1 | no |
Modello shader 4 | no |
Modello shader 3 (DirectX HLSL) | no |
Modello shader 2 (DirectX HLSL) | no |
Modello shader 1 (DirectX HLSL) | no |