i965: Apply a homebrew workaround for GPU hang in OGLC api-texcoord.
authorEric Anholt <eric@anholt.net>
Tue, 19 Jul 2011 22:06:15 +0000 (15:06 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 20 Jul 2011 18:42:53 +0000 (11:42 -0700)
commit3e5d36267d8c9536490c902f785137a7fa0637fc
tree69b10f53113f5bd73695fb1947a66cd91622815e
parent407785d0e97abd0cc51a6e360089111973748e7c
i965: Apply a homebrew workaround for GPU hang in OGLC api-texcoord.

The behavior of flushes in the hardware is a maze of twisty passages,
and strangely the VS constants appear to be loaded during a pipeline
flush instead of at the time of the packet emit according to the
simulator.  On moving the STATE_BASE_ADDRESS packet to where it really
needed to live (in order for data loads by other packets to be
correct), we sometimes no longer got a flush between those packets
where we apparently needed it.  This replicates the flushes implied by
a STATE_BASE_ADDRESS update, fixing the GPU hangs in OGLC and the
"engine" demo.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36821
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39257
Tested-by: Keith Packard <keithp@keithp.com> (bzflag and etracer fixed)
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen6_vs_state.c