From 1a25b1b36e791e5c13757d1cd8d07b72e49b1ca4 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 24 Nov 2020 18:20:31 +0100 Subject: [PATCH] Revert "zink: put those shader keys to work fixing up fragment shaders" This reverts commit eeff625ab31f0a1bf94739e09ca6b08de00c94f5. Fixes: eeff625ab31 ("zink: put those shader keys to work fixing up fragment shaders") Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index bdc0848..dc3c829 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -222,26 +222,9 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, struct z { VkShaderModule mod = VK_NULL_HANDLE; void *streamout = NULL; - nir_shader *nir = zs->nir; - /* TODO: use a separate mem ctx here for ralloc */ if (zs->streamout.so_info_slots && (zs->nir->info.stage != MESA_SHADER_VERTEX || !zs->has_geometry_shader)) streamout = &zs->streamout; - if (zs->nir->info.stage == MESA_SHADER_FRAGMENT) { - nir = nir_shader_clone(NULL, nir); - 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, - * so we need to skip this write here to mimic GL's behavior of ignoring it - */ - nir_foreach_shader_out_variable(var, nir) { - if (var->data.location == FRAG_RESULT_SAMPLE_MASK) - var->data.mode = nir_var_shader_temp; - } - nir_fixup_deref_modes(nir); - NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_shader_temp, NULL); - optimize_nir(nir); - } - } - struct spirv_shader *spirv = nir_to_spirv(nir, streamout, shader_slot_map, shader_slots_reserved); + struct spirv_shader *spirv = nir_to_spirv(zs->nir, streamout, shader_slot_map, shader_slots_reserved); assert(spirv); if (zink_debug & ZINK_DEBUG_SPIRV) { @@ -264,9 +247,6 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, struct z if (vkCreateShaderModule(screen->dev, &smci, NULL, &mod) != VK_SUCCESS) mod = VK_NULL_HANDLE; - if (zs->nir->info.stage == MESA_SHADER_FRAGMENT) - ralloc_free(nir); - /* TODO: determine if there's any reason to cache spirv output? */ free(spirv->words); free(spirv); -- 2.7.4