diff options
author | Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> | 2023-01-13 11:00:07 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-01-25 08:09:13 +0000 |
commit | 014a0bf0b6015f45244bfdb57d697698a6bf1317 (patch) | |
tree | 74af0ddd7f3038bfce2fd5e2f1bd1555f66ca1ab /src/gallium | |
parent | f2ef663d08b88489cc0484737a5c9bbbf31b35ec (diff) |
radeonsi/gfx11: clamp PRIM_GRP_SIZE
Legal range of values is [1, 256].
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20728>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_shaders.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 16012344abd..82a3e124391 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -33,6 +33,7 @@ #include "util/hash_table.h" #include "util/mesa-sha1.h" #include "util/u_async_debug.h" +#include "util/u_math.h" #include "util/u_memory.h" #include "util/u_prim.h" #include "tgsi/tgsi_from_mesa.h" @@ -1527,7 +1528,9 @@ static void gfx10_shader_ngg(struct si_screen *sscreen, struct si_shader *shader shader->ge_cntl = S_03096C_PRIMS_PER_SUBGRP(shader->ngg.max_gsprims) | S_03096C_VERTS_PER_SUBGRP(shader->ngg.hw_max_esverts) | S_03096C_BREAK_PRIMGRP_AT_EOI(break_wave_at_eoi) | - S_03096C_PRIM_GRP_SIZE_GFX11(252 / MAX2(shader->ngg.prim_amp_factor, 1)); + S_03096C_PRIM_GRP_SIZE_GFX11( + CLAMP(252 / MAX2(shader->ngg.prim_amp_factor, 1), + 1, 256)); } else { shader->ge_cntl = S_03096C_PRIM_GRP_SIZE_GFX10(shader->ngg.max_gsprims) | S_03096C_VERT_GRP_SIZE(shader->ngg.hw_max_esverts) | |