Máscara de Registro de Destino
Mascaramento especifica quais componentes do registro de destino serão atualizados com o resultado de uma instrução. Os registros de textura têm um conjunto de regras e os registros de nãotextura têm outro conjunto de regras.
- dx9_graphics_reference_asm_vs_registers_modifiers_masking - Esta seção contém regras para aplicar máscaras a registros de destino.
- Texture_Register_Masks - Os registros de textura têm algumas regras exclusivas.
Máscara de Registro de Destino
Conforme mostrado na tabela a seguir, o mascaramento (em que é um dos registros de sombreador de vértice válidos) pode ser aplicado aos componentes individuais dos dados de vetor.
Modificador de componente | Descrição |
---|---|
r.{x}{y}{z}{w} | Máscara de destino |
- Em geral, especificar máscaras de gravação de registro de destino é um bom estilo de codificação. Isso facilita a leitura e a manutenção do código.
- Qualquer combinação de componentes pode ser especificada (incluindo nenhum), desde que x preceda y, y precede z e z precede w.
- Os registros de saída oPts e oFog devem usar apenas uma máscara.
- Determinadas instruções exigem que o registro de destino use uma única máscara de gravação: exp, expp, log, logp, pow, rcp e rsq.
- Na versão 1.0, a instrução frc exigia uma das seguintes combinações de máscara: .x ou .y ou .xy. A versão 2.0 não tem restrição de máscara.
- Sincos requer uma das seguintes combinações de máscara: .x ou .y ou .xyz.
- m3x2 requer a máscara de gravação .xy.
- m3x3 e m4x3 exigem a máscara de gravação .xyz.
- m3x4 e m4x4 exigem a máscara de gravação .xyz ou a máscara de gravação padrão (xyzw).
Máscaras de registro de textura
As regras de validação para usar modificadores em registros de coordenadas de textura são mais rígidas do que as regras de validação para outros registros.
- Se oTn for gravado, todos os registros anteriores (oTn-1 ~ oT0) também precisarão ser gravados.
- A máscara de gravação "combinada" para qualquer registro oT# deve ser exatamente uma das seguintes:
- .X
- .Xy
- .Xyz
- .xyzw (que é equivalente a não usar nenhum modificador de componente)
Por exemplo, um sombreador de vértice pode gerar para registros de textura em instruções separadas.
oT1.y
oT0.y
oT2
oT0.xz
oT1.x
Ou as instruções podem ser combinadas.
oT0.xyz
oT1.xy
oT2.xyzw
Essas restrições se aplicam somente aos registros de coordenadas de textura.
Tópicos relacionados