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). | 1¹ |
Acos | Gibt den Arccosinus jeder Komponente von x zurück. | 1¹ |
Alle | Testen Sie, ob alle Komponenten von x nicht zero sind. | 1¹ |
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. | 1¹ |
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. | 1¹ |
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. | 1¹ |
atan2 | Gibt den Bogen von zwei Werten (x,y) zurück. | 1¹ |
ceil | Gibt die kleinste ganze Zahl zurück, die größer oder gleich x ist. | 1¹ |
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]. | 1¹ |
Clip | Verwirft das aktuelle Pixel, wenn eine beliebige Komponente von x kleiner als null ist. | 1¹ |
Cos | Gibt den Kosinus von x zurück. | 1¹ |
Cosh | Gibt den hyperbolischen Kosinus von x zurück. | 1¹ |
Anzahlbits | Zählt die Anzahl der Bits (pro Komponente) in der Eingabezahl. | 5 |
Kreuz | Gibt das Kreuzprodukt von zwei 3D-Vektoren zurück. | 1¹ |
D3DCOLORtoUBYTE4 | Swizzles and scales components of the 4D vector xto kompensieren den Mangel an UBYTE4-Unterstützung in einigen Hardware. | 1¹ |
Ddx | Gibt die partielle Ableitung von x in Bezug auf die x-Koordinate des Bildschirmraums zurück. | 2¹ |
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. | 2¹ |
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. | 1¹ |
Determinante | Gibt die Determinante der quadratischen Matrix m zurück. | 1¹ |
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. | 1¹ |
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. | 1¹ |
Exp2 | Base 2 exponent (pro Komponente). | 1¹ |
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. | 1¹ |
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. | 1¹ |
Fma | Gibt die doppelgenaue Fused-Ergänzung eines * b + c zurück. | 5 |
fmod | Gibt den Gleitkomma-Rest von x/y zurück. | 1¹ |
Frac | Gibt den Bruchteil von x zurück. | 1¹ |
frexp | Gibt die Mantissa und exponent von x zurück. | 2¹ |
fwidth | Gibt Abs(ddx(x)) + Abs(ddy(x)) zurück. | 2¹ |
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. | 1¹ |
isinf | Gibt true zurück, wenn x +INF oder -INF ist, andernfalls false. | 1¹ |
Isnan | Gibt true zurück, wenn x NAN oder QNAN ist, falsch andernfalls. | 1¹ |
ldexp | Gibt x * 2exp zurück | 1¹ |
Länge | Gibt die Länge des Vektors v zurück. | 1¹ |
lerp | Gibt x + s(y - x) zurück. | 1¹ |
Beleuchtet | Gibt einen Beleuchtungsvektor (Umgebung, Diffus, Speer, 1) zurück. | 1¹ |
Protokoll | Gibt den Basis-e-Logarithmus von x zurück. | 1¹ |
log10 | Gibt den Basis-10-Logarithmus von x zurück. | 1¹ |
log2 | Gibt den Basis-2-Logarithmus von x zurück. | 1¹ |
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. | 1¹ |
Min | Wählt den kleinerer von x und y aus. | 1¹ |
modf | Teilt den Wert x in Bruch- und ganzzahlige Teile auf. | 1¹ |
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. | 1¹ |
Normalisieren | Gibt einen normalisierten Vektor zurück. | 1¹ |
Pow | Gibt xy zurück. | 1¹ |
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. | 1¹ |
Reversebits | Umgekehrt die Reihenfolge der Bits pro Komponente. | 5 |
Runde | Rundet x auf die nächste ganze Zahl ab. | 1¹ |
rsqrt | Gibt 1 / sqrt(x) zurück. | 1¹ |
Sättigen | Klammern x an den Bereich [0, 1] | 1 |
Zeichen | Berechnet das Zeichen von x. | 1¹ |
Sünde | Gibt den Sine von x zurück. | 1¹ |
sincos | Gibt den Sine und cosine von x zurück. | 1¹ |
Sinh | Gibt den hyperbolischen Sine von x zurück | 1¹ |
smoothstep | Gibt eine glatte Hermit-Interpolation zwischen 0 und 1 zurück. | 1¹ |
Sqrt | Quadratwurzel (pro Komponente) | 1¹ |
Schritt | Gibt zurück (x >= a) ? 1 : 0 | 1¹ |
Tan | Gibt die Tangente von x zurück. | 1¹ |
Tanh | Gibt den hyperbolischen Tangent von x zurück. | 1¹ |
tex1D(s, t) | 1D-Textur-Nachschlagevorgang. | 1 |
tex1D(s, t, ddx, ddy) | 1D-Textur-Nachschlagevorgang. | 2¹ |
tex1Dbias | 1D-Textur-Nachschlagevorgang mit Verzerrungen. | 2¹ |
tex1Dgrad | 1D-Textur-Nachschlagevorgang mit einem Farbverlauf. | 2¹ |
tex1Dlod | 1D-Textur-Nachschlagevorgang mit LOD. | 3¹ |
tex1Dproj | 1D-Textur-Nachschlagevorgang mit projektivem Teil. | 2¹ |
tex2D(s, t) | 2D-Textur-Nachschlagevorgang. | 1¹ |
tex2D(s, t, ddx, ddy) | 2D-Textur-Nachschlagevorgang. | 2¹ |
tex2Dbias | 2D-Textur-Nachschlagevorgang mit Verzerrung. | 2¹ |
tex2Dgrad | 2D-Textur-Nachschlagevorgang mit einem Farbverlauf. | 2¹ |
tex2Dlod | 2D-Textur-Nachschlagevorgang mit LOD. | 3 |
tex2Dproj | 2D-Textur-Nachschlagevorgang mit projektivem Teil. | 2¹ |
tex3D(s, t) | 3D-Textur-Nachschlagevorgang. | 1¹ |
tex3D(s, t, ddx, ddy) | 3D-Textur-Nachschlagevorgang. | 2¹ |
tex3Dbias | 3D-Textur-Nachschlagevorgang mit Verzerrung. | 2¹ |
tex3Dgrad | 3D-Textur-Nachschlagevorgang mit einem Farbverlauf. | 2¹ |
tex3Dlod | 3D-Textur-Nachschlagevorgang mit LOD. | 3¹ |
tex3Dproj | 3D-Textur-Nachschlagevorgang mit projektivem Teil. | 2¹ |
texCUBE(s, t) | Cube-Textur-Nachschlagevorgang. | 1¹ |
texCUBE(s, t, ddx, ddy) | Cube-Textur-Nachschlagevorgang. | 2¹ |
texCUBEbias | Cube-Textur-Nachschlagevorgang mit Verzerrungen. | 2¹ |
texCUBEgrad | Cube-Textur-Nachschlagevorgang mit einem Farbverlauf. | 2¹ |
texCUBElod | Cube-Textur-Nachschlagevorgang mit LOD. | 3¹ |
texCUBEproj | Cube-Textur-Nachschlagevorgang mit projektivem Teil. | 2¹ |
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