summaryrefslogtreecommitdiffstats
path: root/src/3rdparty
diff options
context:
space:
mode:
authorJorgen Lind <jorgen.lind@digia.com>2013-12-20 14:34:16 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-06 10:19:53 +0100
commit445cf0105544eb0002971b652460efc6b841e671 (patch)
tree8caae6c04918583cfcafff8591c52e34394e6ae5 /src/3rdparty
parent76bb668aee8be5e8e1f022c4d09603d957e8e7e7 (diff)
update DrmEglServerIntegration to handle experimental 8 bit support
Change-Id: I8fa4ecf8b0848ca681f944a5fa56a4f6bb0a76be Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/3rdparty')
-rw-r--r--src/3rdparty/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/3rdparty/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch b/src/3rdparty/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch
new file mode 100644
index 000000000..46fac7144
--- /dev/null
+++ b/src/3rdparty/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch
@@ -0,0 +1,112 @@
+From 52dbed7516b79459d1c8f2ed3ea4a5e71734c969 Mon Sep 17 00:00:00 2001
+From: Jorgen Lind <jorgen.lind@digia.com>
+Date: Thu, 2 Jan 2014 12:28:54 +0100
+Subject: [PATCH] Add a EGL_DRM_BUFFER_FORMAT_A8_MESA
+
+This is to allow us to share A8 DRM buffers between processes
+---
+ include/EGL/eglext.h | 1 +
+ include/GL/internal/dri_interface.h | 1 +
+ src/egl/drivers/dri2/egl_dri2.c | 7 +++++++
+ src/mesa/drivers/dri/i915/intel_screen.c | 5 +++++
+ src/mesa/drivers/dri/i965/intel_screen.c | 5 +++++
+ 5 files changed, 19 insertions(+)
+
+diff --git a/include/EGL/eglext.h b/include/EGL/eglext.h
+index 1d68178..6c4fb7e 100644
+--- a/include/EGL/eglext.h
++++ b/include/EGL/eglext.h
+@@ -271,6 +271,7 @@ typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dp
+ #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 /* CreateDRMImageMESA attribute */
+ #define EGL_DRM_BUFFER_USE_MESA 0x31D1 /* CreateDRMImageMESA attribute */
+ #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 /* EGL_IMAGE_FORMAT_MESA attribute value */
++#define EGL_DRM_BUFFER_FORMAT_A8_MESA 0x31D5 /* EGL_IMAGE_FORMAT_MESA attribute value */
+ #define EGL_DRM_BUFFER_MESA 0x31D3 /* eglCreateImageKHR target */
+ #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
+ #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 /* EGL_DRM_BUFFER_USE_MESA bits */
+diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
+index 5c99d55..565f1fb 100644
+--- a/include/GL/internal/dri_interface.h
++++ b/include/GL/internal/dri_interface.h
+@@ -964,6 +964,7 @@ struct __DRIdri2ExtensionRec {
+ #define __DRI_IMAGE_FORMAT_R8 0x1006 /* Since version 5 */
+ #define __DRI_IMAGE_FORMAT_GR88 0x1007
+ #define __DRI_IMAGE_FORMAT_NONE 0x1008
++#define __DRI_IMAGE_FORMAT_A8 0x1009 /* Patch */
+
+ #define __DRI_IMAGE_USE_SHARE 0x0001
+ #define __DRI_IMAGE_USE_SCANOUT 0x0002
+diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
+index a8584b7..1cb6967 100644
+--- a/src/egl/drivers/dri2/egl_dri2.c
++++ b/src/egl/drivers/dri2/egl_dri2.c
+@@ -1152,6 +1152,10 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
+ format = __DRI_IMAGE_FORMAT_ARGB8888;
+ pitch = attrs.DRMBufferStrideMESA;
+ break;
++ case EGL_DRM_BUFFER_FORMAT_A8_MESA:
++ format = __DRI_IMAGE_FORMAT_A8;
++ pitch = attrs.DRMBufferStrideMESA;
++ break;
+ default:
+ _eglError(EGL_BAD_PARAMETER,
+ "dri2_create_image_khr: unsupported pixmap depth");
+@@ -1427,6 +1431,9 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
+ case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA:
+ format = __DRI_IMAGE_FORMAT_ARGB8888;
+ break;
++ case EGL_DRM_BUFFER_FORMAT_A8_MESA:
++ format = __DRI_IMAGE_FORMAT_A8;
++ break;
+ default:
+ _eglLog(_EGL_WARNING, "bad image format value 0x%04x",
+ attrs.DRMBufferFormatMESA);
+diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c
+index 30a867e..3e1909b 100644
+--- a/src/mesa/drivers/dri/i915/intel_screen.c
++++ b/src/mesa/drivers/dri/i915/intel_screen.c
+@@ -261,6 +261,9 @@ intel_allocate_image(int dri_format, void *loaderPrivate)
+ case __DRI_IMAGE_FORMAT_R8:
+ image->format = MESA_FORMAT_R8;
+ break;
++ case __DRI_IMAGE_FORMAT_A8:
++ image->format = MESA_FORMAT_A8;
++ break;
+ case __DRI_IMAGE_FORMAT_GR88:
+ image->format = MESA_FORMAT_GR88;
+ break;
+@@ -330,6 +333,8 @@ intel_dri_format(GLuint format)
+ return __DRI_IMAGE_FORMAT_ABGR8888;
+ case MESA_FORMAT_R8:
+ return __DRI_IMAGE_FORMAT_R8;
++ case MESA_FORMAT_A8:
++ return __DRI_IMAGE_FORMAT_A8;
+ case MESA_FORMAT_RG88:
+ return __DRI_IMAGE_FORMAT_GR88;
+ }
+diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
+index f913c42..68ee33b 100644
+--- a/src/mesa/drivers/dri/i965/intel_screen.c
++++ b/src/mesa/drivers/dri/i965/intel_screen.c
+@@ -262,6 +262,9 @@ intel_allocate_image(int dri_format, void *loaderPrivate)
+ case __DRI_IMAGE_FORMAT_R8:
+ image->format = MESA_FORMAT_R8;
+ break;
++ case __DRI_IMAGE_FORMAT_A8:
++ image->format = MESA_FORMAT_A8;
++ break;
+ case __DRI_IMAGE_FORMAT_GR88:
+ image->format = MESA_FORMAT_GR88;
+ break;
+@@ -334,6 +337,8 @@ intel_dri_format(GLuint format)
+ return __DRI_IMAGE_FORMAT_ABGR8888;
+ case MESA_FORMAT_R8:
+ return __DRI_IMAGE_FORMAT_R8;
++ case MESA_FORMAT_A8:
++ return __DRI_IMAGE_FORMAT_A8;
+ case MESA_FORMAT_RG88:
+ return __DRI_IMAGE_FORMAT_GR88;
+ }
+--
+1.8.5.1
+