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