if (sm4 - asm)
Branch com base no resultado or lógico.
if{_z|_nz} src0.select_component |
---|
Item | Descrição |
---|---|
src0 |
[in] Contém o componente no qual testar a condição. |
Comentários
O formato de token contém o deslocamento da instrução endif correspondente no Sombreador como uma conveniência.
O exemplo a seguir mostra como usar esta instrução.
if_z r0.x // if all bits in r0.x are zero
...
else // (optional)
...
endif
if_nz r1.x // if any bit in r0.x is nonzero
...
else // (optional)
...
endif
Restrições
- Os operandos de origem (se quatro vetores de componente) devem usar um único seletor de componente.
- O registro de 32 bits fornecido pelo src0 é testado em um nível de bit. Se qualquer bit não for zero, if_z será verdadeiro. Se todos os bits forem zero, if_nz será verdadeiro.
- Os blocos de controle de fluxo podem aninhar até 64 profundidades por sub-rotina (e main). O compilador HLSL não gerará sub-rotinas que excedam esse limite. O comportamento das instruções de fluxo de controle além de 64 níveis de profundidade (por sub-rotina) é indefinido.
Esta instrução se aplica aos seguintes estágios de sombreador:
Sombreador de vértice | Sombreador de geometria | Sombreador de pixel |
---|---|---|
x | x | x |
Modelo de sombreador mínimo
Essa função tem suporte nos seguintes modelos de sombreador.
Modelo de Sombreador | Com suporte |
---|---|
Modelo de sombreador 5 | sim |
Modelo de sombreador 4.1 | sim |
Modelo de sombreador 4 | sim |
Modelo de Sombreador 3 (DirectX HLSL) | não |
Modelo de Sombreador 2 (DirectX HLSL) | não |
Modelo de Sombreador 1 (DirectX HLSL) | não |