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 |