From c5cbb9a54345319d3924f9c7d0572fcc4739c516 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Fri, 23 Jun 2017 20:30:25 +0200 Subject: gallium/docs: add precise instruction modifier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v4: add comment about intermediate rounding step to MAD Signed-off-by: Karol Herbst Reviewed-by: Nicolai Hähnle Reviewed-by: Roland Scheidegger --- src/gallium/docs/source/tgsi.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/gallium/docs') diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 6214de3df01..0dd2ac02401 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -26,7 +26,13 @@ each of the components of *dst*. When this happens, the result is said to be Modifiers ^^^^^^^^^^^^^^^ -TGSI supports modifiers on inputs (as well as saturate modifier on instructions). +TGSI supports modifiers on inputs (as well as saturate and precise modifier +on instructions). + +For arithmetic instruction having a precise modifier certain optimizations +which may alter the result are disallowed. Example: *add(mul(a,b),c)* can't be +optimized to TGSI_OPCODE_MAD, because some hardware only supports the fused +MAD instruction. For inputs which have a floating point type, both absolute value and negation modifiers are supported (with absolute value being applied @@ -237,6 +243,9 @@ This instruction replicates its result. .. opcode:: MAD - Multiply And Add +Perform a * b + c. The implementation is free to decide whether there is an +intermediate rounding step or not. + .. math:: dst.x = src0.x \times src1.x + src2.x -- cgit v1.2.3