fcall (sm5 - asm)

Schnittstellenfunktionsaufruf.

fcall fp # [ arrayIndex ] [ callSite]
Element Beschreibung
Fp#
[in ] Der Funktionszeiger.
Arrayindex
[in ] Optional. Gibt einen Offset in das Funktionszeigerarray an. Dieser Parameter muss eine literale ganze Zahl ohne Vorzeichen sein, wenn fp # nicht als indizierbar deklariert wurde. Andernfalls kann arrayIndex die Form Literalbasis + Offset aus einem Shaderregister haben. Beispiel: fcall fp1 [ r1.w + 0 ] [ 0 ] .
callSite
[in ] Optional. Ein literaler ganzzahliger Offset ohne Vorzeichen in der ausgewählten Funktionstabelle, der einen auszuführenden Funktionskörper fb # auswählt.

Hinweise

fp # [ ] [ arrayIndex ] löst in eine bestimmte Funktionstabelle auf, die von der API außerhalb des Shaders aus den Funktionstabellenoptionen ausgewählt wurde, die in der Deklaration von fp aufgeführt sind. #

Die Summe von # in fp # und arrayIndex wählt die Funktionstabelle aus. Wenn eine Schnittstelle beispielsweise als fp4 4 3 (Arraygröße von 4) deklariert ist, sind die folgenden [ ] [ ] fcall-Elemente äquivalent: fcall fp4 [ 2 3 und ] [ ] fp5 [ 1 3 , da ] [ ] 4+2 = 5+1.

Beschränkungen

  • Wenn arrayIndex die dynamische Indizierung verwendet, ist das Verhalten nicht definiert, wenn arrayIndex bei angrenzenden Shaderaufrufen abweichend ist, was in lockstep ausgeführt werden kann. Der HLSL-Compiler versucht, diesen Fall nicht zu verwenden.

    Benachbarte Aufrufe können aufgrund der Flusssteuerung inaktiv sein, da sie die Ausführung von Sperrschritten nicht unterbricht.

  • Wenn # fp + arrayIndex einen Index ohne Grenzen angibt, ist das Verhalten nicht definiert.

  • Für die hier beschriebenen nicht definierten Fälle bedeutet dies, dass das Verhalten des aktuellen D3D-Geräts nicht definiert wird, einschließlich der Möglichkeit, dass das Gerät verloren geht. Es wird jedoch nicht auf Arbeitsspeicher außerhalb des aktuellen D3D-Geräts zugegriffen oder als Code ausgeführt.

Diese Anweisung gilt für die folgenden Shaderstufen:

Scheitelpunkt Rumpf Domain Geometrie Pixel Compute
X X X X X X

Minimales Shadermodell

Diese Anweisung wird in den folgenden Shadermodellen unterstützt:

Shadermodell Unterstützt
Shadermodell 5 Ja
Shadermodell 4.1 Nein
Shadermodell 4 Nein
Shadermodell 3 (DirectX HLSL) Nein
Shadermodell 2 (DirectX HLSL) Nein
Shadermodell 1 (DirectX HLSL) Nein

Shader Model 5-Assembly (DirectX HLSL)