From 48473ec967bc0ca80a0c3ae1d8d23247613d0190 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 24 Jun 2021 10:21:57 -0400 Subject: [PATCH] zink: more explicitly check shader stages during compile this is a bit more obvious Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index c32c6fe..3b09441 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -690,7 +690,10 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, nir_shad } /* TODO: use a separate mem ctx here for ralloc */ - if (zs->nir->info.stage < MESA_SHADER_FRAGMENT) { + switch (zs->nir->info.stage) { + case MESA_SHADER_VERTEX: + case MESA_SHADER_TESS_EVAL: + case MESA_SHADER_GEOMETRY: if (zink_vs_key(key)->last_vertex_stage) { if (zs->streamout.have_xfb) streamout = &zs->streamout; @@ -702,7 +705,8 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, nir_shad NIR_PASS_V(nir, lower_drawid); } } - } else if (zs->nir->info.stage == MESA_SHADER_FRAGMENT) { + break; + case MESA_SHADER_FRAGMENT: if (!zink_fs_key(key)->samples && nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK)) { /* VK will always use gl_SampleMask[] values even if sample count is 0, @@ -723,6 +727,8 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, nir_shad NIR_PASS_V(nir, nir_lower_texcoord_replace, zink_fs_key(key)->coord_replace_bits, false, zink_fs_key(key)->coord_replace_yinvert); } + break; + default: break; } NIR_PASS_V(nir, nir_convert_from_ssa, true); -- 2.7.4