From 6cac9c748eb81105b5cd7df32060ee8aae2b1e5f Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Tue, 4 May 2021 08:31:38 +0200 Subject: [PATCH] Revert "gallium/util: Fix depth/stencil blit shaders" 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 Part-of: --- src/gallium/auxiliary/util/u_simple_shaders.c | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c b/src/gallium/auxiliary/util/u_simple_shaders.c index a905150376d..d2f77c47520 100644 --- a/src/gallium/auxiliary/util/u_simple_shaders.c +++ b/src/gallium/auxiliary/util/u_simple_shaders.c @@ -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";