diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-01-24 13:58:00 +0100 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-07-13 13:27:35 +0200 |
commit | b61822f013f3bc77a0ed7d9fc85713a646ed8613 (patch) | |
tree | 006698f49ecee354a6a507471cb9bee2dc8c9fac | |
parent | 00d25fc9be4e06beb2722156f8d5a870648ad0e7 (diff) |
egl: add support for EGL_MESA_drm_image_formats
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 21 | ||||
-rw-r--r-- | src/egl/main/eglapi.c | 2 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 2392bfbb2a..5393564be1 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1929,7 +1929,15 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx, switch (attrs.DRMBufferFormatMESA) { case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA: format = __DRI_IMAGE_FORMAT_ARGB8888; - pitch = attrs.DRMBufferStrideMESA; + break; + case EGL_DRM_BUFFER_FORMAT_ARGB2101010_MESA: + format = __DRI_IMAGE_FORMAT_ARGB2101010; + break; + case EGL_DRM_BUFFER_FORMAT_ARGB1555_MESA: + format = __DRI_IMAGE_FORMAT_ARGB1555; + break; + case EGL_DRM_BUFFER_FORMAT_RGB565_MESA: + format = __DRI_IMAGE_FORMAT_RGB565; break; default: _eglError(EGL_BAD_PARAMETER, @@ -1937,6 +1945,8 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx, return NULL; } + pitch = attrs.DRMBufferStrideMESA; + dri_image = dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen, attrs.Width, @@ -2321,6 +2331,15 @@ 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_ARGB2101010_MESA: + format = __DRI_IMAGE_FORMAT_ARGB2101010; + break; + case EGL_DRM_BUFFER_FORMAT_ARGB1555_MESA: + format = __DRI_IMAGE_FORMAT_ARGB1555; + break; + case EGL_DRM_BUFFER_FORMAT_RGB565_MESA: + format = __DRI_IMAGE_FORMAT_RGB565; + break; default: _eglError(EGL_BAD_PARAMETER, __func__); return EGL_NO_IMAGE_KHR; diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 9b899d8524..cc715c4e77 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -516,6 +516,8 @@ _eglCreateExtensionsString(_EGLDisplay *dpy) if (dpy->Extensions.KHR_no_config_context) _eglAppendExtension(&exts, "EGL_MESA_configless_context"); _EGL_CHECK_EXTENSION(MESA_drm_image); + if (dpy->Extensions.MESA_drm_image) + _eglAppendExtension(&exts, "EGL_MESA_drm_image_formats"); _EGL_CHECK_EXTENSION(MESA_image_dma_buf_export); _EGL_CHECK_EXTENSION(NOK_swap_region); |