diff --git a/src/asahi/lib/agx_nir_lower_gs.c b/src/asahi/lib/agx_nir_lower_gs.c index 78cb9fe3bde..6e65d2a3951 100644 --- a/src/asahi/lib/agx_nir_lower_gs.c +++ b/src/asahi/lib/agx_nir_lower_gs.c @@ -1488,7 +1488,7 @@ lower_vs_before_gs(nir_builder *b, nir_intrinsic_instr *intr, void *data) bool agx_nir_lower_vs_before_gs(struct nir_shader *vs, - const struct nir_shader *libagx, uint64_t *outputs) + const struct nir_shader *libagx) { bool progress = false; @@ -1500,12 +1500,7 @@ agx_nir_lower_vs_before_gs(struct nir_shader *vs, if (progress) link_libagx(vs, libagx); - /* Turn into a compute shader now that we're free of vertexisms */ - vs->info.stage = MESA_SHADER_COMPUTE; - memset(&vs->info.cs, 0, sizeof(vs->info.cs)); - vs->xfb_info = NULL; - *outputs = vs->info.outputs_written; - return true; + return progress; } void diff --git a/src/asahi/lib/agx_nir_lower_gs.h b/src/asahi/lib/agx_nir_lower_gs.h index 671c43d52cc..c25e9ba62cb 100644 --- a/src/asahi/lib/agx_nir_lower_gs.h +++ b/src/asahi/lib/agx_nir_lower_gs.h @@ -27,8 +27,7 @@ struct nir_def *agx_load_per_vertex_input(struct nir_builder *b, bool agx_nir_lower_sw_vs(struct nir_shader *s, unsigned index_size_B); bool agx_nir_lower_vs_before_gs(struct nir_shader *vs, - const struct nir_shader *libagx, - uint64_t *outputs); + const struct nir_shader *libagx); bool agx_nir_lower_gs(struct nir_shader *gs, const struct nir_shader *libagx, bool rasterizer_discard, struct nir_shader **gs_count, diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 9da321fb693..54efd709bd2 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -1653,7 +1653,13 @@ agx_compile_variant(struct agx_device *dev, struct pipe_context *pctx, NIR_PASS(_, nir, agx_nir_lower_cull_distance_vs); NIR_PASS(_, nir, agx_nir_lower_uvs, &uvs); } else { - NIR_PASS(_, nir, agx_nir_lower_vs_before_gs, dev->libagx, &outputs); + NIR_PASS(_, nir, agx_nir_lower_vs_before_gs, dev->libagx); + + /* Turn into a compute shader now that we're free of vertexisms */ + nir->info.stage = MESA_SHADER_COMPUTE; + memset(&nir->info.cs, 0, sizeof(nir->info.cs)); + nir->xfb_info = NULL; + outputs = nir->info.outputs_written; } } else if (nir->info.stage == MESA_SHADER_TESS_CTRL) { NIR_PASS_V(nir, agx_nir_lower_tcs, dev->libagx);