From: Vasily Khoruzhick Date: Tue, 10 Dec 2019 02:23:17 +0000 (-0800) Subject: lima: use linear layout for shared buffers if modifier is not specified X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a533d1d4c607543fc1e3ca427eba50e9602f6fe2;p=mesa.git lima: use linear layout for shared buffers if modifier is not specified Use linear layout for shared buffers if modifier is not specified and use linear layout when importing buffers with invalid modifier. Fixes: 01a451b04d2d ("lima: handle DRM_FORMAT_MOD_INVALID in resource_from_handle()") Reviewed-by: Eric Anholt Reviewed-by: Erico Nunes Signed-off-by: Vasily Khoruzhick --- diff --git a/src/gallium/drivers/lima/lima_resource.c b/src/gallium/drivers/lima/lima_resource.c index 1b589ed5279..db116d06a83 100644 --- a/src/gallium/drivers/lima/lima_resource.c +++ b/src/gallium/drivers/lima/lima_resource.c @@ -193,6 +193,10 @@ _lima_resource_create_with_modifiers(struct pipe_screen *pscreen, if (templat->bind & (PIPE_BIND_LINEAR | PIPE_BIND_SCANOUT)) should_tile = false; + /* If there's no user modifiers and buffer is shared we use linear */ + if (!has_user_modifiers && (templat->bind & PIPE_BIND_SHARED)) + should_tile = false; + if (drm_find_modifier(DRM_FORMAT_MOD_LINEAR, modifiers, count)) should_tile = false; @@ -330,7 +334,10 @@ lima_resource_from_handle(struct pipe_screen *pscreen, res->tiled = true; break; case DRM_FORMAT_MOD_INVALID: - res->tiled = screen->ro == NULL; + /* Modifier wasn't specified and it's shared buffer. We create these + * as linear, so disable tiling. + */ + res->tiled = false; break; default: fprintf(stderr, "Attempted to import unsupported modifier 0x%llx\n",