Mesa (master): i965: Avoid dependency hints on math opcodes

Matt Turner mattst88 at kemper.freedesktop.org
Tue Apr 15 17:30:09 UTC 2014


Module: Mesa
Branch: master
Commit: 602510395a96a1f6ca29189e4f5cfb3f07f21d23
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=602510395a96a1f6ca29189e4f5cfb3f07f21d23

Author: Mike Stroyan <mike at LunarG.com>
Date:   Wed Feb 12 17:24:55 2014 -0700

i965: Avoid dependency hints on math opcodes

  Putting NoDDClr and NoDDChk dependency control on instruction
sequences that include math opcodes can cause corruption of channels.
Treat math opcodes like send opcodes and suppress dependency hinting.

Signed-off-by: Mike Stroyan <mike at LunarG.com>
Tested-by: Tony Bertapelli <anthony.p.bertapelli at intel.com>
Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_vec4.cpp |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index c34eec4..480a309 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -849,6 +849,14 @@ vec4_visitor::opt_set_dependency_control()
             continue;
          }
 
+         /* Dependency control does not work well over math instructions.
+          */
+         if (inst->is_math()) {
+            memset(last_grf_write, 0, sizeof(last_grf_write));
+            memset(last_mrf_write, 0, sizeof(last_mrf_write));
+            continue;
+         }
+
          /* Now, see if we can do dependency control for this instruction
           * against a previous one writing to its destination.
           */




More information about the mesa-commit mailing list