From d1f52d300d6f36a9273dbc62562b802be525cfa7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 1 Apr 2022 13:37:52 -0400 Subject: [PATCH] zink: set Geometry capability for fs if geometry inputs are read super legal. Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 7 +++++++ 1 file changed, 7 insertions(+) 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 a4a9c3778f6..3b3c661ffe4 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 @@ -3919,6 +3919,13 @@ nir_to_spirv(struct nir_shader *s, const struct zink_shader_info *sinfo, uint32_ spirv_builder_emit_cap(&ctx.builder, SpvCapabilityShaderViewportIndexLayerEXT); } } + } else if (s->info.stage == MESA_SHADER_FRAGMENT) { + /* incredibly, this is legal and intended. + * https://github.com/KhronosGroup/SPIRV-Registry/issues/95 + */ + if (s->info.inputs_read & (BITFIELD64_BIT(VARYING_SLOT_LAYER) | + BITFIELD64_BIT(VARYING_SLOT_PRIMITIVE_ID))) + spirv_builder_emit_cap(&ctx.builder, SpvCapabilityGeometry); } if (s->info.num_ssbos)