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
(cherry picked from commit d526bbc29b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40359>
This commit is contained in:
Antonino Maniscalco 2024-11-29 01:03:58 +01:00 committed by Eric Engestrom
parent b5304ffef7
commit 7b2af9e15a
2 changed files with 5 additions and 1 deletions

View file

@ -524,7 +524,7 @@
"description": "zink: don't care about generated gs output primitive",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

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