- 2018/05/31
- 7 分钟阅读时长
The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument and return type.
Name | Description | Minimum shader model |
---|---|---|
abort | Terminates the current draw or dispatch call being executed. | 4 |
abs | Absolute value (per component). | 1¹ |
acos | Returns the arccosine of each component of x. | 1¹ |
all | Test if all components of x are nonzero. | 1¹ |
AllMemoryBarrier | Blocks execution of all threads in a group until all memory accesses have been completed. | 5 |
AllMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all memory accesses have been completed and all threads in the group have reached this call. | 5 |
any | Test if any component of x is nonzero. | 1¹ |
asdouble | Reinterprets a cast value into a double. | 5 |
asfloat | Convert the input type to a float. | 4 |
asin | Returns the arcsine of each component of x. | 1¹ |
asint | Convert the input type to an integer. | 4 |
asuint | Reinterprets the bit pattern of a 64-bit type to a uint. | 5 |
asuint | Convert the input type to an unsigned integer. | 4 |
atan | Returns the arctangent of x. | 1¹ |
atan2 | Returns the arctangent of of two values (x,y). | 1¹ |
ceil | Returns the smallest integer which is greater than or equal to x. | 1¹ |
CheckAccessFullyMapped | Determines whether all values from a Sample or Load operation accessed mapped tiles in a tiled resource. | 5 |
clamp | Clamps x to the range [min, max]. | 1¹ |
clip | Discards the current pixel, if any component of x is less than zero. | 1¹ |
cos | Returns the cosine of x. | 1¹ |
cosh | Returns the hyperbolic cosine of x. | 1¹ |
countbits | Counts the number of bits (per component) in the input integer. | 5 |
cross | Returns the cross product of two 3D vectors. | 1¹ |
D3DCOLORtoUBYTE4 | Swizzles and scales components of the 4D vector xto compensate for the lack of UBYTE4 support in some hardware. | 1¹ |
ddx | Returns the partial derivative of x with respect to the screen-space x-coordinate. | 2¹ |
ddx_coarse | Computes a low precision partial derivative with respect to the screen-space x-coordinate. | 5 |
ddx_fine | Computes a high precision partial derivative with respect to the screen-space x-coordinate. | 5 |
ddy | Returns the partial derivative of x with respect to the screen-space y-coordinate. | 2¹ |
ddy_coarse | Computes a low precision partial derivative with respect to the screen-space y-coordinate. | 5 |
ddy_fine | Computes a high precision partial derivative with respect to the screen-space y-coordinate. | 5 |
degrees | Converts x from radians to degrees. | 1¹ |
determinant | Returns the determinant of the square matrix m. | 1¹ |
DeviceMemoryBarrier | Blocks execution of all threads in a group until all device memory accesses have been completed. | 5 |
DeviceMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all device memory accesses have been completed and all threads in the group have reached this call. | 5 |
distance | Returns the distance between two points. | 1¹ |
dot | Returns the dot product of two vectors. | 1 |
dst | Calculates a distance vector. | 5 |
errorf | Submits an error message to the information queue. | 4 |
EvaluateAttributeAtCentroid | Evaluates at the pixel centroid. | 5 |
EvaluateAttributeAtSample | Evaluates at the indexed sample location. | 5 |
EvaluateAttributeSnapped | Evaluates at the pixel centroid with an offset. | 5 |
exp | Returns the base-e exponent. | 1¹ |
exp2 | Base 2 exponent (per component). | 1¹ |
f16tof32 | Converts the float16 stored in the low-half of the uint to a float. | 5 |
f32tof16 | Converts an input into a float16 type. | 5 |
faceforward | Returns -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Gets the location of the first set bit starting from the highest order bit and working downward, per component. | 5 |
firstbitlow | Returns the location of the first set bit starting from the lowest order bit and working upward, per component. | 5 |
floor | Returns the greatest integer which is less than or equal to x. | 1¹ |
fma | Returns the double-precision fused multiply-addition of a * b + c. | 5 |
fmod | Returns the floating point remainder of x/y. | 1¹ |
frac | Returns the fractional part of x. | 1¹ |
frexp | Returns the mantissa and exponent of x. | 2¹ |
fwidth | Returns abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Returns the number of render-target samples. | 4 |
GetRenderTargetSamplePosition | Returns a sample position (x,y) for a given sample index. | 4 |
GroupMemoryBarrier | Blocks execution of all threads in a group until all group shared accesses have been completed. | 5 |
GroupMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all group shared accesses have been completed and all threads in the group have reached this call. | 5 |
InterlockedAdd | Performs a guaranteed atomic add of value to the dest resource variable. | 5 |
InterlockedAnd | Performs a guaranteed atomic and. | 5 |
InterlockedCompareExchange | Atomically compares the input to the comparison value and exchanges the result. | 5 |
InterlockedCompareStore | Atomically compares the input to the comparison value. | 5 |
InterlockedExchange | Assigns value to dest and returns the original value. | 5 |
InterlockedMax | Performs a guaranteed atomic max. | 5 |
InterlockedMin | Performs a guaranteed atomic min. | 5 |
InterlockedOr | Performs a guaranteed atomic or. | 5 |
InterlockedXor | Performs a guaranteed atomic xor. | 5 |
isfinite | Returns true if x is finite, false otherwise. | 1¹ |
isinf | Returns true if x is +INF or -INF, false otherwise. | 1¹ |
isnan | Returns true if x is NAN or QNAN, false otherwise. | 1¹ |
ldexp | Returns x * 2exp | 1¹ |
length | Returns the length of the vector v. | 1¹ |
lerp | Returns x + s(y - x). | 1¹ |
lit | Returns a lighting vector (ambient, diffuse, specular, 1) | 1¹ |
log | Returns the base-e logarithm of x. | 1¹ |
log10 | Returns the base-10 logarithm of x. | 1¹ |
log2 | Returns the base-2 logarithm of x. | 1¹ |
mad | Performs an arithmetic multiply/add operation on three values. | 5 |
max | Selects the greater of x and y. | 1¹ |
min | Selects the lesser of x and y. | 1¹ |
modf | Splits the value x into fractional and integer parts. | 1¹ |
msad4 | Compares a 4-byte reference value and an 8-byte source value and accumulates a vector of 4 sums. | 5 |
mul | Performs matrix multiplication using x and y. | 1 |
noise | Generates a random value using the Perlin-noise algorithm. | 1¹ |
normalize | Returns a normalized vector. | 1¹ |
pow | Returns xy. | 1¹ |
printf | Submits a custom shader message to the information queue. | 4 |
Process2DQuadTessFactorsAvg | Generates the corrected tessellation factors for a quad patch. | 5 |
Process2DQuadTessFactorsMax | Generates the corrected tessellation factors for a quad patch. | 5 |
Process2DQuadTessFactorsMin | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessIsolineTessFactors | Generates the rounded tessellation factors for an isoline. | 5 |
ProcessQuadTessFactorsAvg | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessQuadTessFactorsMax | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessQuadTessFactorsMin | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessTriTessFactorsAvg | Generates the corrected tessellation factors for a tri patch. | 5 |
ProcessTriTessFactorsMax | Generates the corrected tessellation factors for a tri patch. | 5 |
ProcessTriTessFactorsMin | Generates the corrected tessellation factors for a tri patch. | 5 |
radians | Converts x from degrees to radians. | 1 |
rcp | Calculates a fast, approximate, per-component reciprocal. | 5 |
reflect | Returns a reflection vector. | 1 |
refract | Returns the refraction vector. | 1¹ |
reversebits | Reverses the order of the bits, per component. | 5 |
round | Rounds x to the nearest integer | 1¹ |
rsqrt | Returns 1 / sqrt(x) | 1¹ |
saturate | Clamps x to the range [0, 1] | 1 |
sign | Computes the sign of x. | 1¹ |
sin | Returns the sine of x | 1¹ |
sincos | Returns the sine and cosine of x. | 1¹ |
sinh | Returns the hyperbolic sine of x | 1¹ |
smoothstep | Returns a smooth Hermite interpolation between 0 and 1. | 1¹ |
sqrt | Square root (per component) | 1¹ |
step | Returns (x >= a) ? 1 : 0 | 1¹ |
tan | Returns the tangent of x | 1¹ |
tanh | Returns the hyperbolic tangent of x | 1¹ |
tex1D(s, t) | 1D texture lookup. | 1 |
tex1D(s, t, ddx, ddy) | 1D texture lookup. | 2¹ |
tex1Dbias | 1D texture lookup with bias. | 2¹ |
tex1Dgrad | 1D texture lookup with a gradient. | 2¹ |
tex1Dlod | 1D texture lookup with LOD. | 3¹ |
tex1Dproj | 1D texture lookup with projective divide. | 2¹ |
tex2D(s, t) | 2D texture lookup. | 1¹ |
tex2D(s, t, ddx, ddy) | 2D texture lookup. | 2¹ |
tex2Dbias | 2D texture lookup with bias. | 2¹ |
tex2Dgrad | 2D texture lookup with a gradient. | 2¹ |
tex2Dlod | 2D texture lookup with LOD. | 3 |
tex2Dproj | 2D texture lookup with projective divide. | 2¹ |
tex3D(s, t) | 3D texture lookup. | 1¹ |
tex3D(s, t, ddx, ddy) | 3D texture lookup. | 2¹ |
tex3Dbias | 3D texture lookup with bias. | 2¹ |
tex3Dgrad | 3D texture lookup with a gradient. | 2¹ |
tex3Dlod | 3D texture lookup with LOD. | 3¹ |
tex3Dproj | 3D texture lookup with projective divide. | 2¹ |
texCUBE(s, t) | Cube texture lookup. | 1¹ |
texCUBE(s, t, ddx, ddy) | Cube texture lookup. | 2¹ |
texCUBEbias | Cube texture lookup with bias. | 2¹ |
texCUBEgrad | Cube texture lookup with a gradient. | 2¹ |
texCUBElod | Cube texture lookup with LOD. | 3¹ |
texCUBEproj | Cube texture lookup with projective divide. | 2¹ |
transpose | Returns the transpose of the matrix m. | 1 |
trunc | Truncates floating-point value(s) to integer value(s) | 1 |