call (sm4 – asm)

Chama uma sub-rotina marcada pelo local em que o rótulo l# aparece no programa.

chamar l #
Item Descrição
L #
[in] O rótulo da sub-rotina.

Comentários

Quando um ret for encontrado, retorne a execução para a instrução após essa chamada.

O formato de token contém o deslocamento do rótulo correspondente no Sombreador como uma conveniência.

O exemplo a seguir mostra a instrução de chamada.

                ...
                call l3
                ...
                ret
                label l3
                    ...
                    retc_nz r0.x
                    ...
                ret

Restrições

  • As sub-rotinas podem aninhar 32 de profundidade.
  • A pilha de endereços de retorno é gerenciada de forma transparente pela implementação.
  • Se já houver 32 entradas na pilha de endereços de retorno e uma chamada for emitida, a chamada será ignorada.
  • Não há pilha automática de parâmetros. O aplicativo pode usar uma matriz de registro temporário indexável (x#[]) para implementar manualmente uma pilha. No entanto, os endereços de retorno de chamada de sub-rotina não são visíveis e são ortogonais para qualquer gerenciamento de pilha manual feito pelo aplicativo.
  • A indexação do parâmetro l# não é permitida.
  • A recursão não é permitida.

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de sombreador 3 (DirectX HLSL) não
Modelo de sombreador 2 (DirectX HLSL) não
Modelo de sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 4 (DirectX HLSL)