Mesa (master): r600g: fix additional EVENT_WRITE packet

Alex Deucher agd5f at kemper.freedesktop.org
Mon Nov 22 22:42:20 UTC 2010


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

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Mon Nov 22 17:39:16 2010 -0500

r600g: fix additional EVENT_WRITE packet

Add explicit EVENT_TYPE field

---

 src/gallium/drivers/r600/evergreend.h              |    9 +++++++++
 src/gallium/winsys/r600/drm/evergreen_hw_context.c |    2 +-
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h
index a337916..e67254b 100644
--- a/src/gallium/drivers/r600/evergreend.h
+++ b/src/gallium/drivers/r600/evergreend.h
@@ -45,6 +45,15 @@
 
 #define EVENT_TYPE_ZPASS_DONE                  0x15
 #define EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT   0x16
+#define		EVENT_TYPE(x)                           ((x) << 0)
+#define		EVENT_INDEX(x)                          ((x) << 8)
+                /* 0 - any non-TS event
+		 * 1 - ZPASS_DONE
+		 * 2 - SAMPLE_PIPELINESTAT
+		 * 3 - SAMPLE_STREAMOUTSTAT*
+		 * 4 - *S_PARTIAL_FLUSH
+		 * 5 - TS events
+		 */
 
 #define R600_TEXEL_PITCH_ALIGNMENT_MASK        0x7
 
diff --git a/src/gallium/winsys/r600/drm/evergreen_hw_context.c b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
index b93cc65..e1f163e 100644
--- a/src/gallium/winsys/r600/drm/evergreen_hw_context.c
+++ b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
@@ -855,7 +855,7 @@ void evergreen_context_draw(struct r600_context *ctx, const struct r600_draw *dr
 		ctx->pm4[ctx->pm4_cdwords++] = draw->vgt_draw_initiator;
 	}
 	ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_EVENT_WRITE, 0);
-	ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT;
+	ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE(EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT) | EVENT_INDEX(0);
 
 	/* flush color buffer */
 	for (int i = 0; i < 12; i++) {




More information about the mesa-commit mailing list