mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
radeonsi: enable distributed tess on multi-SE parts only
ported from Vulkan Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
dd56d04568
commit
eff81cbc81
4 changed files with 7 additions and 2 deletions
|
|
@ -712,6 +712,10 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
|
|||
sscreen->tess_offchip_block_dw_size =
|
||||
sscreen->b.family == CHIP_HAWAII ? 4096 : 8192;
|
||||
|
||||
sscreen->has_distributed_tess =
|
||||
sscreen->b.chip_class >= VI &&
|
||||
sscreen->b.info.max_se >= 2;
|
||||
|
||||
sscreen->b.has_cp_dma = true;
|
||||
sscreen->b.has_streamout = true;
|
||||
pipe_mutex_init(sscreen->shader_parts_mutex);
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ struct si_screen {
|
|||
struct r600_common_screen b;
|
||||
unsigned gs_table_depth;
|
||||
unsigned tess_offchip_block_dw_size;
|
||||
bool has_distributed_tess;
|
||||
|
||||
/* Whether shaders are monolithic (1-part) or separate (3-part). */
|
||||
bool use_monolithic_shaders;
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@ static unsigned si_get_ia_multi_vgt_param(struct si_context *sctx,
|
|||
partial_vs_wave = true;
|
||||
|
||||
/* Needed for 028B6C_DISTRIBUTION_MODE != 0 */
|
||||
if (sctx->b.chip_class >= VI) {
|
||||
if (sctx->screen->has_distributed_tess) {
|
||||
if (sctx->gs_shader.cso)
|
||||
partial_es_wave = true;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ static void si_set_tesseval_regs(struct si_screen *sscreen,
|
|||
else
|
||||
topology = V_028B6C_OUTPUT_TRIANGLE_CW;
|
||||
|
||||
if (sscreen->b.chip_class >= VI) {
|
||||
if (sscreen->has_distributed_tess) {
|
||||
if (sscreen->b.family == CHIP_FIJI ||
|
||||
sscreen->b.family >= CHIP_POLARIS10)
|
||||
distribution_mode = V_028B6C_DISTRIBUTION_MODE_TRAPEZOIDS;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue