zink: set Geometry capability for fs if geometry inputs are read

super legal.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15716>
This commit is contained in:
Mike Blumenkrantz
2022-04-01 13:37:52 -04:00
committed by Marge Bot
parent 3f918bbd23
commit d1f52d300d

View File

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