Instruções – vs_2_x

Esta seção contém informações de referência para a versão do sombreador de vértice 2_x instruções.

Há vários tipos de instruções de sombreador de vértice, conforme mostrado na tabela. As colunas à direita significam o seguinte:

  • Slots de instrução – número de slots de instrução usados por cada instrução.
  • Instalação – instruções não aritméticas. Cada sombreador deve ter uma instrução de versão e deve ser a primeira instrução.
  • Aritmética – essas instruções fornecem as operações matemáticas em um sombreador.
  • Controle de fluxo – essas instruções adicionam recursos de controle de fluxo, como loop - vs... endloop - vs, se bool - vs... senão... endif e chamadas de sub-rotina.
  • Novo – estas instruções são novas para esta versão.

Conjunto de instruções

Nome Descrição Slots de instrução Instalação Aritmético Controle de fluxo Novo
abs - vs Valor absoluto 1 x
add - vs Adicionar dois vetores 1 x
break - vs Sair de um loop - vs... endloop - vs ou rep... Bloco endrep 1 x x
break_comp - vs Sair condicionalmente de um loop - vs... endloop - vs ou rep... bloco endrep , com uma comparação 3 x x
breakp - vs Sair de um loop - vs... endloop - vs ou rep... bloco endrep , com base em um predicado 3 x x
call - vs Chamar uma sub-rotina 2 x
callnz bool - vs Chamar uma sub-rotina se um registro booliano não for zero 3 x
callnz pred - vs Chamar uma sub-rotina se um registro de predicado não for zero 3 x x
crs - vs Produto cruzado 2 x
dcl_usage entrada (sm1, sm2, sm3 - vs asm) Declarar registros de vértice de entrada (consulte Registros – vs_2_x) 0 x
def - vs Definir constantes 0 x
defb - vs Definir uma constante booliana 0 x
defi - vs Definir uma constante de inteiro 0 x
dp3 - vs Produto de ponto de três componentes 1 x
dp4 - vs Produto de ponto de quatro componentes 1 x
dst - vs Calcular o vetor de distância 1 x
else - vs Iniciar um outro – vs block 1 x
endif - vs Encerrar um se bool - vs... else - vs block 1 x
endloop - vs Fim de um loop – vs block 2 x
endrep - vs Fim de um bloco de repetição 2 x
exp - vs Precisão total 2x 1 x
expp - vs Precisão parcial 2x 1 x
frc - vs Componente fracionário 1 x
se bool - vs Iniciar um se bool – vs block (usando uma condição booliana) 3 x
if_comp - vs Iniciar um se bool – vs block, com uma comparação 3 x x
se pred - vs Iniciar um se bool – vs block com uma condição de predicado 3 x x
label - vs Rótulo 0 x
aceso - vs Cálculo de iluminação parcial 3 x
log - vs Log de precisão completa₂(x) 1 x
logp - vs Log de precisão parcial₂(x) 1 x
loop - vs Loop 3 x
lrp - vs Interpolação linear 2 x
m3x2 - vs Multiplicação 3x2 2 x
m3x3 - vs Multiplicação 3x3 3 x
m3x4 - vs Multiplicação 3x4 4 x
m4x3 - vs Multiplicação 4x3 3 x
m4x4 - vs Multiplicação 4x4 4 x
louco - vs Multiplicar e adicionar 1 x
max - vs Máximo 1 x
min - vs Mínimo 1 x
mov - vs Mover 1 x
mova - vs Mover dados de um registro de ponto flutuante para o registro de endereço (a0) 1 x
mul - vs Multiplicar 1 x
nop - vs Nenhuma operação 1 x
nrm - vs Normalizar um vetor 4D 3 x
pow - vs xy 3 x
rcp - vs Recíproca 1 x
rep - vs Repetir 3 x
ret - vs Fim de uma sub-rotina ou main 1 x
rsq - vs Raiz quadrada recíproca 1 x
setp_comp - vs Definir o registro de predicado 1 x x
sge - vs Comparação maior ou igual a 1 x
sgn - vs Assinar 3 x
sincos - vs Seno e cosseno 8 x
slt - vs Menos do que comparar 1 x
sub - vs Subtrair 1 x
Vs Versão 0 x

 

Instruções de sombreador de vértice