Mesa (main): freedreno/a6xx: Fix mh31 intermittent faults

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 3 03:48:14 UTC 2021


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

Author: Rob Clark <robdclark at chromium.org>
Date:   Wed Jun  2 09:41:13 2021 -0700

freedreno/a6xx: Fix mh31 intermittent faults

It appears that CP can over-fetch push constants slightly.  While it
otherwise has no problem fetching from an alignment of 32 bytes, if that
32 bytes is at the end of a mapped bo, this can trigger fetching up to
32 bytes beyond the patch, triggering an iova fault.  While otherwise
"harmless", it is probably better to not have random intermittent
faults.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11142>

---

 src/gallium/drivers/freedreno/freedreno_screen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 9f47b6db50e..aa4e9875f93 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -318,7 +318,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
       return is_a4xx(screen);
 
    case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
-      return is_a2xx(screen) ? 64 : 32;
+      return 64;
 
    case PIPE_CAP_GLSL_FEATURE_LEVEL:
    case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:



More information about the mesa-commit mailing list