Mesa (8.0): i965/fs: Add a new fs_inst::regs_written function.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Feb 16 01:21:45 UTC 2012


Module: Mesa
Branch: 8.0
Commit: 740123fff754fac9da3e9807e2fcd05d66690866
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=740123fff754fac9da3e9807e2fcd05d66690866

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Feb 14 12:43:21 2012 -0800

i965/fs: Add a new fs_inst::regs_written function.

Certain instructions write more than one register.  Texturing, for
example, returns 4 registers.  (We set rlen to 4 even for TXS and float
shadow sampling.)  Some math functions return 2.  Most return 1.

The next commit introduces a use of this function.

Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
(cherry picked from commit 8ab02b511882857a09fceed0e93bf4a0b25c17b2)

---

 src/mesa/drivers/dri/i965/brw_fs.h |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 5fdc055..9a2cc08 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -286,6 +286,18 @@ public:
 	      offset == inst->offset);
    }
 
+   int regs_written()
+   {
+      if (is_tex())
+	 return 4;
+
+      /* The SINCOS and INT_DIV_QUOTIENT_AND_REMAINDER math functions return 2,
+       * but we don't currently use them...nor do we have an opcode for them.
+       */
+
+      return 1;
+   }
+
    bool is_tex()
    {
       return (opcode == SHADER_OPCODE_TEX ||




More information about the mesa-commit mailing list