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 | Minimales Shadermodell |
---|---|---|
abort | Beendet den aktuellen Draw- oder Dispatch-Aufruf, der ausgeführt wird. | 4 |
abs | Absoluter Wert (pro Komponente). | 1¹ |
acos | Gibt den Arkuskosinus jeder Komponente von x zurück. | 1¹ |
all | Testen Sie, ob alle Komponenten von x ungleich null sind. | 1¹ |
AllMemoryBarrier | Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen sind. | 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 |
beliebig | Testen Sie, ob eine Komponente von x ungleich null ist. | 1¹ |
asdouble | Interpretiert einen Umwandlungswert erneut in einen Double-Wert. | 5 |
asfloat | Konvertieren Sie den Eingabetyp in einen Gleitkommawert. | 4 |
asin | Gibt den Arkussinus jeder Komponente von x zurück. | 1¹ |
asint | Konvertieren Sie den Eingabetyp in eine ganze Zahl. | 4 |
asuint | Interpretiert das Bitmuster eines 64-Bit-Typs auf einen Uint neu. | 5 |
asuint | Konvertieren Sie den Eingabetyp in eine ganze Zahl ohne Vorzeichen. | 4 |
atan | Gibt den Arkustangens von x zurück. | 1¹ |
atan2 | Gibt den Arkustangens 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 Sample- Load-Vorgang auf zugeordnete Kacheln in einer gekachelten Ressource zugegriffen haben. | 5 |
clamp | Bindet x an den Bereich [min, max]. | 1¹ |
clip | Verwirft das aktuelle Pixel, wenn eine beliebige Komponente von x kleiner als 0 ist. | 1¹ |
cos | Gibt den Kosinus von x zurück. | 1¹ |
cosh | Gibt den hyperbolischen Kosinus von x zurück. | 1¹ |
countbits | Zählt die Anzahl der Bits (pro Komponente) in der Eingabe-Ganzzahl. | 5 |
cross | Gibt das Kreuzprodukt von zwei 3D-Vektoren zurück. | 1¹ |
D3DCOLORtoUBYTE4 | Swizzlet und skaliert Komponenten des 4D-Vektors x, um den Mangel an UBYTE4-Unterstützung in mancher Hardware zu kompensieren. | 1¹ |
ddx | Gibt die teilweise Ableitung von x in Bezug auf die X-Koordinate des Bildschirmraums zurück. | 2¹ |
ddx_coarse | Berechnet eine partielle Ableitung mit geringer Genauigkeit in Bezug auf die X-Koordinate des Bildschirmraums. | 5 |
ddx_fine | Berechnet ein teilweises Ableitungsergebnis mit hoher Genauigkeit in Bezug auf die X-Koordinate des Bildschirmraums. | 5 |
ddy | Gibt die teilweise Ableitung von x in Bezug auf die Y-Koordinate des Bildschirmraums zurück. | 2¹ |
ddy_coarse | Berechnet eine partielle Ableitung mit geringer Genauigkeit in Bezug auf die Y-Koordinate des Bildschirmraums. | 5 |
ddy_fine | Berechnet eine teilweise Ableitung mit hoher Genauigkeit in Bezug auf die Y-Koordinate des Bildschirmraums. | 5 |
degrees | Wandelt x von Bogenmaß in Grad um. | 1¹ |
determinant | Gibt die Determinante der Quadratmatrix m zurück. | 1¹ |
DeviceMemoryBarrier | Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen sind. | 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¹ |
dot | Gibt das Skalarprodukt zweier Vektoren zurück. | 1 |
dst | Berechnet einen Entfernungsvektor. | 5 |
errorf | Sendet eine Fehlermeldung an die Informationswarteschlange. | 4 |
EvaluateAttributeCentroid | Wertet am Pixelschwerpunkt aus. | 5 |
EvaluateAttributeAtSample | Wertet am indizierten Beispielspeicherort aus. | 5 |
EvaluateAttributeSnapped | Wertet am Pixelschwerpunkt mit einem Offset aus. | 5 |
exp | Gibt den Basis-e-Exponenten zurück. | 1¹ |
exp2 | Basis-2-Exponente (pro Komponente). | 1¹ |
f16tof32 | Wandelt den in der unteren Hälfte des Uint gespeicherten Float16-Werts in einen Gleitkommawert um. | 5 |
f32tof16 | Konvertiert eine Eingabe in einen Float16-Typ. | 5 |
faceforward | Gibt -n * Vorzeichen(Punkt(i, ng)) zurück. | 1¹ |
firstbithigh | Ruft die Position des ersten festgelegten Bits ab dem Bit mit der höchsten Priorität ab und arbeitet sich nach unten vor, pro Komponente. | 5 |
firstbitlow | Gibt die Position des ersten festgelegten Bits ab dem Bit mit der niedrigsten Priorität zurück und arbeitet sich nach oben vor, pro Komponente. | 5 |
floor | Gibt die größte ganze Zahl zurück, die kleiner oder gleich x ist. | 1¹ |
fma | Gibt die doppelpräzisierte, verschmolzene Multiplikations-Addition eines a * b + c zurück. | 5 |
fmod | Gibt den Gleitkommarest von x/y zurück. | 1¹ |
frac | Gibt den Bruchteil von x zurück. | 1¹ |
frexp | Gibt die Mantissa und den Exponenten 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 Addition eines Werts zur Dest-Ressourcenvariable aus. | 5 |
InterlockedAnd | Führt ein garantiertes atomisches and aus. | 5 |
InterlockedCompareExchange | Vergleicht atomar die Eingabe mit dem Vergleichswert und tauscht das Ergebnis aus. | 5 |
InterlockedCompareStore | Vergleicht atomar die Eingabe mit dem Vergleichswert. | 5 |
InterlockedExchange | Weist dem Dest einen Wert zu und gibt den ursprünglichen Wert zurück. | 5 |
InterlockedMax | Führt ein garantiertes atomisches max aus. | 5 |
InterlockedMin | Führt ein garantiertes atomisches min aus. | 5 |
InterlockedOr | Führt ein garantiertes atomisches or aus. | 5 |
InterlockedXor | Führt ein garantiertes atomisches 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, andernfalls „false“. | 1¹ |
ldexp | Gibt x * 2exp zurück | 1¹ |
length | Gibt die Länge des Vektors v zurück. | 1¹ |
lerp | Gibt x + s(y - x) zurück. | 1¹ |
lit | Gibt einen Beleuchtungsvektor zurück (Umgebung, diffus, Glanz, 1) | 1¹ |
log | Gibt den Logarithmus mit der Basis e von x zurück. | 1¹ |
log10 | Gibt den Logarithmus mit der Basis 10 von x zurück. | 1¹ |
log2 | Gibt den Logarithmus mit der Basis 2 von x zurück. | 1¹ |
mad | Führt einen arithmetischen Multiplikations-/Additions-Vorgang für drei Werte aus. | 5 |
max | Wählt den größeren Wert von x und y aus. | 1¹ |
min | Wählt den kleineren Wert von x und y aus. | 1¹ |
modf | Teilt den Wert x in Bruch- und Ganzzahlteile 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 mit x und y aus. | 1 |
noise | Generiert einen Zufallswert mithilfe des Perlin-Rauschalgorithmus. | 1¹ |
normalize | Gibt einen normalisierten Vektor zurück. | 1¹ |
pow | Gibt xyzurü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 |
radians | Wandelt x von Grad in Bogenmaß um. | 1 |
rcp | Berechnet einen schnellen, ungefähren Kehrwert pro Komponente. | 5 |
reflect | Gibt einen Spiegelungsvektor zurück. | 1 |
refract | Gibt den Brechungsvektor zurück. | 1¹ |
reversebits | Kehrt die Reihenfolge der Bits pro Komponente um. | 5 |
round | Rundet x auf die nächste ganze Zahl auf | 1¹ |
rsqrt | Gibt 1 / sqrt(x) zurück | 1¹ |
saturate | Bindet x an den Bereich [0, 1] | 1 |
sign | Berechnet das Zeichen von x. | 1¹ |
sin | Gibt den Sinus von x zurück. | 1¹ |
sincos | Gibt den Sinus und Kosinus von x zurück. | 1¹ |
sinh | Gibt den hyperbolischen Sinus von x zurück | 1¹ |
smoothstep | Gibt eine glatte Hermiteinterpolation zwischen 0 und 1 zurück. | 1¹ |
sqrt | Quadratwurzel (pro Komponente) | 1¹ |
step | Gibt (x >= a) zurück? 1 : 0 | 1¹ |
tan | Gibt den Tangens von x zurück | 1¹ |
tanh | Gibt den hyperbolischen Tangens von x zurück | 1¹ |
tex1D(s, t) | 1D-Textursuche. | 1 |
tex1D(s, t, ddx, ddy) | 1D-Textursuche. | 2¹ |
tex1Dbias | 1D-Textursuche mit Verzerrung. | 2¹ |
tex1Dgrad | 1D-Textursuche mit einem Gradienten. | 2¹ |
tex1Dlod | 1D-Textursuche mit LOD. | 3¹ |
tex1Dproj | 1D-Textursuche mit projizierter Division. | 2¹ |
tex2D(s, t) | 2D-Textursuche. | 1¹ |
tex2D(s, t, ddx, ddy) | 2D-Textursuche. | 2¹ |
tex2Dbias | 2D-Textursuche mit Verzerrung. | 2¹ |
tex2Dgrad | 2D-Textursuche mit einem Gradienten. | 2¹ |
tex2Dlod | 2D-Textursuche mit LOD. | 3 |
tex2Dproj | 2D-Textursuche mit projizierter Division. | 2¹ |
tex3D(s, t) | 3D-Textursuche. | 1¹ |
tex3D(s, t, ddx, ddy) | 3D-Textursuche. | 2¹ |
tex3Dbias | 3D-Textursuche mit Verzerrung. | 2¹ |
tex3Dgrad | 3D-Textursuche mit einem Gradienten. | 2¹ |
tex3Dlod | 3D-Textursuche mit LOD. | 3¹ |
tex3Dproj | 3D-Textursuche mit projizierter Division. | 2¹ |
texCUBE(s, t) | Würfeltextursuche. | 1¹ |
texCUBE(s, t, ddx, ddy) | Würfeltextursuche. | 2¹ |
texCUBEbias | Würfeltextursuche mit Verzerrung. | 2¹ |
texCUBEgrad | Würfeltextursuche mit einem Gradienten. | 2¹ |
texCUBElod | Würfeltextursuche mit LOD. | 3¹ |
texCUBEproj | Würfeltextursuche mit projizierter Division. | 2¹ |
transpose | Gibt die Transponierung der Matrix m zurück. | 1 |
trunc | Schneidet Gleitkommawerte auf ganzzahlige Werte ab | 1 |
¹ siehe Referenzseite für Einschränkungen.
Komponenten- und Vorlagentypen
Die systeminternen HLSL-Funktionsdeklarationen verwenden Komponententypen und Vorlagentypen für Eingabeparameterargumente und Rückgabewerte. In der folgenden Tabelle sind die verfügbaren Typen aufgeführt.
Diese Vorlagentypen | Beschreibung | Unterstützen diese Datentypen |
---|---|---|
Matrix | bis zu 16 Komponenten abhängig von der Deklaration | Grundlegende HLSL-Typen |
Objekt | Samplerobjekt | sampler, sampler1D, sampler2D, sampler3D, samplerCUBE |
Skalar | 1 Komponente | Grundlegende HLSL-Typen |
Vektor | Mindestens 1 Komponente, maximal 4 Komponenten (einschließlich) | Grundlegende HLSL-Typen |
Siehe auch