radv: Fix missing rbplus_allowed check for dynamic PS epilogs.
authorTatsuyuki Ishi <ishitatsuyuki@gmail.com>
Wed, 8 Feb 2023 12:19:26 +0000 (21:19 +0900)
committerMarge Bot <emma+marge@anholt.net>
Thu, 9 Feb 2023 08:32:20 +0000 (08:32 +0000)
This created really mysterious bugs on gfx10.

Fixes flickering in a bunch of DXVK games, most visibly Overwatch 2.

Fixes: eb07a11b8f4 ("radv: add support for compiling PS epilogs on-demand")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8258
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21189>

src/amd/vulkan/radv_cmd_buffer.c

index 117ae59..f11b661 100644 (file)
@@ -8507,7 +8507,8 @@ radv_emit_all_graphics_states(struct radv_cmd_buffer *cmd_buffer, const struct r
          if (cmd_buffer->state.graphics_pipeline->need_null_export_workaround &&
              !cmd_buffer->state.col_format_non_compacted)
             cmd_buffer->state.col_format_non_compacted = V_028714_SPI_SHADER_32_R;
-         cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RBPLUS;
+         if (device->physical_device->rad_info.rbplus_allowed)
+            cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RBPLUS;
       }
 
       if (ps_epilog)