diff options
Diffstat (limited to 'src/gallium/docs')
-rw-r--r-- | src/gallium/docs/source/tgsi.rst | 92 |
1 files changed, 79 insertions, 13 deletions
diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 84b0ed60a80..e20af79d9f3 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -1808,7 +1808,10 @@ Double ISA The double-precision opcodes reinterpret four-component vectors into two-component vectors with doubled precision in each component. -Support for these opcodes is XXX undecided. :T +.. opcode:: DABS - Absolute + + dst.xy = |src0.xy| + dst.zw = |src0.zw| .. opcode:: DADD - Add @@ -1818,30 +1821,37 @@ Support for these opcodes is XXX undecided. :T dst.zw = src0.zw + src1.zw - -.. opcode:: DDIV - Divide +.. opcode:: DSEQ - Set on Equal .. math:: - dst.xy = src0.xy / src1.xy + dst.x = src0.xy == src1.xy ? \sim 0 : 0 - dst.zw = src0.zw / src1.zw + dst.z = src0.zw == src1.zw ? \sim 0 : 0 -.. opcode:: DSEQ - Set on Equal +.. opcode:: DSNE - Set on Equal .. math:: - dst.xy = src0.xy == src1.xy ? 1.0F : 0.0F + dst.x = src0.xy != src1.xy ? \sim 0 : 0 - dst.zw = src0.zw == src1.zw ? 1.0F : 0.0F + dst.z = src0.zw != src1.zw ? \sim 0 : 0 .. opcode:: DSLT - Set on Less than .. math:: - dst.xy = src0.xy < src1.xy ? 1.0F : 0.0F + dst.x = src0.xy < src1.xy ? \sim 0 : 0 + + dst.z = src0.zw < src1.zw ? \sim 0 : 0 - dst.zw = src0.zw < src1.zw ? 1.0F : 0.0F +.. opcode:: DSGE - Set on Greater equal + +.. math:: + + dst.x = src0.xy >= src1.xy ? \sim 0 : 0 + + dst.z = src0.zw >= src1.zw ? \sim 0 : 0 .. opcode:: DFRAC - Fraction @@ -1870,13 +1880,14 @@ exponent of its source to ``dst0``, and the significand to ``dst1``, such that .. opcode:: DLDEXP - Multiply Number by Integral Power of 2 -This opcode is the inverse of :opcode:`DFRACEXP`. +This opcode is the inverse of :opcode:`DFRACEXP`. The second +source is an integer. .. math:: - dst.xy = src0.xy \times 2^{src1.xy} + dst.xy = src0.xy \times 2^{src1.x} - dst.zw = src0.zw \times 2^{src1.zw} + dst.zw = src0.zw \times 2^{src1.y} .. opcode:: DMIN - Minimum @@ -1928,6 +1939,61 @@ This opcode is the inverse of :opcode:`DFRACEXP`. dst.zw = \sqrt{src.zw} +.. opcode:: DRSQ - Reciprocal Square Root + +.. math:: + + dst.xy = \frac{1}{\sqrt{src.xy}} + + dst.zw = \frac{1}{\sqrt{src.zw}} + +.. opcode:: F2D - Float to Double + +.. math:: + + dst.xy = double(src0.x) + + dst.zw = double(src0.y) + +.. opcode:: D2F - Double to Float + +.. math:: + + dst.x = float(src0.xy) + + dst.y = float(src0.zw) + +.. opcode:: I2D - Int to Double + +.. math:: + + dst.xy = double(src0.x) + + dst.zw = double(src0.y) + +.. opcode:: D2I - Double to Int + +.. math:: + + dst.x = int(src0.xy) + + dst.y = int(src0.zw) + +.. opcode:: U2D - Unsigned Int to Double + +.. math:: + + dst.xy = double(src0.x) + + dst.zw = double(src0.y) + +.. opcode:: D2U - Double to Unsigned Int + +.. math:: + + dst.x = unsigned(src0.xy) + + dst.y = unsigned(src0.zw) .. _samplingopcodes: |