deriv_rtx (sm4 - asm)
Rate of change of contents of each float32 component of src0 (post-swizzle), with regard to RenderTarget x direction (rtx) or RenderTarget y direction.
|deriv_rtx[_sat] dest[.mask], [-]src0[_abs][.swizzle],|
[in] The address of the result of the operation.
[in] The component in the operation.
Only a single x,y derivative pair is computed for each 2x2 stamp of pixels.
This operation is hardware dependent.
Reference rasterizer implementation for triangles:
- Pixel Shader always runs Shader over 2x2 quad of pixels in lockstep (even through flow control, masking disabled pixels).
- Quads always have even numbered pixel coordinates (both x and y) for top-left pixel.
- Dummy pixels run off primitive if primitive is too small to fill a 2x2 quad.
- deriv_rtx is computed by first choosing 2 pixels: the current pixel and the other pixel with the same y coordinate from the quad. Then, the result is calculated as: src0(odd x pixel) - src0(even x pixel) [per-component]
- deriv_rty is computed by first choosing 2 pixels: the current pixel and the other pixel with the same x coordinate from the quad. Then, the result is calculated as: src0(odd y pixel) - src0(even y pixel) [per-component]
This instruction applies to the following shader stages:
|Vertex Shader||Geometry Shader||Pixel Shader|
This function is supported in the following shader models.
|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|