diff --git a/.pick_status.json b/.pick_status.json
index 6cf601f..03a9d43 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -688,7 +688,7 @@
         "description": "radeonsi: determine correctly if switching from normal launch to fast launch",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "3da91b3327fb93d0364c0ca9d0216f695160831d"
     },
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index 872ce0a..27176e3 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -2030,6 +2030,7 @@
    }
 
    /* Update NGG culling settings. */
+   uint8_t old_ngg_culling = sctx->ngg_culling;
    struct si_shader_selector *hw_vs;
    if (sctx->ngg && !dispatch_prim_discard_cs && rast_prim == PIPE_PRIM_TRIANGLES &&
        (hw_vs = si_get_vs(sctx)->cso) &&
@@ -2038,7 +2039,7 @@
          avg_direct_count > hw_vs->ngg_cull_nonindexed_fast_launch_vert_threshold &&
          prim & ((1 << PIPE_PRIM_TRIANGLES) |
                  (1 << PIPE_PRIM_TRIANGLE_STRIP))))) {
-      unsigned ngg_culling = 0;
+      uint8_t ngg_culling = 0;
 
       if (rs->rasterizer_discard) {
          ngg_culling |= SI_NGG_CULL_FRONT_FACE | SI_NGG_CULL_BACK_FACE;
@@ -2067,17 +2068,12 @@
             ngg_culling |= SI_NGG_CULL_GS_FAST_LAUNCH_TRI_STRIP;
       }
 
-      if (ngg_culling != sctx->ngg_culling) {
-         /* Insert a VGT_FLUSH when enabling fast launch changes to prevent hangs.
-          * See issues #2418, #2426, #2434
-          */
-         if (ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL &&
-             !(sctx->ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL))
-            sctx->flags |= SI_CONTEXT_VGT_FLUSH;
+      if (ngg_culling != old_ngg_culling) {
+         /* If shader compilation is not ready, this setting will be rejected. */
          sctx->ngg_culling = ngg_culling;
          sctx->do_update_shaders = true;
       }
-   } else if (sctx->ngg_culling) {
+   } else if (old_ngg_culling) {
       sctx->ngg_culling = false;
       sctx->do_update_shaders = true;
    }
@@ -2090,8 +2086,23 @@
       sctx->inlinable_uniforms_dirty_mask = 0;
    }
 
-   if (unlikely(sctx->do_update_shaders && !si_update_shaders(sctx)))
-      goto return_cleanup;
+   if (unlikely(sctx->do_update_shaders)) {
+      if (unlikely(!si_update_shaders(sctx)))
+         goto return_cleanup;
+
+      /* Insert a VGT_FLUSH when enabling fast launch changes to prevent hangs.
+       * See issues #2418, #2426, #2434
+       *
+       * This is the setting that is used by the draw.
+       */
+      uint8_t ngg_culling = si_get_vs(sctx)->current->key.opt.ngg_culling;
+      if (!(old_ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL) &&
+          ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL)
+         sctx->flags |= SI_CONTEXT_VGT_FLUSH;
+
+      /* Set this to the correct value determined by si_update_shaders. */
+      sctx->ngg_culling = ngg_culling;
+   }
 
    si_need_gfx_cs_space(sctx, num_draws);
 
