radeonsi: deduplicate setting key.mono.u.vs_export_prim_id
authorMarek Olšák <marek.olsak@amd.com>
Sun, 6 Sep 2020 04:55:57 +0000 (00:55 -0400)
committerVivek Pandya <vivekvpandya@gmail.com>
Mon, 7 Sep 2020 15:55:17 +0000 (21:25 +0530)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6620>

src/gallium/drivers/radeonsi/si_state_shaders.c

index ae430a3f504b60977f8e201a9e2e7b9ec5c91ed1..df89c9dfe6b66e559116e158fbf96091e32cb7ce 100644 (file)
@@ -1786,6 +1786,9 @@ static void si_shader_selector_key_hw_vs(struct si_context *sctx, struct si_shad
 
    key->opt.kill_outputs = ~linked & outputs_written;
    key->opt.ngg_culling = sctx->ngg_culling;
+
+   if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.uses_primid)
+      key->mono.u.vs_export_prim_id = 1;
 }
 
 /* Compute the key for the hw shader variant */
@@ -1809,9 +1812,6 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, struct si_sh
       } else {
          key->as_ngg = stages_key.u.ngg;
          si_shader_selector_key_hw_vs(sctx, sel, key);
-
-         if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.uses_primid)
-            key->mono.u.vs_export_prim_id = 1;
       }
       break;
    case MESA_SHADER_TESS_CTRL:
@@ -1850,9 +1850,6 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, struct si_sh
          key->as_es = 1;
       else {
          si_shader_selector_key_hw_vs(sctx, sel, key);
-
-         if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.uses_primid)
-            key->mono.u.vs_export_prim_id = 1;
       }
       break;
    case MESA_SHADER_GEOMETRY: