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 4104a1a..b16ba07 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 403dc24..d0bef8a 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;
        }