I don't have CHV or SKL hw or docs to try and confirm this, but this does what it claims to.
Reviewed-by: Chris Forbes <chr...@ijw.co.nz> On Sat, May 9, 2015 at 5:10 AM, Neil Roberts <n...@linux.intel.com> wrote: > The opt_sampler_eot optimisation seems to break when the last > instruction is SHADER_OPCODE_TG4. A bunch of Piglit tests end up doing > this so it causes a lot of regressions. I can't find any documentation > or known workarounds to indicate that this is expected behaviour, but > considering that this is probably a pretty unlikely situation in a > real use case we might as well disable it in order to avoid the > regressions. In total this fixes 451 tests. > > Reviewed-by: Ben Widawsky <b...@bwidawsk.net> > --- > > See here for some more discussion of this: > > http://lists.freedesktop.org/archives/mesa-dev/2015-May/083640.html > > As far as I can tell the Jenkins run mentioned in that email doesn't > seem to have any tests on Cherryview or Skylake so that probably > explains why it didn't pick up the regression. > > src/mesa/drivers/dri/i965/brw_fs.cpp | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 8dd680e..e9528e0 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -2655,6 +2655,16 @@ fs_visitor::opt_sampler_eot() > if (unlikely(tex_inst->is_head_sentinel()) || !tex_inst->is_tex()) > return false; > > + /* This optimisation doesn't seem to work for textureGather for some > + * reason. I can't find any documentation or known workarounds to indicate > + * that this is expected, but considering that it is probably pretty > + * unlikely that a shader would directly write out the results from > + * textureGather we might as well just disable it. > + */ > + if (tex_inst->opcode == SHADER_OPCODE_TG4 || > + tex_inst->opcode == SHADER_OPCODE_TG4_OFFSET) > + return false; > + > /* If there's no header present, we need to munge the LOAD_PAYLOAD as > well. > * It's very likely to be the previous instruction. > */ > -- > 1.9.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev