fcall (sm5 - asm)

Llamada a función de interfaz.

fcall fp#[arrayIndex][callSite]
Elemento Descripción
Fp #
[in] Puntero de función.
arrayIndex
[in] Opcional. Especifica un desplazamiento en la matriz de punteros de función. Este parámetro debe ser un entero literal sin signo si fp# no se ha declarado como indexable. De lo contrario, arrayIndex puede ser de la base literal de formulario + desplazamiento desde un registro de sombreador. Por ejemplo, fcall fp1[r1.w + 0][0] .
callSite
[in] Opcional. Desplazamiento entero sin signo literal en la tabla de funciones seleccionada, seleccionando un cuerpo de función fb# que se va a ejecutar.

Observaciones

fp#[arrayIndex][] se resuelve en una tabla de funciones determinada, seleccionada desde la API fuera del sombreador de las opciones de la tabla de funciones enumeradas en la declaración de fp#.

La suma de # en fp# y arrayIndex selecciona la tabla de funciones. Por ejemplo, si una interfaz se declara como fp4[4][3] (tamaño de matriz de 4), las siguientes fcall s son equivalentes: fcallfp4[2][3] y fp5[1][3], porque 4+2 = 5+1.

Restricciones

  • Si arrayIndex usa la indexación dinámica, el comportamiento no está definido si arrayIndex diverges en invocaciones de sombreador adyacentes, lo que podría estar ejecutándose en lockstep. El compilador HLSL intentará denegar este caso.

    Las invocaciones adyacentes pueden estar inactivas debido al control de flujo, ya que no interrumpe la ejecución de bloqueos.

  • Si fp# + arrayIndex especifica un índice fuera de los límites, el comportamiento no está definido.

  • En el caso de los casos no definidos descritos aquí, significa que el comportamiento del dispositivo D3D actual se vuelve indefinido, incluida la posibilidad de que se pierda el dispositivo. Sin embargo, no se tendrá acceso a ninguna memoria fuera del dispositivo D3D actual o se ejecutará como código.

Esta instrucción se aplica a las siguientes fases del sombreador:

Vértice Casco Domain Geometría Píxel Compute
x x x x x x

Modelo de sombreador mínimo

Esta instrucción se admite en los siguientes modelos de sombreador:

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1 no
Modelo de sombreador 4 no
Modelo de sombreador 3 (DirectX HLSL) no
Modelo de sombreador 2 (DirectX HLSL) no
Modelo de sombreador 1 (DirectX HLSL) no

Ensamblado del modelo de sombreador 5 (DirectX HLSL)