From 77c3c75d0cd4f82966b156bc7947e24a2c3b3eab Mon Sep 17 00:00:00 2001
From: Haixia Shi <hshi@chromium.org>
Date: Thu, 29 Sep 2016 16:32:21 -0700
Subject: [PATCH] Pass dma_buf import modifiers if driver supports this
 extension.

---
 src/waffle/egl/wegl_display.c   |  1 +
 src/waffle/egl/wegl_display.h   |  1 +
 src/waffle/gbm/wgbm_platform.h  |  1 +
 src/waffle/null/wnull_buffer.c  | 14 +++++++++++++-
 src/waffle/null/wnull_buffer.h  | 10 ++++++++++
 src/waffle/null/wnull_display.c |  1 +
 src/waffle/null/wnull_window.c  |  1 +
 7 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/waffle/egl/wegl_display.c b/src/waffle/egl/wegl_display.c
index bbe433b..fe137a3 100644
--- a/src/waffle/egl/wegl_display.c
+++ b/src/waffle/egl/wegl_display.c
@@ -51,6 +51,7 @@ get_extensions(struct wegl_display *dpy)
 
     dpy->KHR_create_context = waffle_is_extension_in_string(extensions, "EGL_KHR_create_context");
     dpy->EXT_image_dma_buf_import = waffle_is_extension_in_string(extensions, "EGL_EXT_image_dma_buf_import");
+    dpy->EXT_image_dma_buf_import_modifiers = waffle_is_extension_in_string(extensions, "EGL_EXT_image_dma_buf_import_modifiers");
 
     return true;
 }
diff --git a/src/waffle/egl/wegl_display.h b/src/waffle/egl/wegl_display.h
index 4d8c581..418ed5f 100644
--- a/src/waffle/egl/wegl_display.h
+++ b/src/waffle/egl/wegl_display.h
@@ -39,6 +39,7 @@ struct wegl_display {
     EGLDisplay egl;
     bool KHR_create_context;
     bool EXT_image_dma_buf_import;
+    bool EXT_image_dma_buf_import_modifiers;
 };
 
 DEFINE_CONTAINER_CAST_FUNC(wegl_display,
diff --git a/src/waffle/gbm/wgbm_platform.h b/src/waffle/gbm/wgbm_platform.h
index 1a08183..0d2a392 100644
--- a/src/waffle/gbm/wgbm_platform.h
+++ b/src/waffle/gbm/wgbm_platform.h
@@ -49,6 +49,7 @@
     f(uint32_t            , gbm_bo_get_height            , (struct gbm_bo *bo)) \
     f(uint32_t            , gbm_bo_get_stride            , (struct gbm_bo *bo)) \
     f(uint32_t            , gbm_bo_get_format            , (struct gbm_bo *bo)) \
+    f(uint64_t            , gbm_bo_get_modifier   , (struct gbm_bo *bo)) \
     f(union gbm_bo_handle , gbm_bo_get_handle            , (struct gbm_bo *bo)) \
     f(struct gbm_device * , gbm_bo_get_device            , (struct gbm_bo *bo))
 
diff --git a/src/waffle/null/wnull_buffer.c b/src/waffle/null/wnull_buffer.c
index 00f1303..723cade 100644
--- a/src/waffle/null/wnull_buffer.c
+++ b/src/waffle/null/wnull_buffer.c
@@ -164,7 +164,7 @@ slbuf_get_image(struct slbuf *self)
         if (fd < 0)
             goto done;
 
-        const EGLint attr[] = {
+        EGLint attr[17] = {
             EGL_WIDTH, self->p->width,
             EGL_HEIGHT, self->p->height,
             EGL_LINUX_DRM_FOURCC_EXT, slbuf_drm_format(self),
@@ -174,6 +174,18 @@ slbuf_get_image(struct slbuf *self)
             EGL_NONE,
         };
 
+        if (self->p->has_dma_buf_import_modifiers) {
+            struct gbm_bo *bo = slbuf_get_bo(self);
+            if (bo) {
+                uint64_t modifier = self->f->gbm_bo_get_modifier(bo);
+                attr[12] = EGL_LINUX_DRM_PLANE0_MODIFIER0_EXT;
+                attr[13] = (uint32_t)(modifier & 0xffffffff);
+                attr[14] = EGL_LINUX_DRM_PLANE0_MODIFIER1_EXT;
+                attr[15] = (uint32_t)(modifier >> 32);
+                attr[16] = EGL_NONE;
+            }
+        }
+
         self->image = self->f->eglCreateImageKHR(self->p->egl_display,
                                                  EGL_NO_CONTEXT,
                                                  EGL_LINUX_DMA_BUF_EXT,
diff --git a/src/waffle/null/wnull_buffer.h b/src/waffle/null/wnull_buffer.h
index 64be7cc..cf739b1 100644
--- a/src/waffle/null/wnull_buffer.h
+++ b/src/waffle/null/wnull_buffer.h
@@ -16,6 +16,15 @@
 f(EGLImageKHR, eglCreateImageKHR , (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)) \
 f(EGLBoolean , eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image)) \
 
+#if !defined (EGL_LINUX_DRM_PLANE0_MODIFIER0_EXT)
+#define EGL_LINUX_DRM_PLANE0_MODIFIER0_EXT 0x3286
+#define EGL_LINUX_DRM_PLANE0_MODIFIER1_EXT 0x3287
+#define EGL_LINUX_DRM_PLANE1_MODIFIER0_EXT 0x3288
+#define EGL_LINUX_DRM_PLANE1_MODIFIER1_EXT 0x3289
+#define EGL_LINUX_DRM_PLANE2_MODIFIER0_EXT 0x328a
+#define EGL_LINUX_DRM_PLANE2_MODIFIER1_EXT 0x328b
+#endif
+
 
 struct slbuf_func {
 #define DECLARE(type, name, args) type (*name) args;
@@ -36,6 +45,7 @@ struct slbuf_param {
     uint32_t gbm_flags;
 
     EGLDisplay egl_display;
+    bool has_dma_buf_import_modifiers;
 };
 
 struct wnull_display;
diff --git a/src/waffle/null/wnull_display.c b/src/waffle/null/wnull_display.c
index 70aa565..fc4798e 100644
--- a/src/waffle/null/wnull_display.c
+++ b/src/waffle/null/wnull_display.c
@@ -236,6 +236,7 @@ wnull_display_connect(struct wcore_platform *wc_plat,
     self->param.color = true;
     self->param.gbm_device = self->drm->gbm_device;
     self->param.egl_display = self->wegl.egl;
+    self->param.has_dma_buf_import_modifiers = self->wegl.EXT_image_dma_buf_import_modifiers;
 
 #define ASSIGN(type, name, args) self->func.name = plat->name;
     GBM_FUNCTIONS(ASSIGN);
diff --git a/src/waffle/null/wnull_window.c b/src/waffle/null/wnull_window.c
index 402e685..86b5132 100644
--- a/src/waffle/null/wnull_window.c
+++ b/src/waffle/null/wnull_window.c
@@ -233,6 +233,7 @@ wnull_window_create(struct wcore_platform *wc_plat,
             break;
     }
     window->param.egl_display = dpy->wegl.egl;
+    window->param.has_dma_buf_import_modifiers = dpy->wegl.EXT_image_dma_buf_import_modifiers;
 
     struct wgbm_platform *plat = wgbm_platform(wegl_platform(wc_plat));
 #define ASSIGN(type, name, args) window->func.name = plat->name;
-- 
2.8.0.rc3.226.g39d4020

