Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Samples data from the specified Element/texture using the specified address and the filtering mode identified by the given sampler.
sample_d[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler, srcXDerivatives[.swizzle], srcYDerivatives[.swizzle] |
---|
Item | Description |
---|---|
dest |
[in] The address of the results of the operation. |
srcAddress |
[in] A set of texture coordinates. For more information see the sample instruction. |
srcResource |
[in] A texture register. For more information see the sample instruction. |
srcSampler |
[in] A sampler register. For more information see the sample instruction. |
srcXDerivatives |
[in] The derivatives for the source address in the x direction. For more information, see the Remarks section. |
srcYDerivatives |
[in] The derivatives for the source address in the y direction. For more information, see the Remarks section. |
Remarks
This instruction behaves like the sample instruction, except that derivatives for the source address in the x direction and the y direction are provided by extra parameters, srcXDerivatives and srcYDerivatives, respectively. These derivatives are in normalized texture coordinate space.
The r, g and b components of srcXDerivatives (POS-swizzle) provide du/dx, dv/dx and dw/dx. The 'a' component (POS-swizzle) is ignored.
The r, g and b components of srcYDerivatives (POS-swizzle) provide du/dy, dv/dy and dw/dy. The 'a' component (POS-swizzle) is ignored.
Unlike the sample instruction, which is permitted to share a single LOD calculation across a 2x2 stamp, sample_d must calculate LOD completely independently, per-pixel when used in the Pixel Shader.
If the derivative inputs to sample_d came from derivative calculation instructions in the Pixel Shader and the values include INF/NaN, the behavior of sample_d may not match the sample instruction, which implicitly computes the derivative. The INF/NaN values may affect the LOD calculation differently.
Fetching from an input slot that has nothing bound to it returns 0 for all components.
Restrictions
- sample_d inherits the same restrictions as the sample instruction, plus additional a restriction below for its additional parameters.
- srcXDerivatives and srcYDerivatives must be temp (r#/x#), constantBuffer (cb#), input (v#) registers or immediate value(s).
This instruction applies to the following shader stages:
Vertex Shader | Geometry Shader | Pixel Shader |
---|---|---|
X | X | x |
Minimum Shader Model
This function is supported in the following shader models.
Shader Model | Supported |
---|---|
Shader Model 5 | yes |
Shader Model 4.1 | yes |
Shader Model 4 | yes |
Shader Model 3 (DirectX HLSL) | no |
Shader Model 2 (DirectX HLSL) | no |
Shader Model 1 (DirectX HLSL) | no |