From d526bbc29b9bcdee415e93370cf81b3a1d0fb85f Mon Sep 17 00:00:00 2001 From: Antonino Maniscalco Date: Fri, 29 Nov 2024 01:03:58 +0100 Subject: [PATCH] zink: don't care about generated gs output primitive Zink uses the output primitive of the last vertex stage when deciding the raster primitive. When we generate the gs the output primitive depends on the raster primitive. Not only does the generated gs output primitive have no value in chosing the raster primitive, it can also get us stuck with the last raster primitve which is of course incorrect. Ignore it for generated shaders. Cc: mesa-stable Part-of: --- src/gallium/drivers/zink/zink_program.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 90e1f8aa080..7982479fadf 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -2119,6 +2119,10 @@ bind_last_vertex_stage(struct zink_context *ctx, mesa_shader_stage stage, struct ctx->last_vertex_stage ? update_rast_prim(ctx->last_vertex_stage) : MESA_PRIM_COUNT; + if (ctx->last_vertex_stage && ctx->last_vertex_stage->non_fs.is_generated) + ctx->gfx_pipeline_state.shader_rast_prim = MESA_PRIM_COUNT; + + if (old != current) { if (!zink_screen(ctx->base.screen)->optimal_keys) { if (old != MESA_SHADER_STAGES) {