fcall (sm5 - asm)

Chiamata di funzione di interfaccia.

fcall fp#[arrayIndex][callSite]
Elemento Descrizione
Fp #
[in] Puntatore a funzione.
Arrayindex
[in] Facoltativo. Specifica un offset nella matrice del puntatore a funzione. Questo parametro deve essere un intero senza segno letterale se fp# non è stato dichiarato come indicizzato. In caso contrario, arrayIndex può essere di base letterale form + offset da un registro shader. Ad esempio, fcall fp1[r1.w + 0][0] .
Callsite
[in] Facoltativo. Offset integer senza segno letterale nella tabella di funzioni selezionata, selezionando un corpo della funzione fb# da eseguire.

Commenti

fp#[arrayIndex][] si risolve in una tabella di funzioni specifica, selezionata dall'API all'esterno dello shader dalle scelte della tabella delle funzioni elencate nella dichiarazione di fp#.

La somma di # in fp# e arrayIndex selezionare la tabella della funzione. Ad esempio, se un'interfaccia viene dichiarata come fp4[4][3] (dimensione matrice pari a 4), le chiamate fcall seguenti sono equivalenti: fcallfp4[2][3] e fp5[1][3], perché 4+2 = 5+1.

Restrizioni

  • Se arrayIndex usa l'indicizzazione dinamica, il comportamento non è definito se arrayIndex diverge nelle chiamate dello shader adiacenti, che potrebbero essere eseguite in lockstep. Il compilatore HLSL tenterà di non consentire questo caso.

    Le chiamate adiacenti possono essere inattive a causa del controllo del flusso, perché non interrompe l'esecuzione del blocco.

  • Se fp# + arrayIndex specifica un indice out of bounds, il comportamento non è definito.

  • Per i casi non definiti descritti qui, significa che il comportamento del dispositivo D3D corrente diventa indefinito, inclusa la possibilità di Perdita del dispositivo. Tuttavia, nessuna memoria esterna al dispositivo D3D corrente verrà accessibile o eseguita come codice.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Modello minimo shader

Questa istruzione è supportata nei modelli di shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly modello shader 5 (DirectX HLSL)