Compartilhar via


fcall (sm5 - asm)

Chamada de função de interface.

fcall fp#[arrayIndex][callSite]
Item Descrição
Fp #
[in] O ponteiro da função.
Arrayindex
[in] Opcional. Especifica um deslocamento para a matriz de ponteiro de função. Esse parâmetro deve ser um inteiro sem sinal literal se fp# não tiver sido declarado como indexável. Caso contrário, arrayIndex pode ser da base literal do formulário + deslocamento de um registro de sombreador. Por exemplo, fcall fp1[r1.w + 0][0] .
Callsite
[in] Opcional. Um deslocamento de inteiro sem sinal literal para a tabela de funções selecionada, selecionando um corpo de função fb# a ser executado.

Comentários

fp#[arrayIndex][] é resolvido para uma tabela de funções específica, selecionada na API fora do sombreador das opções de tabela de funções listadas na declaração de fp#.

A soma de # em fp# e arrayIndex selecione a tabela de funções. Por exemplo, se uma interface for declarada como fp4[4][3] (tamanho da matriz de 4), as seguintes fcalls serão equivalentes: fcall fp4[2][3] e fp5[1][3], porque 4+2 = 5+1.

Restrições

  • Se arrayIndex usar indexação dinâmica, o comportamento será indefinido se arrayIndex divergir em invocações de sombreador adjacentes, o que pode estar sendo executado em lockstep. O compilador HLSL tentará não permitir esse caso.

    Invocações adjacentes podem ser inativas devido ao controle de fluxo, pois ela não interrompe a execução de bloqueios.

  • Se fp# + arrayIndex especificar um índice fora dos limites, o comportamento será indefinido.

  • Para os casos indefinidos descritos aqui, isso significa que o comportamento do dispositivo D3D atual torna-se indefinido, incluindo a possibilidade de Perda de Dispositivo. No entanto, nenhuma memória fora do dispositivo D3D atual será acessada ou executada como código.

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

Vértice Casco Domínio Geometry Pixel Computação
X X X X X X

Modelo de sombreador mínimo

Esta instrução tem suporte nos seguintes modelos de sombreador:

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 não
Modelo de sombreador 4 não
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 5 (DirectX HLSL)