i965/gen6/gs: Handle case where a GS doesn't allocate VUE
authorAndrii Simiklit <asimiklit.work@gmail.com>
Fri, 22 Jun 2018 07:59:57 +0000 (10:59 +0300)
committerIago Toral Quiroga <itoral@igalia.com>
Tue, 26 Jun 2018 06:18:55 +0000 (08:18 +0200)
commit232c5d75ea8c9536a896a17c9156b8e2ad36a779
tree683a247ca6e9d8d1e4c067a7cda625721d2e11da
parent318ff60ccd52ade7aa8c261d3e3ce028c524ec10
i965/gen6/gs: Handle case where a GS doesn't allocate VUE

We can not use the VUE Dereference flags combination for EOT
message under ILK and SNB because the threads are not initialized
there with initial VUE handle unlike Pre-IL.
So to avoid GPU hangs on SNB and ILK we need
to avoid usage of the VUE Dereference flags combination.
(Was tested only on SNB but according to the specification
SNB Volume 2 Part 1: 1.6.5.3, 1.6.5.6
the ILK must behave itself in the similar way)

v2: Approach to fix this issue was changed.
Instead of different EOT flags in the program end
we will create VUE every time even if GS produces no output.

v3: Clean up the patch.
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105399
CC: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
src/intel/compiler/gen6_gs_visitor.cpp