Mesa (master): r600g: make loop const always flush

Dave Airlie airlied at kemper.freedesktop.org
Tue Apr 19 06:48:02 UTC 2011


Module: Mesa
Branch: master
Commit: 723e35d4a6a0cc103109c326e1c523f18f60fd2a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=723e35d4a6a0cc103109c326e1c523f18f60fd2a

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Apr 19 16:39:50 2011 +1000

r600g: make loop const always flush

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 at redhat.com>

---

 src/gallium/winsys/r600/drm/evergreen_hw_context.c |    2 +-
 src/gallium/winsys/r600/drm/r600_hw_context.c      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/r600/drm/evergreen_hw_context.c b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
index 4104a1a..b16ba07 100644
--- a/src/gallium/winsys/r600/drm/evergreen_hw_context.c
+++ b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
@@ -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);
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c
index 403dc24..d0bef8a 100644
--- a/src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/src/gallium/winsys/r600/drm/r600_hw_context.c
@@ -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;
 	}




More information about the mesa-commit mailing list