From 62ac4adecb9269b15659bef2cbe69e0f7c77630c Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 31 May 2021 18:08:14 -0400 Subject: [PATCH] asahi: Handle linear display targets as well as tiled Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/asahi/agx_pipe.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index fa76af1..5eee838 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -593,9 +593,13 @@ agx_flush_frontbuffer(struct pipe_screen *_screen, void *map = winsys->displaytarget_map(winsys, rsrc->dt, PIPE_USAGE_DEFAULT); assert(map != NULL); - agx_detile(rsrc->bo->ptr.cpu, map, - rsrc->base.width0, 32, rsrc->dt_stride / 4, - 0, 0, rsrc->base.width0, rsrc->base.height0); + if (rsrc->modifier == DRM_FORMAT_MOD_APPLE_64X64_MORTON_ORDER) { + agx_detile(rsrc->bo->ptr.cpu, map, + rsrc->base.width0, 32, rsrc->dt_stride / 4, + 0, 0, rsrc->base.width0, rsrc->base.height0); + } else { + memcpy(map, rsrc->bo->ptr.cpu, rsrc->dt_stride * rsrc->base.height0); + } winsys->displaytarget_display(winsys, rsrc->dt, context_private, box); } -- 2.7.4