summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2016-11-29 23:35:09 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2016-12-14 19:03:11 +0000
commita539345c3e6105e4f9aa38819218e028713bdf93 (patch)
treef8971ef3be1b8a707ff5eeea41feb301f2fabf56
parent002fa13cfa01bfe8535dd10a73da7ccc7a5de252 (diff)
downloadexternal_mesa3d-a539345c3e6105e4f9aa38819218e028713bdf93.zip
external_mesa3d-a539345c3e6105e4f9aa38819218e028713bdf93.tar.gz
external_mesa3d-a539345c3e6105e4f9aa38819218e028713bdf93.tar.bz2
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@lists.freedesktop.org> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> (v1) (cherry picked from commit bacf9b4e735cc9d96acd2d507dfb2fc8831966a3)
-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 3dbcbc6..f62bbf2 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -85,7 +85,8 @@ void r600_gfx_write_fence(struct r600_common_context *ctx, struct r600_resource
{
struct radeon_winsys_cs *cs = ctx->gfx.cs;
- 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.
@@ -114,7 +115,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)