summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state_shaders.c
diff options
context:
space:
mode:
authorNicolai Hähnle <nicolai.haehnle@amd.com>2016-06-17 20:08:42 +0200
committerNicolai Hähnle <nicolai.haehnle@amd.com>2016-06-20 18:29:55 +0200
commit1167905c41d4594153d6649c0cade96a83831cbd (patch)
treefcbda64dd20a5c06a7875328f4e9dae2057eeb21 /src/gallium/drivers/radeonsi/si_state_shaders.c
parent650137a9c8fb5ae4a214440ca3ebc43461e2d394 (diff)
downloadexternal_mesa3d-1167905c41d4594153d6649c0cade96a83831cbd.zip
external_mesa3d-1167905c41d4594153d6649c0cade96a83831cbd.tar.gz
external_mesa3d-1167905c41d4594153d6649c0cade96a83831cbd.tar.bz2
radeonsi: use trapezoid distribution for tess on Fiji and Polaris
This yields a small performance improvement in Unigine Heaven. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state_shaders.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_state_shaders.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index a7af76d..daef49d 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -300,9 +300,13 @@ static void si_set_tesseval_regs(struct si_screen *sscreen,
else
topology = V_028B6C_OUTPUT_TRIANGLE_CW;
- if (sscreen->b.chip_class >= VI)
- distribution_mode = V_028B6C_DISTRIBUTION_MODE_DONUTS;
- else
+ if (sscreen->b.chip_class >= VI) {
+ if (sscreen->b.family == CHIP_FIJI ||
+ sscreen->b.family >= CHIP_POLARIS10)
+ distribution_mode = V_028B6C_DISTRIBUTION_MODE_TRAPEZOIDS;
+ else
+ distribution_mode = V_028B6C_DISTRIBUTION_MODE_DONUTS;
+ } else
distribution_mode = V_028B6C_DISTRIBUTION_MODE_NO_DIST;
si_pm4_set_reg(pm4, R_028B6C_VGT_TF_PARAM,