Mesa (master): Revert "zink: put those shader keys to work fixing up fragment shaders"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 24 21:57:39 UTC 2020


Module: Mesa
Branch: master
Commit: 1a25b1b36e791e5c13757d1cd8d07b72e49b1ca4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a25b1b36e791e5c13757d1cd8d07b72e49b1ca4

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Tue Nov 24 18:20:31 2020 +0100

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 <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7754>

---

 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 bdc08483cce..dc3c829d01e 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);



More information about the mesa-commit mailing list