Module: Mesa
Branch: main
Commit: 465f249ec89bce91a5b523e63d12560ba7b855cb
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=465f249ec89bce91a5b523e63d12560ba7b855cb

Author: Marek Olšák <[email protected]>
Date:   Mon Sep 20 07:44:50 2021 -0400

radeonsi: change the units of oversub_pc_factor to integer multiples of 1/4

to match radv

Reviewed-by: Timur Kristóf <[email protected]>
Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>

---

 src/gallium/drivers/radeonsi/si_state_shaders.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c 
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 59ac9c14fed..8a78c928fc3 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -1288,19 +1288,20 @@ static void gfx10_shader_ngg(struct si_screen *sscreen, 
struct si_shader *shader
    shader->pa_cl_vs_out_cntl = si_get_vs_out_cntl(shader->selector, shader, 
true);
 
    /* Oversubscribe PC. This improves performance when there are too many 
varyings. */
-   float oversub_pc_factor = 0.25;
+   unsigned oversub_pc_factor = 1;
 
    if (shader->key.opt.ngg_culling) {
       /* Be more aggressive with NGG culling. */
       if (shader->info.nr_param_exports > 4)
-         oversub_pc_factor = 1;
+         oversub_pc_factor = 4;
       else if (shader->info.nr_param_exports > 2)
-         oversub_pc_factor = 0.75;
+         oversub_pc_factor = 3;
       else
-         oversub_pc_factor = 0.5;
+         oversub_pc_factor = 2;
    }
 
-   unsigned oversub_pc_lines = late_alloc_wave64 ? sscreen->info.pc_lines * 
oversub_pc_factor : 0;
+   unsigned oversub_pc_lines =
+      late_alloc_wave64 ? (sscreen->info.pc_lines / 4) * oversub_pc_factor : 0;
    shader->ctx_reg.ngg.ge_pc_alloc = S_030980_OVERSUB_EN(oversub_pc_lines > 0) 
|
                                      S_030980_NUM_PC_LINES(oversub_pc_lines - 
1);
 

Reply via email to