Mesa (master): radeonsi: apply the double EVENT_WRITE_EOP workaround to VI as well

Marek Olšák mareko at kemper.freedesktop.org
Thu Dec 1 01:17:11 UTC 2016


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Nov 29 23:35:09 2016 +0100

radeonsi: apply the double EVENT_WRITE_EOP workaround to VI as well

Internal docs don't mention it, but they also don't mention that the bug
has been fixed (like other CI bugs fixed in VI).

Vulkan does this too.

v2: also update r600_gfx_write_fence_dwords

Cc: 13.0 <mesa-stable at lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com> (v1)

---

 src/gallium/drivers/radeon/r600_pipe_common.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 15e8a12..0b5c6dc 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -102,7 +102,8 @@ void r600_gfx_write_event_eop(struct r600_common_context *ctx,
 		      EVENT_INDEX(5) |
 		      event_flags;
 
-	if (ctx->chip_class == CIK) {
+	if (ctx->chip_class == CIK ||
+	    ctx->chip_class == VI) {
 		/* Two EOP events are required to make all engines go idle
 		 * (and optional cache flushes executed) before the timestamp
 		 * is written.
@@ -131,7 +132,8 @@ unsigned r600_gfx_write_fence_dwords(struct r600_common_screen *screen)
 {
 	unsigned dwords = 6;
 
-	if (screen->chip_class == CIK)
+	if (screen->chip_class == CIK ||
+	    screen->chip_class == VI)
 		dwords *= 2;
 
 	if (!screen->info.has_virtual_memory)




More information about the mesa-commit mailing list