i965: Apply post-sync non-zero workaround to homebrew workaround.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 21 Oct 2011 08:03:37 +0000 (01:03 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 24 Oct 2011 20:32:33 +0000 (13:32 -0700)
In commit 3e5d3626, Eric added a homebrew workaround to fix GPU hangs in
the Mesa "engine" demo and oglc's api-texcoord test.

Unfortunately, his PIPE_CONTROL contains a Depth Stall, which
necessitates the post-sync non-zero workaround,

Fixes GPU hangs in Civilization 4, PlaneShift, and 3DMMES.
Hopefully Heroes of Newerth as well, though I haven't tested that.

NOTE: This is candidate for the 7.11 branch.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40324
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41096
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-and-tested-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/gen6_vs_state.c

index 1c57a3b4a10cb46eac81b3c9edda8741e0af4453..f2c2e2b6290b38fdbad92172be49067f54d6c549 100644 (file)
@@ -198,6 +198,8 @@ upload_vs_state(struct brw_context *brw)
     * bug reports that led to this workaround, and may be more than
     * what is strictly required to avoid the issue.
     */
+   intel_emit_post_sync_nonzero_flush(intel);
+
    BEGIN_BATCH(4);
    OUT_BATCH(_3DSTATE_PIPE_CONTROL);
    OUT_BATCH(PIPE_CONTROL_DEPTH_STALL |