aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-graphics
diff options
context:
space:
mode:
authorrkhan467 <Riyaz.l@ltts.com>2020-01-14 17:55:06 +0530
committerAndrei Gherzan <andrei@gherzan.ro>2020-03-10 17:49:23 +0000
commit84cb8538cd22586fc82daba38458909cedfec2db (patch)
tree0e8a33e97c479d06bb0c2a1558a59e5aad0fc61b /recipes-graphics
parentc5bc55687323a703aa21a0170f6509a1b04bd78b (diff)
downloadmeta-raspberrypi-84cb8538cd22586fc82daba38458909cedfec2db.tar.gz
meta-raspberrypi-84cb8538cd22586fc82daba38458909cedfec2db.tar.bz2
meta-raspberrypi-84cb8538cd22586fc82daba38458909cedfec2db.zip
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>
Diffstat (limited to 'recipes-graphics')
-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 = ""