r600g: make loop const always flush
authorDave Airlie <airlied@redhat.com>
Tue, 19 Apr 2011 06:39:50 +0000 (16:39 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 19 Apr 2011 06:39:50 +0000 (16:39 +1000)
this needs revisiting, we really don't want to be flushing all 32 of these,
but currently we don't flush any of them, and it seems to have caused a regression
as reported on irc with doom3 on evergreen.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/winsys/r600/drm/evergreen_hw_context.c
src/gallium/winsys/r600/drm/r600_hw_context.c

index 4104a1a0c1914173fddc2bc2d7e8d3fab1ed9482..b16ba0733289c7d76d1d8bf9eac30ecceba17675 100644 (file)
@@ -499,7 +499,7 @@ static int evergreen_loop_const_init(struct r600_context *ctx, u32 offset)
                r600_loop_consts[i].opcode = PKT3_SET_LOOP_CONST;
                r600_loop_consts[i].offset_base = EVERGREEN_LOOP_CONST_OFFSET;
                r600_loop_consts[i].offset = EVERGREEN_LOOP_CONST_OFFSET + ((offset + i) * 4);
-               r600_loop_consts[i].flags = 0;
+               r600_loop_consts[i].flags = REG_FLAG_DIRTY_ALWAYS;
                r600_loop_consts[i].flush_flags = 0;
        }
        return r600_context_add_block(ctx, r600_loop_consts, nreg);
index 403dc241b5417dda9d95c2366d7f50a529202ade..d0bef8a7ee993e4791e0e4de2c2afe41d121b52b 100644 (file)
@@ -578,7 +578,7 @@ static int r600_loop_const_init(struct r600_context *ctx, u32 offset)
                r600_loop_consts[i].opcode = PKT3_SET_LOOP_CONST;
                r600_loop_consts[i].offset_base = R600_LOOP_CONST_OFFSET;
                r600_loop_consts[i].offset = R600_LOOP_CONST_OFFSET + ((offset + i) * 4);
-               r600_loop_consts[i].flags = 0;
+               r600_loop_consts[i].flags = REG_FLAG_DIRTY_ALWAYS;
                r600_loop_consts[i].flush_flags = 0;
                r600_loop_consts[i].flush_mask = 0;
        }