This came up whith disabled DRI3 on Raspi/VC4 [1] but might be important for other drivers: It fixes an improper initialization.
[1] https://lists.freedesktop.org/archives/mesa-dev/2018-March/190562.html Signed-off-by: Andreas Müller <schnitzelt...@gmail.com> --- ...i-Initialise-modifier-to-INVALID-for-DRI2.patch | 43 ++++++++++++++++++++++ meta/recipes-graphics/mesa/mesa_17.3.7.bb | 1 + 2 files changed, 44 insertions(+) create mode 100644 meta/recipes-graphics/mesa/files/0001-st-dri-Initialise-modifier-to-INVALID-for-DRI2.patch diff --git a/meta/recipes-graphics/mesa/files/0001-st-dri-Initialise-modifier-to-INVALID-for-DRI2.patch b/meta/recipes-graphics/mesa/files/0001-st-dri-Initialise-modifier-to-INVALID-for-DRI2.patch new file mode 100644 index 0000000000..6aba7859ee --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-st-dri-Initialise-modifier-to-INVALID-for-DRI2.patch @@ -0,0 +1,43 @@ +From 4cbecb61682a0ee426faaa03d824fc8fd7aef826 Mon Sep 17 00:00:00 2001 +From: Daniel Stone <dani...@collabora.com> +Date: Mon, 2 Apr 2018 13:20:34 +0100 +Subject: [PATCH] st/dri: Initialise modifier to INVALID for DRI2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When allocating a buffer for DRI2, set the modifier to INVALID to inform +the backend that we have no supplied modifiers and it should do its own +thing. The missed initialisation forced linear, even if the +implementation had made other decisions. + +This resulted in VC4 DRI2 clients failing with: + Modifier 0x0 vs. tiling (0x700000000000001) mismatch + +Signed-off-by: Daniel Stone <dani...@collabora.com> +Reported-by: Andreas Müller <schnitzelt...@gmail.com> +Reviewed-by: Eric Anholt <e...@anholt.net> +Fixes: 3f8513172ff6 ("gallium/winsys/drm: introduce modifier field to winsys_handle") + +Upstream-Status: Backport [1] + +[1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=4cbecb61682a0ee426faaa03d824fc8fd7aef826 +--- + src/gallium/state_trackers/dri/dri2.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c +index 31d17d46c2..58a6757f03 100644 +--- a/src/gallium/state_trackers/dri/dri2.c ++++ b/src/gallium/state_trackers/dri/dri2.c +@@ -806,6 +806,7 @@ dri2_allocate_textures(struct dri_context *ctx, + whandle.handle = buf->name; + whandle.stride = buf->pitch; + whandle.offset = 0; ++ whandle.modifier = DRM_FORMAT_MOD_INVALID; + if (screen->can_share_buffer) + whandle.type = DRM_API_HANDLE_TYPE_SHARED; + else +-- +2.14.3 + diff --git a/meta/recipes-graphics/mesa/mesa_17.3.7.bb b/meta/recipes-graphics/mesa/mesa_17.3.7.bb index fe09a2988d..9c75d6c693 100644 --- a/meta/recipes-graphics/mesa/mesa_17.3.7.bb +++ b/meta/recipes-graphics/mesa/mesa_17.3.7.bb @@ -9,6 +9,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://llvm-config-version.patch \ file://0001-winsys-svga-drm-Include-sys-types.h.patch \ file://0001-Makefile.vulkan.am-explictly-add-lib-expat-to-intel-.patch \ + file://0001-st-dri-Initialise-modifier-to-INVALID-for-DRI2.patch \ " SRC_URI[md5sum] = "769137f2538562c300c4b76bcb097377" -- 2.14.3 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core