diff options
author | Mike Stroyan <mike@LunarG.com> | 2014-02-12 17:24:55 -0700 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2014-04-15 10:31:46 -0700 |
commit | 602510395a96a1f6ca29189e4f5cfb3f07f21d23 (patch) | |
tree | 42db4e4262256a22fb62905186a271cb0bf97ae6 /src | |
parent | ad48a9a319bf319215dec368378a719026376fc2 (diff) |
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@LunarG.com>
Tested-by: Tony Bertapelli <anthony.p.bertapelli@intel.com>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index c34eec4d7dc..480a3097b42 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. */ |