Registros de ps_3_0
Sombreadores de pixel dependem de registros para obter dados de vértice, para gerar dados de pixel, para manter resultados temporários durante cálculos e para identificar estágios de amostragem de textura. Há vários tipos de registros, cada um com uma funcionalidade exclusiva. Esta seção contém informações de referência para os registros de entrada e saída implementados pelo sombreador de pixel versão 3_0.
Novos Registros
Registro de Entrada
Os Registros de Entrada (v#) agora são totalmente flutuantes e o Registro de Coordenadas de Textura(t#) foi consolidado nele. O dcl_semantics (sm3 - ps asm) na parte superior do sombreador é usado para descrever o que está contido em um Input_Register específico. Uma semântica para os tipos de pixel é introduzida (análoga ao lado do vértice) para esse modelo. Nenhuma fixação é executada quando os registros de entrada são definidos como cores (como coordenadas de textura). A avaliação dos registros definidos como cor difere das coordenadas de textura durante a multiamostragem.
Registro Facial
O registro facial (vFace) é novo para esse modelo. Este é um registro escalar de ponto flutuante que eventualmente conterá a área primitiva. No ps_3_0, no entanto, somente o sinal desse registro é válido. Portanto, se o valor for menor que zero (o bit de sinal é definido como negativo), o primitivo será a face traseira (a área é negativa, no sentido anti-horário). Portanto, em ps_3_0 faz sentido comparar esse registro com 0 (> 0 ou < 0). Dentro do sombreador de pixel, o aplicativo pode tomar uma decisão sobre qual técnica de iluminação usar. A iluminação de dois lados pode ser alcançada dessa forma. Esse registro requer uma declaração, portanto, o uso não declarado será sinalizado como um erro. Para linhas e primitivos de ponto, esse registro é indefinido. O registro facial só pode ser usado como condição com as seguintes instruções: setp_comp - ps, if_comp - ps ou break_comp - ps.
Registro de Contador de Loop
O Registro de Contador de Loop (aL) é novo para esse modelo. Ele é incrementado automaticamente em cada execução do loop - ps/endloop - bloco ps . Ele pode ser usado no bloco para endereçamento relativo, se necessário. É inválido usar o Registro de Contador de Loop fora do loop.
Registro de Posição
O Registro de Posição (vPos) é novo para esse modelo. Ele contém os pixels atuais (x, y) nos canais correspondentes. Os canais (z, w) são indefinidos. Esse registro requer uma declaração, portanto, o uso não declarado será sinalizado como um erro. Quando declarado, esse registro deve ter exatamente uma das seguintes máscaras: .x, .y, .xy.
Tipos de registro de entrada
Registre-se | Nome | Contagem | R/W | # Portas de leitura | # Leituras/inst | Dimensão | RelAddr | Padrões | Requer DCL |
---|---|---|---|---|---|---|---|---|---|
V # | Registro de Entrada | 10 | R | 1 | Ilimitado | 4 | Al | Nenhum | Sim |
R # | Registro Temporário | 32 | R/W | 3 | Ilimitado | 4 | Não | Nenhum | Não |
c# | Registro float constante | 224 | R | 1 | Ilimitado | 4 | Não | 0000 | Não |
Eu # | Registro inteiro constante | 16 | R | 1 | 1 | 4 | Não | 0000 | Não |
B # | Registro booliano constante | 16 | R | 1 | 1 | 1 | Não | FALSE | Não |
p0 | Registro de predicado | 1 | R | 1 | 1 | 1 | Não | Nenhum | Não |
s # | Sampler (Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | Não | Confira a Observação 1 | Sim |
vFace | Face_Register | 1 | R | 1 | Ilimitado | 1 | Não | Nenhum | Sim |
vPos | Position_Register | 1 | R | 1 | Ilimitado | 4 | Não | Nenhum | Sim |
Al | Loop_Counter_Register | 1 | R | 1 | Ilimitado | 1 | n/d | Nenhum | Não |
Observações:
- Os padrões para pesquisas de amostragem existem, mas os valores dependem do formato de textura.
O número de readports é o número de registros diferentes (para cada tipo de registro) que podem ser lidos em uma única instrução.
Tipos de registro de saída
Registre-se | Nome | Contagem | R/W | Dimensão | RelAddr | Padrões | Requer DCL |
---|---|---|---|---|---|---|---|
Oc # | Registro de Cor de Saída | Consulte Texturas de vários elementos (Direct3D 9) | W | 4 | Não | Nenhum | Não |
oDepth | Registro de Profundidade de Saída | 1 | W | 1 | Não | Nenhum | Não |
Tópicos relacionados