update DrmEglServerIntegration to handle experimental 8 bit support
Change-Id: I8fa4ecf8b0848ca681f944a5fa56a4f6bb0a76be Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This commit is contained in:
parent
d156eae3c5
commit
2d3a63fb52
112
src/3rdparty/wayland/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch
vendored
Normal file
112
src/3rdparty/wayland/patches/0001-Add-a-EGL_DRM_BUFFER_FORMAT_A8_MESA.patch
vendored
Normal file
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user