Systeminterne Funktionen

In der folgenden Tabelle sind die systeminternen Funktionen aufgeführt, die in HLSL verfügbar sind. Jede Funktion enthält eine kurze Beschreibung und einen Link zu einer Referenzseite, die weitere Details zum Eingabeargument und rückgabetyp enthält.

Name BESCHREIBUNG Mindest-Shadermodell
Abbrechen Beendet den aktuellen Draw- oder Dispatch-Aufruf, der ausgeführt wird. 4
Abs Absoluter Wert (pro Komponente).
Acos Gibt den Arccosinus jeder Komponente von x zurück.
Alle Testen Sie, ob alle Komponenten von x nicht zero sind.
AllMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen wurden. 5
AllMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
any Testen Sie, ob eine Beliebige Komponente von x nicht zero ist.
verdoppelt Interpretiert einen Umwandlungswert in ein Doppel. 5
asfloat Konvertieren Sie den Eingabetyp in eine Float-Datei. 4
Asin Gibt den Bogen der einzelnen Komponenten von x zurück.
asint Konvertieren Sie den Eingabetyp in eine ganze Zahl. 4
asuint Interpretiert das Bitmuster eines 64-Bit-Typs erneut in einen Uint. 5
asuint Konvertieren Sie den Eingabetyp in eine nicht signierte ganze Zahl. 4
Atan Gibt den Bogen von x zurück.
atan2 Gibt den Bogen von zwei Werten (x,y) zurück.
ceil Gibt die kleinste ganze Zahl zurück, die größer oder gleich x ist.
CheckAccessFullyMapped Bestimmt, ob alle Werte aus einem Beispiel - oder Load-Vorgang auf zugeordnete Kacheln in einer gekachelten Ressource zugegriffen werden. 5
Klemme Klammert x an den Bereich [min, max].
Clip Verwirft das aktuelle Pixel, wenn eine beliebige Komponente von x kleiner als null ist.
Cos Gibt den Kosinus von x zurück.
Cosh Gibt den hyperbolischen Kosinus von x zurück.
Anzahlbits Zählt die Anzahl der Bits (pro Komponente) in der Eingabezahl. 5
Kreuz Gibt das Kreuzprodukt von zwei 3D-Vektoren zurück.
D3DCOLORtoUBYTE4 Swizzles and scales components of the 4D vector xto kompensieren den Mangel an UBYTE4-Unterstützung in einigen Hardware.
Ddx Gibt die partielle Ableitung von x in Bezug auf die x-Koordinate des Bildschirmraums zurück.
ddx_coarse Berechnet eine partielle Ableitung mit geringer Genauigkeit im Hinblick auf die x-Koordinate des Bildschirmraums. 5
ddx_fine Berechnet eine partielle Ableitung mit hoher Genauigkeit im Hinblick auf die x-Koordinate des Bildschirmraums. 5
ddy Gibt die partielle Ableitung von x im Hinblick auf die Bildschirmraumkoordinate zurück.
ddy_coarse Berechnet eine partielle Ableitung mit geringer Genauigkeit im Hinblick auf die Bildschirmraumkoordinate. 5
ddy_fine Berechnet eine hochgenaue partielle Ableitung im Hinblick auf die Bildschirmraum-y-Koordinate. 5
Grad Wandelt x von Radien in Grad um.
Determinante Gibt die Determinante der quadratischen Matrix m zurück.
DeviceMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Gerätespeicherzugriffe abgeschlossen wurden. 5
DeviceMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Gerätespeicherzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
distance Gibt den Abstand zwischen zwei Punkten zurück.
Punkt Gibt das Skalarprodukt zweier Vektoren zurück. 1
Dst Berechnet einen Abstandsvektor. 5
errorf Sendet eine Fehlermeldung an die Informationswarteschlange. 4
ValuAttributeCentroid Wertet am Pixelzentrieren aus. 5
ValuAttributeAtSample Wertet am indizierten Beispielspeicherort aus. 5
ValuAttributeSnapped Ausgewertet am Pixelzentriert mit einem Offset. 5
Exp Gibt die Basis-e-Exponent zurück.
Exp2 Base 2 exponent (pro Komponente).
f16tof32 Wandelt den Float16 um, der in der unteren Hälfte des Uints in einen Float gespeichert ist. 5
f32tof16 Wandelt eine Eingabe in einen Float16-Typ um. 5
faceforward Gibt -n * Sign(dot(i, ng)) zurück.
firstbithigh Ruft den Speicherort des ersten Set-Bits ab dem höchsten Auftragsbit ab und funktioniert nach unten, pro Komponente. 5
firstbitlow Gibt den Speicherort des ersten Set-Bits zurück, der von der niedrigsten Reihenfolge beginnt und nach oben funktioniert, pro Komponente. 5
Boden Gibt die größte ganze Zahl zurück, die kleiner oder gleich x ist.
Fma Gibt die doppelgenaue Fused-Ergänzung eines * b + c zurück. 5
fmod Gibt den Gleitkomma-Rest von x/y zurück.
Frac Gibt den Bruchteil von x zurück.
frexp Gibt die Mantissa und exponent von x zurück.
fwidth Gibt Abs(ddx(x)) + Abs(ddy(x)) zurück.
GetRenderTargetSampleCount Gibt die Anzahl der Renderzielbeispiele zurück. 4
GetRenderTargetSamplePosition Gibt eine Beispielposition (x,y) für einen bestimmten Beispielindex zurück. 4
GroupMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle freigegebenen Gruppenzugriffe abgeschlossen wurden. 5
GroupMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle freigegebenen Gruppenzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
InterlockedAdd Führt eine garantierte atomische Add-of-Value-Variable dest-Ressourcenvariablen aus. 5
InterlockedAnd Führt ein garantiertes Atom und ein. 5
InterlockedCompareExchange Atomisch vergleicht die Eingabe mit dem Vergleichswert und austauscht das Ergebnis. 5
InterlockedCompareStore Atomisch vergleicht die Eingabe mit dem Vergleichswert. 5
InterlockedExchange Weist den Wert dest zu und gibt den ursprünglichen Wert zurück. 5
InterlockedMax Führt eine garantierte Atomgröße aus. 5
InterlockedMin Führt eine garantierte atome Min. aus. 5
InterlockedOr Führt ein garantiertes Atom oder ein. 5
InterlockedXor Führt einen garantierten Atom xor aus. 5
isfinite Gibt true zurück, wenn x endlich ist, andernfalls false.
isinf Gibt true zurück, wenn x +INF oder -INF ist, andernfalls false.
Isnan Gibt true zurück, wenn x NAN oder QNAN ist, falsch andernfalls.
ldexp Gibt x * 2exp zurück
Länge Gibt die Länge des Vektors v zurück.
lerp Gibt x + s(y - x) zurück.
Beleuchtet Gibt einen Beleuchtungsvektor (Umgebung, Diffus, Speer, 1) zurück.
Protokoll Gibt den Basis-e-Logarithmus von x zurück.
log10 Gibt den Basis-10-Logarithmus von x zurück.
log2 Gibt den Basis-2-Logarithmus von x zurück.
wütend Führt einen arithmetischen Multiplikations-/Add-Vorgang auf drei Werten aus. 5
Max Wählt den größeren Wert von x und y aus.
Min Wählt den kleinerer von x und y aus.
modf Teilt den Wert x in Bruch- und ganzzahlige Teile auf.
msad4 Vergleicht einen 4-Byte-Verweiswert und einen 8-Byte-Quellwert und sammelt einen Vektor von 4 Summen. 5
mul Führt die Matrixmultiplizierung mithilfe von x und y aus. 1
Lärm Generiert einen Zufälligen Wert mithilfe des Perlin-Rauschalgorithmus.
Normalisieren Gibt einen normalisierten Vektor zurück.
Pow Gibt xy zurück.
printf Sendet eine benutzerdefinierte Shadernachricht an die Informationswarteschlange. 4
Process2DQuadTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
Process2DQuadTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
Process2DQuadTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessIsolineTessFactors Generiert die abgerundeten Tessellationsfaktoren für eine Isoline. 5
ProcessQuadTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessQuadTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessQuadTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessTriTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Tri patch. 5
ProcessTriTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Tri patch. 5
ProcessTriTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Tri patch. 5
Bogenmaß Wandelt x von Grad in Radierer um. 1
rcp Berechnet eine schnelle, ungefähre, pro Komponente gegenseitig. 5
reflect Gibt einen Spiegelungsvektor zurück. 1
Refract Gibt den Vektor der Refraction zurück.
Reversebits Umgekehrt die Reihenfolge der Bits pro Komponente. 5
Runde Rundet x auf die nächste ganze Zahl ab.
rsqrt Gibt 1 / sqrt(x) zurück.
Sättigen Klammern x an den Bereich [0, 1] 1
Zeichen Berechnet das Zeichen von x.
Sünde Gibt den Sine von x zurück.
sincos Gibt den Sine und cosine von x zurück.
Sinh Gibt den hyperbolischen Sine von x zurück
smoothstep Gibt eine glatte Hermit-Interpolation zwischen 0 und 1 zurück.
Sqrt Quadratwurzel (pro Komponente)
Schritt Gibt zurück (x >= a) ? 1 : 0
Tan Gibt die Tangente von x zurück.
Tanh Gibt den hyperbolischen Tangent von x zurück.
tex1D(s, t) 1D-Textur-Nachschlagevorgang. 1
tex1D(s, t, ddx, ddy) 1D-Textur-Nachschlagevorgang.
tex1Dbias 1D-Textur-Nachschlagevorgang mit Verzerrungen.
tex1Dgrad 1D-Textur-Nachschlagevorgang mit einem Farbverlauf.
tex1Dlod 1D-Textur-Nachschlagevorgang mit LOD.
tex1Dproj 1D-Textur-Nachschlagevorgang mit projektivem Teil.
tex2D(s, t) 2D-Textur-Nachschlagevorgang.
tex2D(s, t, ddx, ddy) 2D-Textur-Nachschlagevorgang.
tex2Dbias 2D-Textur-Nachschlagevorgang mit Verzerrung.
tex2Dgrad 2D-Textur-Nachschlagevorgang mit einem Farbverlauf.
tex2Dlod 2D-Textur-Nachschlagevorgang mit LOD. 3
tex2Dproj 2D-Textur-Nachschlagevorgang mit projektivem Teil.
tex3D(s, t) 3D-Textur-Nachschlagevorgang.
tex3D(s, t, ddx, ddy) 3D-Textur-Nachschlagevorgang.
tex3Dbias 3D-Textur-Nachschlagevorgang mit Verzerrung.
tex3Dgrad 3D-Textur-Nachschlagevorgang mit einem Farbverlauf.
tex3Dlod 3D-Textur-Nachschlagevorgang mit LOD.
tex3Dproj 3D-Textur-Nachschlagevorgang mit projektivem Teil.
texCUBE(s, t) Cube-Textur-Nachschlagevorgang.
texCUBE(s, t, ddx, ddy) Cube-Textur-Nachschlagevorgang.
texCUBEbias Cube-Textur-Nachschlagevorgang mit Verzerrungen.
texCUBEgrad Cube-Textur-Nachschlagevorgang mit einem Farbverlauf.
texCUBElod Cube-Textur-Nachschlagevorgang mit LOD.
texCUBEproj Cube-Textur-Nachschlagevorgang mit projektivem Teil.
Umsetzung Gibt die Transponieren der Matrix m zurück. 1
Trunc Abschneiden von Gleitkommawert(n) auf ganzzahlige Werte(n) 1

 

¹ siehe Referenzseite für Einschränkungen.

Komponenten- und Vorlagentypen

Die HLSL-systeminternen Funktionsdeklarationen verwenden Komponententypen und Vorlagentypen für Eingabeparameterargumente und Rückgabewerte. Die verfügbaren Typen werden in der folgenden Tabelle aufgeführt.

Diese Vorlagentypen BESCHREIBUNG Unterstützen sie diese Datentypen
Matrix bis zu 16 Komponenten je nach Deklaration Grundlegende HLSL-Typen
Objekt (object) Samplerobjekt sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
Skalar 1 Komponente Grundlegende HLSL-Typen
Vektor Mindestens 1 Komponenten, maximal 4 Komponenten (inklusive) Grundlegende HLSL-Typen

 

Weitere Informationen

Referenz für HLSL