diff --git a/.pick_status.json b/.pick_status.json index 203fdc43dde..f164b9f8340 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -814,7 +814,7 @@ "description": "zink: Add missing Flat decorations on some inputs.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index 6098254f6bb..80babe7d5fa 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -2721,6 +2721,17 @@ create_builtin_var(struct ntv_context *ctx, SpvId var_type, spirv_builder_emit_name(&ctx->builder, var, name); spirv_builder_emit_builtin(&ctx->builder, var, builtin); + if (ctx->stage == MESA_SHADER_FRAGMENT) { + switch (builtin) { + case SpvBuiltInSampleId: + case SpvBuiltInSubgroupLocalInvocationId: + spirv_builder_emit_decoration(&ctx->builder, var, SpvDecorationFlat); + break; + default: + break; + } + } + assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces)); ctx->entry_ifaces[ctx->num_entry_ifaces++] = var; return var;