diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2011-03-25 22:09:28 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2011-03-25 22:09:28 +0100 |
commit | ad515f817a7e669ec1b7596c88a97349094728e8 (patch) | |
tree | 1d90552a6ef07bf92ed60967da9840d775ec13c7 /lib/intel_batchbuffer.c | |
parent | bfa6f5d94ffccfe00a6232e5adaf61d60c7cdde2 (diff) |
Move gen5 blitter work-around to lib
Suggested by Chris Wilson to prevent utterly strange gpu hangs.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'lib/intel_batchbuffer.c')
-rw-r--r-- | lib/intel_batchbuffer.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c index 449d46de..14446df6 100644 --- a/lib/intel_batchbuffer.c +++ b/lib/intel_batchbuffer.c @@ -72,6 +72,8 @@ intel_batchbuffer_free(struct intel_batchbuffer *batch) free(batch); } +#define CMD_POLY_STIPPLE_OFFSET 0x7906 + void intel_batchbuffer_flush(struct intel_batchbuffer *batch) { @@ -82,6 +84,13 @@ intel_batchbuffer_flush(struct intel_batchbuffer *batch) if (used == 0) return; + if (IS_GEN5(batch->devid)) { + BEGIN_BATCH(2); + OUT_BATCH(CMD_POLY_STIPPLE_OFFSET << 16); + OUT_BATCH(0); + ADVANCE_BATCH(); + } + /* Round batchbuffer usage to 2 DWORDs. */ if ((used & 4) == 0) { *(uint32_t *) (batch->ptr) = 0; /* noop */ |