aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-graphics/mesa/files/0001-dri2-query-dma-buf-modifiers.patch45
-rw-r--r--recipes-graphics/mesa/mesa_%.bbappend4
2 files changed, 49 insertions, 0 deletions
diff --git a/recipes-graphics/mesa/files/0001-dri2-query-dma-buf-modifiers.patch b/recipes-graphics/mesa/files/0001-dri2-query-dma-buf-modifiers.patch
new file mode 100644
index 0000000..3ff469d
--- /dev/null
+++ b/recipes-graphics/mesa/files/0001-dri2-query-dma-buf-modifiers.patch
@@ -0,0 +1,45 @@
+mesa: querying dma_buf_modifiers for specific formats
+
+mesa wl_drm protocol is the backend for wayland server side which requires
+the dmabuf modifiers for some DRM formats on specific devices like RPI.
+Currently there is no support of giving any dmabuf modifiers on wl_drm protocol.
+This dma_buf modifiers allows EGL implementations to add extra attributes
+to drm_fourcc format.
+
+Upstream-Status: Pending
+
+Signed-off-by: Balaji Velmurugan <balaji.velmurugan@ltts.com>
+
+diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c
+index 6ce6f19..2f9d47d 100644
+--- a/src/gallium/state_trackers/dri/dri2.c
++++ b/src/gallium/state_trackers/dri/dri2.c
+@@ -1368,14 +1368,28 @@ dri2_from_planar(__DRIimage *image, int plane, void *loaderPrivate)
+ return img;
+ }
+
++static boolean
++dri2_query_dma_buf_modifiers(__DRIscreen *_screen, int fourcc, int max,
++ uint64_t *modifiers, unsigned int *external_only,
++ int *count);
+ static __DRIimage *
+ dri2_from_fds(__DRIscreen *screen, int width, int height, int fourcc,
+ int *fds, int num_fds, int *strides, int *offsets,
+ void *loaderPrivate)
+ {
++ uint64_t modifier= DRM_FORMAT_MOD_INVALID;
++ unsigned int external_only= 0;
++ int count= 0;
++ boolean result;
++ result= dri2_query_dma_buf_modifiers( screen, fourcc, 1, &modifier, &external_only, &count);
++ return dri2_create_image_from_fd(screen, width, height, fourcc,
++ modifier, fds, num_fds,
++ strides, offsets, NULL, loaderPrivate);
++ #if 0
+ return dri2_create_image_from_fd(screen, width, height, fourcc,
+ DRM_FORMAT_MOD_INVALID, fds, num_fds,
+ strides, offsets, NULL, loaderPrivate);
++ #endif
+ }
+
+ static boolean
diff --git a/recipes-graphics/mesa/mesa_%.bbappend b/recipes-graphics/mesa/mesa_%.bbappend
index eaa46f2..d3435e7 100644
--- a/recipes-graphics/mesa/mesa_%.bbappend
+++ b/recipes-graphics/mesa/mesa_%.bbappend
@@ -1,6 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
# DRI3 note:
# With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
# in case oe-core changes this default, we set dri3 explicitly.
+
+SRC_URI_append_rpi = " file://0001-dri2-query-dma-buf-modifiers.patch "
+
PACKAGECONFIG_append_rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}"
DRIDRIVERS_class-target_rpi = ""