vs_2_x

Um sombreador de vértice programável é composto por um conjunto de instruções que operam em dados de vértice. Registra dados de transferência dentro e fora da ALU. Controle adicional pode ser aplicado para modificar a instrução, os resultados ou quais dados são gravados.

A versão do sombreador Vertex vs_2_x estende o conjunto de recursos suportado pelo vs_2_0. Cada característica adicional é representada por uma tampa correspondente na estrutura D3DCAPS9 dentro D3DVS20CAPS. Para usar qualquer um dos recursos aprimorados representados por essas tampas, a versão do sombreador de vértice deve ser especificada como vs_2_x.

  • Instruções - vs_2_x contém uma lista das instruções disponíveis.
  • Registers - vs_2_x lista os diferentes tipos de registros usados pelo sombreador de vértice ALU.
  • Vertex Shader Register Modifiers são usados para modificar a maneira como uma instrução funciona.
  • Vertex Shader Source Register Modifiers alterar os dados do registro de origem antes que a instrução seja executada.
  • de Registro de Origem fornece controle adicional sobre quais componentes de registro são lidos, copiados ou gravados.
  • de mascaramento do registro de destino determina quais componentes do registro de destino são gravados.

Novos recursos

As novas funcionalidades são as seguintes:

Controlo Dinâmico de Caudal

Se D3DVS20CAPS> 0, as seguintes instruções de controle de fluxo dinâmico são suportadas:

Se D3DVS20CAPS também estiver definido, as seguintes instruções adicionais de controle de fluxo são suportadas:

O intervalo de valores para a profundidade de controle de fluxo dinâmico é de 0 a 24 e é igual à profundidade de aninhamento das instruções de controle de fluxo dinâmico (consulte Limites de aninhamento de controle de fluxo para obter detalhes). Se esta tampa for zero, o dispositivo não suporta instruções de controlo dinâmico do fluxo.

Número de registos temporários

D3DVS20CAPS representa o número de de Registo Temporário suportados pelo dispositivo. O intervalo de valores para este limite é de 12 a 32.

Profundidade de aninhamento do controle de fluxo estático

D3DVS20CAPS representa a profundidade de aninhamento de dois tipos de instruções de controle de fluxo estático: loop - vs/rep - vs e call - vs/callnz bool - vs/if bool - vs. As instruções Loop - VS/REP - VS podem ser aninhadas até D3DVS20CAPS profundidade. Independentemente, call - vs/callnz bool - vs instruções podem ser aninhadas até D3DVS20CAPS profundidade. Se D3DVS20CAPS também estiver definido, callnz pred - vs será contado para a profundidade de aninhamento da chamada - vs/callnz bool - vs/if bool - vs (consulte Flow Control Nesting Limits para obter detalhes).

Predicação

Se D3DVS20CAPS estiver definido, o dispositivo suporta setp_comp - vs e predicação de instruções. Se D3DVS20CAPS também for maior que 0, as seguintes instruções adicionais de controle de fluxo dinâmico são suportadas:

Contagem de instruções

Cada sombreador de vértice pode ter até 256 instruções armazenadas. O número de instruções executadas pode ser muito maior (por causa do suporte a loop/rep), e é limitado por D3DCAPS9, que deve ser pelo menos 0xFFFF.

Vertex Shaders