Mesa (main): virgl: Clear all indirect flags when writing to a temporary

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 21 19:24:30 UTC 2022


Module: Mesa
Branch: main
Commit: e6d262a7fab7a8090556f7c178f2ece5b52d1147
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6d262a7fab7a8090556f7c178f2ece5b52d1147

Author: Gert Wollny <gert.wollny at collabora.com>
Date:   Sun Apr 17 17:22:27 2022 +0200

virgl: Clear all indirect flags when writing to a temporary

The output may be an array, e.g. with a TCS shader, so if the
value is written to a temporaray first remove the indirect
indicator for that write.

Fixes: 36f12c85c84364d7f1ea797512462e7c7e47a260
   virgl: Extend integer write out output fix to all non-move integers ops

Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13295>

---

 src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt | 1 -
 src/gallium/drivers/virgl/virgl_tgsi.c            | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt
index adfb44353e3..9f425522d31 100644
--- a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt
+++ b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt
@@ -681,7 +681,6 @@ spec at arb_tessellation_shader@execution at gs-primitiveid-instanced,Fail
 spec at arb_tessellation_shader@execution at tcs-tes-levels-out-of-bounds-write,Crash
 
 spec at arb_tessellation_shader@execution at variable-indexing@tcs-input-array-dvec4-index-rd,Fail
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-tes-array-in-struct,Fail
 spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-dvec4-index-wr,Fail
 spec at arb_tessellation_shader@execution at variable-indexing@tes-input-array-dvec4-index-rd,Fail
 spec at arb_tessellation_shader@execution at variable-indexing@vs-output-array-dvec4-index-wr-before-tcs,Fail
diff --git a/src/gallium/drivers/virgl/virgl_tgsi.c b/src/gallium/drivers/virgl/virgl_tgsi.c
index aa755b58ddd..a707a246a40 100644
--- a/src/gallium/drivers/virgl/virgl_tgsi.c
+++ b/src/gallium/drivers/virgl/virgl_tgsi.c
@@ -393,6 +393,8 @@ virgl_tgsi_transform_instruction(struct tgsi_transform_context *ctx,
       struct tgsi_full_instruction op_to_temp = *inst;
       op_to_temp.Dst[0].Register.File = TGSI_FILE_TEMPORARY;
       op_to_temp.Dst[0].Register.Index = vtctx->src_temp;
+      op_to_temp.Dst[0].Dimension.Indirect = 0;
+      op_to_temp.Dst[0].Register.Indirect = 0;
       ctx->emit_instruction(ctx, &op_to_temp);
 
       inst->Instruction.Opcode = TGSI_OPCODE_MOV;



More information about the mesa-commit mailing list