Mesa (staging/22.1): virgl: overpropagate precise flags

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 23 16:19:37 UTC 2022


Module: Mesa
Branch: staging/22.1
Commit: d4f41e6b8c1d8e9390eadf5971f4ce870237fdf5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4f41e6b8c1d8e9390eadf5971f4ce870237fdf5

Author: Italo Nicola <italonicola at collabora.com>
Date:   Mon Jun 20 14:45:43 2022 -0300

virgl: overpropagate precise flags

As it turns out, MOVs weren't the only instructions that blocked precise
flags propagation in the transition to nir-to-tgsi.
This commit fixes some rendering regressions caused by a4a34cd3.

Fixes: a4a34cd3

Signed-off-by: Italo Nicola <italonicola at collabora.com>
Reviewed-by: Gert Wollny <gert.wollny at collanora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17144>
(cherry picked from commit 42a126495113ff7f18be759e4606435d54b48fcc)

---

 .pick_status.json                      | 2 +-
 src/gallium/drivers/virgl/virgl_tgsi.c | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 0681c714761..87d8e22653c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -454,7 +454,7 @@
         "description": "virgl: overpropagate precise flags",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "a4a34cd3234858dbfe990ede81d3a61edf95c9da"
     },
diff --git a/src/gallium/drivers/virgl/virgl_tgsi.c b/src/gallium/drivers/virgl/virgl_tgsi.c
index b781df78f10..b1155368109 100644
--- a/src/gallium/drivers/virgl/virgl_tgsi.c
+++ b/src/gallium/drivers/virgl/virgl_tgsi.c
@@ -288,8 +288,6 @@ virgl_tgsi_transform_instruction(struct tgsi_transform_context *ctx,
           * one precise output */
          if (inst->Instruction.Precise)
             vtctx->precise_flags[index] |= bits;
-         else if (inst->Instruction.Opcode != TGSI_OPCODE_MOV)
-            vtctx->precise_flags[index] &= ~bits;
       } else if (inst->Instruction.Opcode == TGSI_OPCODE_MOV) {
          for (int i = 0; i < inst->Instruction.NumSrcRegs; ++i) {
             if (inst->Src[i].Register.File == TGSI_FILE_TEMPORARY) {



More information about the mesa-commit mailing list