From: Mike Stroyan <m...@lunarg.com> 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 <m...@lunarg.com> Tested-by: Tony Bertapelli <anthony.p.bertape...@intel.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 dd23ed4..1c42ca8 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -717,6 +717,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. */ -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev