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