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 os 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 s (t#) foram consolidados 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 multisampação.
Registro facial
O registro facial (vFace) é novo para este 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 - psou break_comp - ps.
Registro do Contador de Loop
O de Registro do Contador de Loop de (aL) é novo para esse modelo. Ele é incrementado automaticamente em cada execução do loop - ps/endloop - ps bloco. 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 este 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
Registro | Nome | Contar | R/W | # Portas de leitura | # Leituras/inst | Dimensão | RelAddr | Padrões | Requer DCL |
---|---|---|---|---|---|---|---|---|---|
v# | do Registro de Entrada do | 10 | R | 1 | Ilimitado | 4 | Al | Nenhum | Sim |
r# | de Registro Temporário | 32 | R/W | 3 | Ilimitado | 4 | Não | Nenhum | Não |
c# | de Registro de Float Constante | 224 | R | 1 | Ilimitado | 4 | Não | 0000 | Não |
eu# | de registro de inteiro constante | 16 | R | 1 | 1 | 4 | Não | 0000 | Não |
b# | de Registro Booliano Constante | 16 | R | 1 | 1 | 1 | Não | FALSO | Não |
p0 | de 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 | Consulte 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/a | Nenhum | Não |
Anotaçõ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
Registro | Nome | Contar | 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