summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-11-29 23:35:09 +0100
committerMarek Olšák <[email protected]>2016-12-01 02:16:51 +0100
commitbacf9b4e735cc9d96acd2d507dfb2fc8831966a3 (patch)
tree87ddcaa8aeae979791da8d9404e8d285cca23f9a
parenta816c7fe07bf16325c11bc692486ffb6d1e8b670 (diff)
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 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c6
1 files 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 15e8a12647e..0b5c6dca416 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)