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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32399>
This commit is contained in:
Antonino Maniscalco 2024-11-29 01:03:58 +01:00 committed by Marge Bot
parent df06d117c5
commit d526bbc29b

View file

@ -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) {