[Mesa-dev] [PATCH 2/7] egl: consolidate ifdef HAVE_LIBDRM blocks

Thomas Helland thomashelland90 at gmail.com
Mon Jul 20 15:07:07 PDT 2015


This looks a lot better.

The patch is:

Reviewed-by: Thomas Helland <thomashelland90 at gmail.com>

2015-07-10 19:49 GMT+02:00 Emil Velikov <emil.l.velikov at gmail.com>:
> Move the code around rather than having it scattered. No functional
> change.
>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
>  src/egl/drivers/dri2/egl_dri2.c | 210 +++++++++++++++++++---------------------
>  1 file changed, 102 insertions(+), 108 deletions(-)
>
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index 65194cb..a4f8db9 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -1384,53 +1384,6 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
>     return dri2_create_image_from_dri(disp, dri_image);
>  }
>
> -#ifdef HAVE_LIBDRM
> -static _EGLImage *
> -dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
> -                                 EGLClientBuffer buffer, const EGLint *attr_list)
> -{
> -   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> -   EGLint format, name, pitch, err;
> -   _EGLImageAttribs attrs;
> -   __DRIimage *dri_image;
> -
> -   name = (EGLint) (uintptr_t) buffer;
> -
> -   err = _eglParseImageAttribList(&attrs, disp, attr_list);
> -   if (err != EGL_SUCCESS)
> -      return NULL;
> -
> -   if (attrs.Width <= 0 || attrs.Height <= 0 ||
> -       attrs.DRMBufferStrideMESA <= 0) {
> -      _eglError(EGL_BAD_PARAMETER,
> -               "bad width, height or stride");
> -      return NULL;
> -   }
> -
> -   switch (attrs.DRMBufferFormatMESA) {
> -   case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA:
> -      format = __DRI_IMAGE_FORMAT_ARGB8888;
> -      pitch = attrs.DRMBufferStrideMESA;
> -      break;
> -   default:
> -      _eglError(EGL_BAD_PARAMETER,
> -               "dri2_create_image_khr: unsupported pixmap depth");
> -      return NULL;
> -   }
> -
> -   dri_image =
> -      dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
> -                                          attrs.Width,
> -                                          attrs.Height,
> -                                          format,
> -                                          name,
> -                                          pitch,
> -                                          NULL);
> -
> -   return dri2_create_image_from_dri(disp, dri_image);
> -}
> -#endif
> -
>  #ifdef HAVE_WAYLAND_PLATFORM
>
>  /* This structure describes how a wl_buffer maps to one or more
> @@ -1627,6 +1580,51 @@ dri2_create_wayland_buffer_from_image(_EGLDriver *drv, _EGLDisplay *dpy,
>  }
>
>  #ifdef HAVE_LIBDRM
> +static _EGLImage *
> +dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
> +                                 EGLClientBuffer buffer, const EGLint *attr_list)
> +{
> +   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> +   EGLint format, name, pitch, err;
> +   _EGLImageAttribs attrs;
> +   __DRIimage *dri_image;
> +
> +   name = (EGLint) (uintptr_t) buffer;
> +
> +   err = _eglParseImageAttribList(&attrs, disp, attr_list);
> +   if (err != EGL_SUCCESS)
> +      return NULL;
> +
> +   if (attrs.Width <= 0 || attrs.Height <= 0 ||
> +       attrs.DRMBufferStrideMESA <= 0) {
> +      _eglError(EGL_BAD_PARAMETER,
> +               "bad width, height or stride");
> +      return NULL;
> +   }
> +
> +   switch (attrs.DRMBufferFormatMESA) {
> +   case EGL_DRM_BUFFER_FORMAT_ARGB32_MESA:
> +      format = __DRI_IMAGE_FORMAT_ARGB8888;
> +      pitch = attrs.DRMBufferStrideMESA;
> +      break;
> +   default:
> +      _eglError(EGL_BAD_PARAMETER,
> +               "dri2_create_image_khr: unsupported pixmap depth");
> +      return NULL;
> +   }
> +
> +   dri_image =
> +      dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
> +                                          attrs.Width,
> +                                          attrs.Height,
> +                                          format,
> +                                          name,
> +                                          pitch,
> +                                          NULL);
> +
> +   return dri2_create_image_from_dri(disp, dri_image);
> +}
> +
>  static EGLBoolean
>  dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
>  {
> @@ -1856,67 +1854,6 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
>
>     return res;
>  }
> -#endif
> -
> -_EGLImage *
> -dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
> -                     _EGLContext *ctx, EGLenum target,
> -                     EGLClientBuffer buffer, const EGLint *attr_list)
> -{
> -   (void) drv;
> -
> -   switch (target) {
> -   case EGL_GL_TEXTURE_2D_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR:
> -   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR:
> -      return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
> -   case EGL_GL_TEXTURE_3D_KHR:
> -      if (disp->Extensions.KHR_gl_texture_3D_image) {
> -         return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
> -      }
> -      else {
> -         _eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
> -         return EGL_NO_IMAGE_KHR;
> -      }
> -   case EGL_GL_RENDERBUFFER_KHR:
> -      return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
> -#ifdef HAVE_LIBDRM
> -   case EGL_DRM_BUFFER_MESA:
> -      return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
> -#endif
> -#ifdef HAVE_WAYLAND_PLATFORM
> -   case EGL_WAYLAND_BUFFER_WL:
> -      return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
> -#endif
> -#ifdef HAVE_LIBDRM
> -   case EGL_LINUX_DMA_BUF_EXT:
> -      return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
> -#endif
> -   default:
> -      _eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
> -      return EGL_NO_IMAGE_KHR;
> -   }
> -}
> -
> -static EGLBoolean
> -dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
> -{
> -   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> -   struct dri2_egl_image *dri2_img = dri2_egl_image(image);
> -
> -   (void) drv;
> -
> -   dri2_dpy->image->destroyImage(dri2_img->dri_image);
> -   free(dri2_img);
> -
> -   return EGL_TRUE;
> -}
> -
> -#ifdef HAVE_LIBDRM
>  static _EGLImage *
>  dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
>                            const EGLint *attr_list)
> @@ -2076,8 +2013,65 @@ dri2_export_dma_buf_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *im
>
>     return EGL_TRUE;
>  }
> +
>  #endif
>
> +_EGLImage *
> +dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
> +                     _EGLContext *ctx, EGLenum target,
> +                     EGLClientBuffer buffer, const EGLint *attr_list)
> +{
> +   (void) drv;
> +
> +   switch (target) {
> +   case EGL_GL_TEXTURE_2D_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR:
> +   case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR:
> +      return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
> +   case EGL_GL_TEXTURE_3D_KHR:
> +      if (disp->Extensions.KHR_gl_texture_3D_image) {
> +         return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
> +      }
> +      else {
> +         _eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
> +         return EGL_NO_IMAGE_KHR;
> +      }
> +   case EGL_GL_RENDERBUFFER_KHR:
> +      return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
> +#ifdef HAVE_LIBDRM
> +   case EGL_DRM_BUFFER_MESA:
> +      return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
> +   case EGL_LINUX_DMA_BUF_EXT:
> +      return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
> +#endif
> +#ifdef HAVE_WAYLAND_PLATFORM
> +   case EGL_WAYLAND_BUFFER_WL:
> +      return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
> +#endif
> +   default:
> +      _eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
> +      return EGL_NO_IMAGE_KHR;
> +   }
> +}
> +
> +static EGLBoolean
> +dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
> +{
> +   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> +   struct dri2_egl_image *dri2_img = dri2_egl_image(image);
> +
> +   (void) drv;
> +
> +   dri2_dpy->image->destroyImage(dri2_img->dri_image);
> +   free(dri2_img);
> +
> +   return EGL_TRUE;
> +}
> +
>  #ifdef HAVE_WAYLAND_PLATFORM
>
>  static void
> --
> 2.4.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list