aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-graphics/mesa/files/0001-dri2-query-dma-buf-modifiers.patch
blob: 0bda0145052cd4d0ee121cd31180acc8ef2d1543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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>

--- a/src/gallium/state_trackers/dri/dri2.c
+++ b/src/gallium/state_trackers/dri/dri2.c
@@ -1366,14 +1366,28 @@ dri2_from_planar(__DRIimage *image, int
    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