blob: 6aba7859ee80c4c7a89da480de7b612dcea785ae [file] [log] [blame]
Brad Bishop316dfdd2018-06-25 12:45:53 -04001From 4cbecb61682a0ee426faaa03d824fc8fd7aef826 Mon Sep 17 00:00:00 2001
2From: Daniel Stone <daniels@collabora.com>
3Date: Mon, 2 Apr 2018 13:20:34 +0100
4Subject: [PATCH] st/dri: Initialise modifier to INVALID for DRI2
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9When allocating a buffer for DRI2, set the modifier to INVALID to inform
10the backend that we have no supplied modifiers and it should do its own
11thing. The missed initialisation forced linear, even if the
12implementation had made other decisions.
13
14This resulted in VC4 DRI2 clients failing with:
15 Modifier 0x0 vs. tiling (0x700000000000001) mismatch
16
17Signed-off-by: Daniel Stone <daniels@collabora.com>
18Reported-by: Andreas MΓΌller <schnitzeltony@gmail.com>
19Reviewed-by: Eric Anholt <eric@anholt.net>
20Fixes: 3f8513172ff6 ("gallium/winsys/drm: introduce modifier field to winsys_handle")
21
22Upstream-Status: Backport [1]
23
24[1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=4cbecb61682a0ee426faaa03d824fc8fd7aef826
25---
26 src/gallium/state_trackers/dri/dri2.c | 1 +
27 1 file changed, 1 insertion(+)
28
29diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c
30index 31d17d46c2..58a6757f03 100644
31--- a/src/gallium/state_trackers/dri/dri2.c
32+++ b/src/gallium/state_trackers/dri/dri2.c
33@@ -806,6 +806,7 @@ dri2_allocate_textures(struct dri_context *ctx,
34 whandle.handle = buf->name;
35 whandle.stride = buf->pitch;
36 whandle.offset = 0;
37+ whandle.modifier = DRM_FORMAT_MOD_INVALID;
38 if (screen->can_share_buffer)
39 whandle.type = DRM_API_HANDLE_TYPE_SHARED;
40 else
41--
422.14.3
43