Mesa (main): tu: remove workaround for conditional rendering + hw binning

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 14 02:20:01 UTC 2021


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

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Wed May 19 19:04:43 2021 -0400

tu: remove workaround for conditional rendering + hw binning

- It hurts users with newer firmware who don't need the workaround
- Kernel now rejects older firmware due to security issues, so this will
  prevent users from using older firmware anyway.
- Only whitelisting 650 enables the workaround by default for any new GPUs

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790>

---

 src/freedreno/vulkan/tu_cmd_buffer.c | 30 ------------------------------
 1 file changed, 30 deletions(-)

diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index c42dd37730c..60b3e26b124 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -500,29 +500,6 @@ use_hw_binning(struct tu_cmd_buffer *cmd)
    if (cmd->state.xfb_used)
       return true;
 
-   /* Some devices have a newer a630_sqe.fw in which, only in CP_DRAW_INDX and
-    * CP_DRAW_INDX_OFFSET, visibility-based skipping happens *before*
-    * predication-based skipping. It seems this breaks predication, because
-    * draws skipped by predication will not be executed in the binning phase,
-    * and therefore won't have an entry in the draw stream, but the
-    * visibility-based skipping will expect it to have an entry. The result is
-    * a GPU hang when actually executing the first non-predicated draw.
-    * However, it seems that things still work if the whole renderpass is
-    * predicated. Affected tests are
-    * dEQP-VK.conditional_rendering.draw_clear.draw.case_2 as well as a few
-    * other case_N.
-    *
-    * Broken FW version: 016ee181
-    * linux-firmware (working) FW version: 016ee176
-    *
-    * All known a650_sqe.fw versions don't have this bug.
-    *
-    * TODO: we should do version detection of the FW so that devices using the
-    * linux-firmware version of a630_sqe.fw don't need this workaround.
-    */
-   if (cmd->state.has_subpass_predication && cmd->device->physical_device->gpu_id != 650)
-      return false;
-
    if (unlikely(cmd->device->physical_device->instance->debug_flags & TU_DEBUG_NOBIN))
       return false;
 
@@ -538,13 +515,6 @@ use_sysmem_rendering(struct tu_cmd_buffer *cmd)
    if (unlikely(cmd->device->physical_device->instance->debug_flags & TU_DEBUG_SYSMEM))
       return true;
 
-   /* If hw binning is required because of XFB but doesn't work because of the
-    * conditional rendering bug, fallback to sysmem.
-    */
-   if (cmd->state.xfb_used && cmd->state.has_subpass_predication &&
-       cmd->device->physical_device->gpu_id != 650)
-      return true;
-
    /* can't fit attachments into gmem */
    if (!cmd->state.pass->gmem_pixels)
       return true;



More information about the mesa-commit mailing list