summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state_draw.c
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-04-12 20:28:46 +0200
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2016-05-26 22:07:04 +0200
commit43d7305a405c82e81c9b7b3cc4958169b13777bb (patch)
tree00f3205393b0ba9b9897b0e19c0a69869068f7e0 /src/gallium/drivers/radeonsi/si_state_draw.c
parentf91c85b29b8261ab3f44d292ed2130d4f577d976 (diff)
downloadexternal_mesa3d-43d7305a405c82e81c9b7b3cc4958169b13777bb.zip
external_mesa3d-43d7305a405c82e81c9b7b3cc4958169b13777bb.tar.gz
external_mesa3d-43d7305a405c82e81c9b7b3cc4958169b13777bb.tar.bz2
radeonsi: Allow TES distribution between shader engines.
The R_028B50_VGT_TESS_DISTRIBUTION value is copied from amdgpu-pro. Smaller values in the ACCUM fields seem to decrease the performance advantage from this patch, higher values don't seem to matter. v2: Add distribution mode field enums. Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state_draw.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index c8b87a9..788869e 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -279,6 +279,14 @@ static unsigned si_get_ia_multi_vgt_param(struct si_context *sctx,
sctx->b.family == CHIP_BONAIRE) &&
sctx->gs_shader.cso)
partial_vs_wave = true;
+
+ /* Needed for 028B6C_DISTRIBUTION_MODE != 0 */
+ if (sctx->b.chip_class >= VI) {
+ if (sctx->gs_shader.cso)
+ partial_es_wave = true;
+ else
+ partial_vs_wave = true;
+ }
}
/* This is a hardware requirement. */