diff options
author | Marek Olšák <marek.olsak@amd.com> | 2016-11-29 21:19:52 +0100 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-12-14 19:03:11 +0000 |
commit | 002fa13cfa01bfe8535dd10a73da7ccc7a5de252 (patch) | |
tree | 1985c88d144a4403522f125a5d4def99b7d9c95c | |
parent | 590366320d3f14ff6b677a5f9449a476715a6172 (diff) | |
download | external_mesa3d-002fa13cfa01bfe8535dd10a73da7ccc7a5de252.zip external_mesa3d-002fa13cfa01bfe8535dd10a73da7ccc7a5de252.tar.gz external_mesa3d-002fa13cfa01bfe8535dd10a73da7ccc7a5de252.tar.bz2 |
radeonsi: add a tess+GS hang workaround for VI dGPUs
ported from Vulkan
Cc: 13.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
(cherry picked from commit a816c7fe07bf16325c11bc692486ffb6d1e8b670)
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_draw.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index 592d9b9..6bbe36d 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -292,10 +292,18 @@ static unsigned si_get_ia_multi_vgt_param(struct si_context *sctx, /* Needed for 028B6C_DISTRIBUTION_MODE != 0 */ if (sctx->screen->has_distributed_tess) { - if (sctx->gs_shader.cso) + if (sctx->gs_shader.cso) { partial_es_wave = true; - else + + /* GPU hang workaround. */ + if (sctx->b.family == CHIP_TONGA || + sctx->b.family == CHIP_FIJI || + sctx->b.family == CHIP_POLARIS10 || + sctx->b.family == CHIP_POLARIS11) + partial_vs_wave = true; + } else { partial_vs_wave = true; + } } } |