Mesa (master): freedreno/a6xx: don't use gmem_alignw for imported buffers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 20 18:45:12 UTC 2020


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

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Tue May 12 21:31:52 2020 -0400

freedreno/a6xx: don't use gmem_alignw for imported buffers

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4611>

---

 src/gallium/drivers/freedreno/freedreno_resource.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c
index 5d8a5c76f19..93738e20f74 100644
--- a/src/gallium/drivers/freedreno/freedreno_resource.c
+++ b/src/gallium/drivers/freedreno/freedreno_resource.c
@@ -855,7 +855,7 @@ fd_resource_create_with_modifiers(struct pipe_screen *pscreen,
 		struct renderonly_scanout *scanout;
 		struct winsys_handle handle;
 
-		/* apply freedreno alignment requirement */
+		/* note: alignment is wrong for a6xx */
 		scanout_templat.width0 = align(tmpl->width0, screen->gmem_alignw);
 
 		scanout = renderonly_scanout_for_resource(&scanout_templat,
@@ -1027,6 +1027,10 @@ fd_resource_from_handle(struct pipe_screen *pscreen,
 
 	uint32_t pitchalign = fd_screen(pscreen)->gmem_alignw * rsc->layout.cpp;
 
+	/* use 64 pitchalign on a6xx where gmem_alignw is not right */
+	if (is_a6xx(screen))
+		pitchalign = 64 * rsc->layout.cpp;
+
 	if ((slice->pitch < align(prsc->width0 * rsc->layout.cpp, pitchalign)) ||
 			(slice->pitch & (pitchalign - 1)))
 		goto fail;



More information about the mesa-commit mailing list