Fonctions intrinsèques

Le tableau suivant répertorie les fonctions intrinsèques disponibles en HLSL. Chaque fonction a une brève description et un lien vers une page de référence qui contient plus de détails sur l’argument d’entrée et le type de retour.

Nom Description Modèle de nuanceur minimal
arrêté Met fin à l’appel de dessin ou de distribution en cours d’exécution. 4
absolue Valeur absolue (par composant). 1 ¹
ACOS Retourne l’arc cosinus de chaque composant de x. 1 ¹
tous les Teste si tous les composants de x sont non nuls. 1 ¹
AllMemoryBarrier Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès à la mémoire aient été effectués. 5
AllMemoryBarrierWithGroupSync Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès à la mémoire aient été effectués et que tous les threads du groupe aient atteint cet appel. 5
aux Teste si un composant de x est différent de zéro. 1 ¹
asdouble Réinterprète une valeur de cast en un double. 5
asfloat Convertit le type d’entrée en valeur float. 4
ASIN Retourne l’arc sinus de chaque composant de x. 1 ¹
asint Convertit le type d’entrée en entier. 4
asuint Réinterprète le modèle binaire d’un type de bits 64 sur un uint. 5
asuint Convertit le type d’entrée en entier non signé. 4
atan Retourne l’arc tangente de x. 1 ¹
atan2 Retourne l’arc tangente de deux valeurs (x, y). 1 ¹
ceil Retourne le plus petit entier qui est supérieur ou égal à x. 1 ¹
CheckAccessFullyMapped Détermine si toutes les valeurs d’un exemple ou d’une opération de chargement ont accédé à des vignettes mappées dans une ressource en mosaïque. 5
bride Fixe x à la plage [ Min ] . max. 1 ¹
capture Ignore le pixel actuel, si un composant de x est inférieur à zéro. 1 ¹
COS Retourne le cosinus de x. 1 ¹
cosh Retourne le cosinus hyperbolique de x. 1 ¹
countbits Compte le nombre de bits (par composant) dans l’entier d’entrée. 5
travers Retourne le produit croisé de deux vecteurs 3D. 1 ¹
D3DCOLORtoUBYTE4 Swizzles et met à l’échelle les composants du vecteur 4D xto compensent l’absence de prise en charge de UBYTE4 sur un matériel. 1 ¹
DDX Retourne la dérivée partielle de x par rapport à la coordonnée x de l’espace d’écran. 2 ¹
_grossiste DDX Calcule une dérivée partielle de faible précision par rapport à la coordonnée x de l’espace d’écran. 5
DDX _ Calcule un dérivée partiel de haute précision par rapport à la coordonnée x de l’espace d’écran. 5
ddy Retourne la dérivée partielle de x en ce qui concerne la coordonnée y de l’espace d’écran. 2 ¹
_grossiste d’ddy Calcule une dérivée partielle de faible précision par rapport à la coordonnée y de l’espace d’écran. 5
ddy _ fin Calcule un dérivée partiel de haute précision par rapport à la coordonnée y de l’espace d’écran. 5
niveaux Convertit x de radians en degrés. 1 ¹
déterminantes Retourne le déterminant de la matrice carrée m. 1 ¹
DeviceMemoryBarrier Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès à la mémoire de l’appareil aient été effectués. 5
DeviceMemoryBarrierWithGroupSync Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès à la mémoire de l’appareil aient été effectués et que tous les threads du groupe aient atteint cet appel. 5
distance Retourne la distance entre deux points. 1 ¹
cédé Retourne le produit scalaire de deux vecteurs. 1
destination Calcule un vecteur de distance. 5
errorf Envoie un message d’erreur à la file d’attente d’informations. 4
EvaluateAttributeAtCentroid Évalue au centre de gravité du pixel. 5
EvaluateAttributeAtSample Évalue à l’emplacement de l’exemple indexé. 5
EvaluateAttributeSnapped Évalue le centre de gravité des pixels avec un décalage. 5
venir Retourne l’exposant de base e. 1 ¹
EXP2 Exposant de base 2 (par composant). 1 ¹
f16tof32 Convertit le float16 stocké dans la moitié inférieure du uint en un float. 5
f32tof16 Convertit une entrée en type float16. 5
faceforward Retourne-n * Sign (point (i, ng)). 1 ¹
firstbithigh Obtient l’emplacement du premier bit défini à partir du bit de poids le plus élevé et du travail vers le bas, par composant. 5
firstbitlow Retourne l’emplacement du premier bit défini à partir du bit d’ordre le plus bas et du travail vers le haut, par composant. 5
Floor Retourne le plus grand entier qui est inférieur ou égal à x. 1 ¹
FMA Retourne l’addition fusionnée double précision d’un * b + c. 5
fmod Retourne le reste à virgule flottante de x/y. 1 ¹
frac Retourne la partie fractionnaire de x. 1 ¹
frexp Retourne la mantisse et l’exposant de x. 2 ¹
fwidth Retourne ABS (DDX (x)) + ABS (ddY (x)) 2 ¹
GetRenderTargetSampleCount Retourne le nombre d’exemples de cibles de rendu. 4
GetRenderTargetSamplePosition Retourne une position d’échantillon (x, y) pour un exemple d’index donné. 4
GroupMemoryBarrier Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès partagés au groupe aient été effectués. 5
GroupMemoryBarrierWithGroupSync Bloque l’exécution de tous les threads dans un groupe jusqu’à ce que tous les accès partagés au groupe aient été effectués et que tous les threads du groupe aient atteint cet appel. 5
InterlockedAdd Effectue un ajout atomique de valeur garanti à la variable de ressource dest. 5
InterlockedAnd Exécute un et atomique garanti. 5
InterlockedCompareExchange Compare atomiquement l’entrée à la valeur de comparaison et échange le résultat. 5
InterlockedCompareStore Compare atomiquement l’entrée à la valeur de comparaison. 5
Interlockedexchang Affecte la valeur à dest et retourne la valeur d’origine. 5
InterlockedMax Effectue un nombre maximal atomique garanti. 5
InterlockedMin Exécute un minimum atomique garanti. 5
Interverrouiller Exécute un ou atomique garanti. 5
InterlockedXor Exécute un XOR atomique garanti. 5
isFinite, Retourne la valeur true si x est fini, false dans le cas contraire. 1 ¹
isinf, Retourne la valeur true si x est + INF ou-INF ; sinon, false. 1 ¹
isNaN Retourne la valeur true si x est NAN ou QNAN ; sinon, false. 1 ¹
ldexp Retourne x * 2exp 1 ¹
base Retourne la longueur du vecteur v. 1 ¹
lerp Retourne x + s (y-x). 1 ¹
orange Retourne un vecteur d’éclairage (ambiant, diffuse, spéculaire, 1) 1 ¹
Sign Retourne le logarithme de base e de x. 1 ¹
log10 Retourne le logarithme en base 10 de x. 1 ¹
Log2 Retourne le logarithme de base 2 de x. 1 ¹
Mad Effectue une opération de multiplication/ajout arithmétique sur trois valeurs. 5
max Sélectionne la valeur supérieure de x et y. 1 ¹
minute(s) Sélectionne le plus petit de x et y. 1 ¹
modf, Divise la valeur x en parties fractionnaires et entières. 1 ¹
msad4 Compare une valeur de référence de 4 octets et une valeur source de 8 octets et accumule un vecteur de 4 sommes. 5
mul Effectue une multiplication de matrice à l’aide de x et y. 1
bruit Génère une valeur aléatoire à l’aide de l’algorithme perl-Noise. 1 ¹
normalize Retourne un vecteur normalisé. 1 ¹
Poe Retourne xy. 1 ¹
printf Envoie un message de nuanceur personnalisé à la file d’attente d’informations. 4
Process2DQuadTessFactorsAvg Génère les facteurs de pavage corrigés pour un correctif Quad. 5
Process2DQuadTessFactorsMax Génère les facteurs de pavage corrigés pour un correctif Quad. 5
Process2DQuadTessFactorsMin Génère les facteurs de pavage corrigés pour un correctif Quad. 5
ProcessIsolineTessFactors Génère les facteurs de pavage arrondis pour une isoligne. 5
ProcessQuadTessFactorsAvg Génère les facteurs de pavage corrigés pour un correctif Quad. 5
ProcessQuadTessFactorsMax Génère les facteurs de pavage corrigés pour un correctif Quad. 5
ProcessQuadTessFactorsMin Génère les facteurs de pavage corrigés pour un correctif Quad. 5
ProcessTriTessFactorsAvg Génère les facteurs de pavage corrigés pour un correctif triple. 5
ProcessTriTessFactorsMax Génère les facteurs de pavage corrigés pour un correctif triple. 5
ProcessTriTessFactorsMin Génère les facteurs de pavage corrigés pour un correctif triple. 5
radians Convertit x de degrés en radians. 1
rcp Calcule une réciproque rapide, approximative et par composant. 5
correspond Retourne un vecteur de réflexion. 1
fraction Retourne le vecteur de réfraction. 1 ¹
reversebits Inverse l’ordre des bits, par composant. 5
Round Arrondit x à l’entier le plus proche 1 ¹
rsqrt, Retourne 1/sqrt (x) 1 ¹
saturer Fixe x à la plage [ 0, 1] 1
expéditeur Calcule le signe de x. 1 ¹
Sin Retourne le sinus de x 1 ¹
SinCos, Retourne le sinus et le cosinus de x. 1 ¹
Sinh Retourne le sinus hyperbolique de x 1 ¹
smoothstep Retourne une interpolation Smooth Hermite entre 0 et 1. 1 ¹
racine Racine carrée (par composant) 1 ¹
première Retourne (x >= a) ? 1 : 0 1 ¹
Tan Retourne la tangente de x 1 ¹
tanh Retourne la tangente hyperbolique de x 1 ¹
tex1D (s, t) recherche de texture 1D. 1
tex1D (s, t, DDX, ddy) recherche de texture 1D. 2 ¹
tex1Dbias recherche de texture 1D avec décalage. 2 ¹
tex1Dgrad recherche de texture 1D avec un dégradé. 2 ¹
tex1Dlod recherche de texture 1D avec LOD. 3 ¹
tex1Dproj recherche de texture 1D avec division projective. 2 ¹
tex2D (s, t) recherche de texture 2D. 1 ¹
tex2D (s, t, DDX, ddy) recherche de texture 2D. 2 ¹
tex2Dbias recherche de texture 2D avec décalage. 2 ¹
tex2Dgrad recherche de texture 2D avec un dégradé. 2 ¹
tex2Dlod recherche de texture 2D avec LOD. 3
tex2Dproj recherche de texture 2D avec division projective. 2 ¹
tex3D (s, t) recherche de texture 3D. 1 ¹
tex3D (s, t, DDX, ddy) recherche de texture 3D. 2 ¹
tex3Dbias recherche de texture 3D avec décalage. 2 ¹
tex3Dgrad recherche de texture 3D avec un dégradé. 2 ¹
tex3Dlod recherche de texture 3D avec LOD. 3 ¹
tex3Dproj recherche de texture 3D avec division projective. 2 ¹
texCUBE (s, t) Recherche de texture de cube. 1 ¹
texCUBE (s, t, DDX, ddy) Recherche de texture de cube. 2 ¹
texCUBEbias Recherche de texture de cube avec décalage. 2 ¹
texCUBEgrad Recherche de texture de cube avec un dégradé. 2 ¹
texCUBElod Recherche de texture de cube avec LOD. 3 ¹
texCUBEproj Recherche de texture de cube avec division projective. 2 ¹
permuter Retourne la permutation de la matrice m. 1
trunc Tronque la ou les valeurs à virgule flottante en valeurs entières 1

¹ consultez la page de référence pour connaître les restrictions.

Types de composants et de modèles

Les déclarations de fonctions intrinsèques HLSL utilisent des types de composants et des types de modèles pour les arguments de paramètre d’entrée et les valeurs de retour. Les types disponibles sont répertoriés dans le tableau suivant.

Ces types de modèles Description Prendre en charge ces types de données
matrice jusqu’à 16 composants en fonction de la déclaration Types HLSL de base
object sampler, objet sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
scalaire 1 composant Types HLSL de base
vecteur 1 composant minimum, 4 composants maximum (inclus) Types HLSL de base

Voir aussi

Référence pour le langage HLSL