virgl: overpropagate precise flags
authorItalo Nicola <italonicola@collabora.com>
Mon, 20 Jun 2022 17:45:43 +0000 (14:45 -0300)
committerMarge Bot <emma+marge@anholt.net>
Wed, 22 Jun 2022 12:58:58 +0000 (12:58 +0000)
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@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collanora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17144>

src/gallium/drivers/virgl/virgl_tgsi.c

index d16b3a6..a98a74e 100644 (file)
@@ -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) {