Revert "gallium/util: Fix depth/stencil blit shaders"
authorBoris Brezillon <boris.brezillon@collabora.com>
Tue, 4 May 2021 06:31:38 +0000 (08:31 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 6 May 2021 12:09:38 +0000 (12:09 +0000)
This reverts commit 7ca72f172678116d29d254b786a9422b864aef3d.
Unlike what's stated in this commit, the depth or stencil components
have to be replicated on all channels, as specified in the
"Texture Sampling and Texture Formats" section of the TGSI doc
(docs/gallium/tgsi.rst).

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10649>

src/gallium/auxiliary/util/u_simple_shaders.c

index a905150..d2f77c4 100644 (file)
@@ -423,12 +423,12 @@ util_make_fs_blit_zs(struct pipe_context *pipe, unsigned zs_mask,
                              TGSI_RETURN_TYPE_UINT,
                              TGSI_RETURN_TYPE_UINT);
 
-      ureg_load_tex(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_Y), coord,
+      ureg_load_tex(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), coord,
                     stencil_sampler, tex_target, load_level_zero, use_txf);
 
       stencil = ureg_DECL_output(ureg, TGSI_SEMANTIC_STENCIL, 0);
       ureg_MOV(ureg, ureg_writemask(stencil, TGSI_WRITEMASK_Y),
-               ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_Y));
+               ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_X));
    }
 
    ureg_END(ureg);
@@ -530,7 +530,6 @@ util_make_fs_blit_msaa_gen(struct pipe_context *pipe,
                            const char *samp_type,
                            const char *output_semantic,
                            const char *output_mask,
-                           const char *swizzle,
                            const char *conversion_decl,
                            const char *conversion)
 {
@@ -546,7 +545,7 @@ util_make_fs_blit_msaa_gen(struct pipe_context *pipe,
          "F2U TEMP[0], IN[0]\n"
          "TXF TEMP[0], TEMP[0], SAMP[0], %s\n"
          "%s"
-         "MOV OUT[0]%s, TEMP[0]%s\n"
+         "MOV OUT[0]%s, TEMP[0]\n"
          "END\n";
 
    const char *type = tgsi_texture_names[tgsi_tex];
@@ -558,7 +557,7 @@ util_make_fs_blit_msaa_gen(struct pipe_context *pipe,
           tgsi_tex == TGSI_TEXTURE_2D_ARRAY_MSAA);
 
    snprintf(text, sizeof(text), shader_templ, type, samp_type,
-            output_semantic, conversion_decl, type, conversion, output_mask, swizzle);
+            output_semantic, conversion_decl, type, conversion, output_mask);
 
    if (!tgsi_text_translate(text, tokens, ARRAY_SIZE(tokens))) {
       puts(text);
@@ -609,7 +608,7 @@ util_make_fs_blit_msaa_color(struct pipe_context *pipe,
    }
 
    return util_make_fs_blit_msaa_gen(pipe, tgsi_tex, samp_type,
-                                     "COLOR[0]", "", "", conversion_decl,
+                                     "COLOR[0]", "", conversion_decl,
                                      conversion);
 }
 
@@ -624,7 +623,7 @@ util_make_fs_blit_msaa_depth(struct pipe_context *pipe,
                              enum tgsi_texture_type tgsi_tex)
 {
    return util_make_fs_blit_msaa_gen(pipe, tgsi_tex, "FLOAT",
-                                     "POSITION", ".z", ".xxxx", "", "");
+                                     "POSITION", ".z", "", "");
 }
 
 
@@ -638,7 +637,7 @@ util_make_fs_blit_msaa_stencil(struct pipe_context *pipe,
                                enum tgsi_texture_type tgsi_tex)
 {
    return util_make_fs_blit_msaa_gen(pipe, tgsi_tex, "UINT",
-                                     "STENCIL", ".y", "", "", "");
+                                     "STENCIL", ".y", "", "");
 }
 
 
@@ -661,11 +660,10 @@ util_make_fs_blit_msaa_depthstencil(struct pipe_context *pipe,
          "DCL SVIEW[1], %s, UINT\n"
          "DCL OUT[0], POSITION\n"
          "DCL OUT[1], STENCIL\n"
-         "DCL TEMP[0..1]\n"
+         "DCL TEMP[0]\n"
 
          "F2U TEMP[0], IN[0]\n"
-         "TXF TEMP[1], TEMP[0], SAMP[0], %s\n"
-         "MOV OUT[0].z, TEMP[1].xxxx\n"
+         "TXF OUT[0].z, TEMP[0], SAMP[0], %s\n"
          "TXF OUT[1].y, TEMP[0], SAMP[1], %s\n"
          "END\n";