i965: Fix border color on Ironlake.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 9 Feb 2012 01:14:15 +0000 (17:14 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 11 Feb 2012 04:47:49 +0000 (20:47 -0800)
Ironlake appears to check our pointer against the General State Base
Address upper bound, rather than ignoring the zero bound as it ought.

Unfortunately, since we leave GSBA set to zero, there is no logical
upper bound.  Set it to the maximum possible value, which should work
since our virtual addresses only go up to 2GB.

+94 piglits.

NOTE: This is a candidate for stable release branches.

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

index c364f4062cbc3f905df98d3c3805b0e4c0f6b6a9..0343ae19073ccb0cf1f55eb09516289947ec93fc 100644 (file)
@@ -788,7 +788,7 @@ static void upload_state_base_address( struct brw_context *brw )
        OUT_BATCH(1); /* Indirect object base address */
        OUT_RELOC(brw->cache.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
                 1); /* Instruction base address */
-       OUT_BATCH(1); /* General state upper bound */
+       OUT_BATCH(0xfffff001); /* General state upper bound */
        OUT_BATCH(1); /* Indirect object upper bound */
        OUT_BATCH(1); /* Instruction access upper bound */
        ADVANCE_BATCH();