On 02/12/2014 04:24 PM, m...@lunarg.com wrote: > 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.
Since you've analyised the failure in the real application, can you produce a minimal shader_runner test case that exhibits the same problem? Eric mentioned to me that he'd like to play with it to better understand what's going on... > 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. > */ > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev