From b5045e29917a783be74becee5e72566e2b0e3535 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 5 May 2015 09:10:34 +1000 Subject: [PATCH] egl: image_dma_buf_export - use KHR 64-bit type After talking to Jon Leech he suggested this should be fine. update spec to the version in the registry. Signed-off-by: Dave Airlie --- docs/specs/MESA_image_dma_buf_export.txt | 25 ++++++++++++++---------- include/EGL/eglmesaext.h | 3 +-- src/egl/drivers/dri2/egl_dri2.c | 2 +- src/egl/main/eglapi.c | 2 +- src/egl/main/eglapi.h | 2 +- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/specs/MESA_image_dma_buf_export.txt b/docs/specs/MESA_image_dma_buf_export.txt index c3794ee3680..cc9497e437d 100644 --- a/docs/specs/MESA_image_dma_buf_export.txt +++ b/docs/specs/MESA_image_dma_buf_export.txt @@ -16,19 +16,19 @@ Contact Status - Proposal + Complete, shipping. Version - Version 2, Mar 30, 2015 + Version 3, May 5, 2015 Number - EGL Extension #not assigned + EGL Extension #87 Dependencies - Reguires EGL 1.4 or later. This extension is written against the + Requires EGL 1.4 or later. This extension is written against the wording of the EGL 1.4 specification. EGL_KHR_base_image is required. @@ -43,7 +43,8 @@ Overview file descriptor or multiple file descriptors, in the case of multi-plane YUV image, from an EGLImage. - It is designed to provide the complementary functionality to EGL_EXT_image_dma_buf_import. + It is designed to provide the complementary functionality to + EGL_EXT_image_dma_buf_import. IP Status @@ -51,10 +52,12 @@ IP Status New Types - This is a 64 bit unsigned integer. - - typedef khronos_uint64_t EGLuint64MESA; + This extension uses the 64-bit unsigned integer type EGLuint64KHR + first introduced by the EGL_KHR_stream extension, but does not + depend on that extension. The typedef may be reproduced separately + for this extension, if not already present in eglext.h. + typedef khronos_uint64_t EGLuint64KHR; New Procedures and Functions @@ -62,7 +65,7 @@ New Procedures and Functions EGLImageKHR image, int *fourcc, int *num_planes, - EGLuint64MESA *modifiers); + EGLuint64KHR *modifiers); EGLBoolean eglExportDMABUFImageMESA(EGLDisplay dpy, EGLImageKHR image, @@ -89,7 +92,7 @@ Additions to the EGL 1.4 Specification: EGLImageKHR image, int *fourcc, int *num_planes, - EGLuint64MESA *modifiers); + EGLuint64KHR *modifiers); is used to retrieve the pixel format of the buffer, as specified by drm_fourcc.h, the number of planes in the image and the Linux @@ -135,6 +138,8 @@ to dup the fd extra times to make the interface sane. Revision History + Version 3, May, 2015 + Just use the KHR 64-bit type. Version 2, March, 2015 Add a query interface (Dave Airlie) Version 1, June 3, 2014 diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h index 595babd54ef..7ce8346c2c6 100644 --- a/include/EGL/eglmesaext.h +++ b/include/EGL/eglmesaext.h @@ -173,8 +173,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EG #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 eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers); EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); #endif #endif diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 34d6bfeefac..1e843ed8fd9 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1996,7 +1996,7 @@ static EGLBoolean dri2_export_dma_buf_image_query_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *fourcc, EGLint *nplanes, - EGLuint64MESA *modifiers) + EGLuint64KHR *modifiers) { struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); struct dri2_egl_image *dri2_img = dri2_egl_image(img); diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index ec41aa3f15b..ba1d0ddc975 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -2013,7 +2013,7 @@ eglGetSyncValuesCHROMIUM(EGLDisplay display, EGLSurface surface, EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, - EGLuint64MESA *modifiers) + EGLuint64KHR *modifiers) { _EGLDisplay *disp = _eglLockDisplay(dpy); _EGLImage *img = _eglLookupImage(image, disp); diff --git a/src/egl/main/eglapi.h b/src/egl/main/eglapi.h index 52268867382..068d4ef5c1e 100644 --- a/src/egl/main/eglapi.h +++ b/src/egl/main/eglapi.h @@ -142,7 +142,7 @@ typedef EGLBoolean (*SwapBuffersWithDamageEXT_t) (_EGLDriver *drv, _EGLDisplay * typedef EGLBoolean (*GetSyncValuesCHROMIUM_t) (_EGLDisplay *dpy, _EGLSurface *surface, EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc); #ifdef EGL_MESA_image_dma_buf_export -typedef EGLBoolean (*ExportDMABUFImageQueryMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *fourcc, EGLint *nplanes, EGLuint64MESA *modifiers); +typedef EGLBoolean (*ExportDMABUFImageQueryMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers); typedef EGLBoolean (*ExportDMABUFImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *fds, EGLint *strides, EGLint *offsets); #endif -- 2.30.2