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 |