call (sm4 - asm)

Chiama una subroutine contrassegnata da dove viene visualizzata l'etichetta l# nel programma.

call l #
Elemento Descrizione
L #
[in] Etichetta della subroutine.

Commenti

Quando viene rilevato un tentativo , restituire l'esecuzione all'istruzione dopo questa chiamata.

Il formato del token contiene l'offset dell'etichetta corrispondente nello shader per praticità.

Nell'esempio seguente viene illustrata l'istruzione di chiamata.

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

Restrizioni

  • Le subroutine possono annidare 32 profondità.
  • Lo stack di indirizzi restituito viene gestito in modo trasparente dall'implementazione.
  • Se sono già presenti 32 voci nello stack di indirizzi restituiti e viene eseguita una chiamata, la chiamata viene ignorata.
  • Non esiste uno stack di parametri automatico. L'applicazione può usare una matrice di registri temporanei indicizzabile (x#[]) per implementare manualmente uno stack. Tuttavia, gli indirizzi restituiti della chiamata subroutine non sono visibili e sono ortogonali per qualsiasi gestione manuale dello stack eseguita dall'applicazione.
  • L'indicizzazione del parametro l# non è consentita.
  • La ricorsione non è consentita.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

Modello minimo shader

Questa funzione è supportata nei modelli di shader seguenti.

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

Assembly del modello shader 4 (DirectX HLSL)