diff options
author | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2021-04-21 12:23:52 +0200 |
---|---|---|
committer | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2021-05-05 10:51:02 +0200 |
commit | c87802f658ca1a00fff22e79f93ff349ff9c07c7 (patch) | |
tree | b5ea80b952fc766d154372c9a000004a852ac0f0 /src | |
parent | 567699f0487e514ae647870160292ee3977835ff (diff) |
zink: do not check for varying output for fragment shaders
This will make us emit these caps needlessly, possibly on implementations
not supporting the enabling features.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 5 |
1 files changed, 3 insertions, 2 deletions
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 6eff7518225..a55adf15d8d 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 @@ -3602,7 +3602,7 @@ nir_to_spirv(struct nir_shader *s, const struct zink_so_info *so_info, bool spir ctx.info = &s->info; - if (s->info.stage != MESA_SHADER_GEOMETRY) { + if (s->info.stage < MESA_SHADER_GEOMETRY) { if (s->info.outputs_written & BITFIELD64_BIT(VARYING_SLOT_LAYER) || s->info.inputs_read & BITFIELD64_BIT(VARYING_SLOT_LAYER)) { spirv_builder_emit_extension(&ctx.builder, "SPV_EXT_shader_viewport_index_layer"); @@ -3614,7 +3614,8 @@ nir_to_spirv(struct nir_shader *s, const struct zink_so_info *so_info, bool spir if (s->info.num_ssbos) spirv_builder_emit_extension(&ctx.builder, "SPV_KHR_storage_buffer_storage_class"); - if (s->info.outputs_written & BITFIELD64_BIT(VARYING_SLOT_VIEWPORT)) { + if (s->info.stage < MESA_SHADER_FRAGMENT && + s->info.outputs_written & BITFIELD64_BIT(VARYING_SLOT_VIEWPORT)) { if (s->info.stage < MESA_SHADER_GEOMETRY) spirv_builder_emit_cap(&ctx.builder, SpvCapabilityShaderViewportIndex); else |