Skip to content
Snippets Groups Projects
Commit b582a4e9 authored by Rob Clark's avatar Rob Clark :speech_balloon: Committed by Juan A. Suárez
Browse files

freedreno/a5xx: fix page faults on last level


We could alternatively fall back to using "old style" draw's for
mem<->gmem (ie. what <= a4xx do) when height is not aligned to 32,
but that is somewhat more work (and not really something that could
be applied to stable)

Cc: "18.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
(cherry picked from commit 1866f76f)
parent ab520c95
No related branches found
No related tags found
No related merge requests found
......@@ -73,6 +73,16 @@ setup_slices(struct fd_resource *rsc, uint32_t alignment, enum pipe_format forma
aligned_height = align(aligned_height, heightalign);
} else {
pitchalign = 64;
/* The blits used for mem<->gmem work at a granularity of
* 32x32, which can cause faults due to over-fetch on the
* last level. The simple solution is to over-allocate a
* bit the last level to ensure any over-fetch is harmless.
* The pitch is already sufficiently aligned, but height
* may not be:
*/
if (level == prsc->last_level)
aligned_height = align(aligned_height, 32);
}
if (layout == UTIL_FORMAT_LAYOUT_ASTC)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment