rsq - vs

Computes the reciprocal square root (positive only) of the source scalar.


rsq dst, src



  • dst is the destination register.
  • src is a source register. Source register requires explicit use of replicate swizzle, that is, exactly one of the .x, .y, .z, .w swizzle components (or the .r, .g, .b, .a equivalents) must be specified.


Vertex shader versions1_12_02_x2_sw3_03_sw


The following code fragment shows the operations performed.

float f = abs(src0);
if (f == 0)
    f = FLT_MAX
    if (f != 1.0)
        f = 1.0/(float)sqrt(f);

dest.z = dest.y = dest.z = dest.w = f;

The absolute value is taken before processing.

Precision should be at least 1.0/(2²²) absolute error over the range (1.0, 4.0) because common implementations will separate mantissa and exponent.

If source has no subscripts, the x-component is used. The output must be exactly 1.0 if the input is exactly 1.0. A source of 0.0 yields infinity.

Related topics

Vertex Shader Instructions