diff options
author | Dave Airlie <airlied@redhat.com> | 2014-03-03 13:57:16 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-04-01 14:10:04 +1000 |
commit | 8f7338f284cdb1fef64c85e3293d2200d0cc6387 (patch) | |
tree | 23fed8ea291e6859c04fee041ba9b22d8d7e0fc4 /include | |
parent | 22ccdf12dd7b5db6eb0c8f2b03c3516f8376fdad (diff) |
egl: add initial EGL_MESA_image_dma_buf_export v2.4
At the moment to get an EGL image to a dma-buf file descriptor,
you have to use EGL_MESA_drm_image, and then use libdrm to
convert this to a file descriptor.
This extension just provides an API modelled on EGL_MESA_drm_image,
to return a dma-buf file descriptor.
v2: update spec for new API proposal
add internal queries to get the fourcc back from intel driver.
v2.1: add gallium pieces.
v2.2: add offsets to spec and API, rename fd->fds, stride->strides
in API. rewrite spec a bit more, add some q/a
v2.3:
add modifiers to query interface and 64-bit type for that (Daniel Stone)
specifiy what happens to num fds vs num planes differences. (Chad Versace)
v2.4:
fix grammar (Daniel Stone)
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/EGL/eglmesaext.h | 8 | ||||
-rw-r--r-- | include/GL/internal/dri_interface.h | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h index 5fcc527d65..595babd54e 100644 --- a/include/EGL/eglmesaext.h +++ b/include/EGL/eglmesaext.h @@ -170,6 +170,14 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EG #define EGL_NO_CONFIG_MESA ((EGLConfig)0) #endif +#if KHRONOS_SUPPORT_INT64 +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 +typedef khronos_uint64_t EGLuint64MESA; +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64MESA *modifiers); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#endif +#endif #ifdef __cplusplus } #endif diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 1d670b1e08..eb7da23f7b 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1006,7 +1006,7 @@ struct __DRIdri2ExtensionRec { * extensions. */ #define __DRI_IMAGE "DRI_IMAGE" -#define __DRI_IMAGE_VERSION 10 +#define __DRI_IMAGE_VERSION 11 /** * These formats correspond to the similarly named MESA_FORMAT_* @@ -1097,6 +1097,8 @@ struct __DRIdri2ExtensionRec { #define __DRI_IMAGE_ATTRIB_FD 0x2007 /* available in versions * 7+. Each query will return a * new fd. */ +#define __DRI_IMAGE_ATTRIB_FOURCC 0x2008 /* available in versions 11 */ +#define __DRI_IMAGE_ATTRIB_NUM_PLANES 0x2009 /* available in versions 11 */ enum __DRIYUVColorSpace { __DRI_YUV_COLOR_SPACE_UNDEFINED = 0, |