From: Emil Velikov <[email protected]> XXX: commit message XXX: keep it inline or move to egl_dri2.c XXX: fold createwithmodifiers - now or as follow-up
Cc: Daniel Stone <[email protected]> Signed-off-by: Emil Velikov <[email protected]> --- Dan do you think it's a wise move to have this as a helper which tries the withmodifiers call first and falls back to the normal createImage? --- src/egl/drivers/dri2/egl_dri2.h | 16 ++++++++++++++++ src/egl/drivers/dri2/platform_android.c | 11 +---------- src/egl/drivers/dri2/platform_surfaceless.c | 18 +----------------- src/egl/drivers/dri2/platform_wayland.c | 18 ++++-------------- 4 files changed, 22 insertions(+), 41 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 21bbc1fd966..bad72a72c2f 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -450,4 +450,20 @@ dri2_set_WL_bind_wayland_display(_EGLDriver *drv, _EGLDisplay *disp) void dri2_display_destroy(_EGLDisplay *disp); + +static inline __DRIimage * +dri2_create_dri_image(struct dri2_egl_surface *dri2_surf, int format, + unsigned int use) +{ + struct dri2_egl_display *dri2_dpy = + dri2_egl_display(dri2_surf->base.Resource.Display); + + return dri2_dpy->image->createImage(dri2_dpy->dri_screen, + dri2_surf->base.Width, + dri2_surf->base.Height, + format, + use, + dri2_surf); +} + #endif /* EGL_DRI2_INCLUDED */ diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index 50a82486956..342f57dd94c 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -458,9 +458,6 @@ update_buffers(struct dri2_egl_surface *dri2_surf) static int get_front_bo(struct dri2_egl_surface *dri2_surf, unsigned int format) { - struct dri2_egl_display *dri2_dpy = - dri2_egl_display(dri2_surf->base.Resource.Display); - if (dri2_surf->dri_image_front) return 0; @@ -472,13 +469,7 @@ get_front_bo(struct dri2_egl_surface *dri2_surf, unsigned int format) */ _eglLog(_EGL_DEBUG, "DRI driver requested unsupported front buffer for window surface"); } else if (dri2_surf->base.Type == EGL_PBUFFER_BIT) { - dri2_surf->dri_image_front = - dri2_dpy->image->createImage(dri2_dpy->dri_screen, - dri2_surf->base.Width, - dri2_surf->base.Height, - format, - 0, - dri2_surf); + dri2_surf->dri_image_front = dri2_create_dri_image(dri2_surf, format, 0); if (!dri2_surf->dri_image_front) { _eglLog(_EGL_WARNING, "dri2_image_front allocation failed"); return -1; diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c index 1091b4febdb..6e612f01a49 100644 --- a/src/egl/drivers/dri2/platform_surfaceless.c +++ b/src/egl/drivers/dri2/platform_surfaceless.c @@ -37,19 +37,6 @@ #include "egl_dri2_fallbacks.h" #include "loader.h" -static __DRIimage* -surfaceless_alloc_image(struct dri2_egl_display *dri2_dpy, - struct dri2_egl_surface *dri2_surf) -{ - return dri2_dpy->image->createImage( - dri2_dpy->dri_screen, - dri2_surf->base.Width, - dri2_surf->base.Height, - dri2_surf->visual, - 0, - NULL); -} - static void surfaceless_free_images(struct dri2_egl_surface *dri2_surf) { @@ -71,8 +58,6 @@ surfaceless_image_get_buffers(__DRIdrawable *driDrawable, struct __DRIimageList *buffers) { struct dri2_egl_surface *dri2_surf = loaderPrivate; - struct dri2_egl_display *dri2_dpy = - dri2_egl_display(dri2_surf->base.Resource.Display); buffers->image_mask = 0; buffers->front = NULL; @@ -95,8 +80,7 @@ surfaceless_image_get_buffers(__DRIdrawable *driDrawable, if (buffer_mask & __DRI_IMAGE_BUFFER_FRONT) { if (!dri2_surf->front) - dri2_surf->front = - surfaceless_alloc_image(dri2_dpy, dri2_surf); + dri2_surf->front = dri2_create_dri_image(dri2_surf, dri2_surf->visual, 0); buffers->image_mask |= __DRI_IMAGE_BUFFER_FRONT; buffers->front = dri2_surf->front; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index 38fdfe974fa..67be9683aca 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -426,13 +426,8 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) NULL); } else { dri2_surf->back->linear_copy = - dri2_dpy->image->createImage(dri2_dpy->dri_screen, - dri2_surf->base.Width, - dri2_surf->base.Height, - dri_image_format, - use_flags | - __DRI_IMAGE_USE_LINEAR, - NULL); + dri2_create_dri_image(dri2_surf, dri_image_format, + use_flags | __DRI_IMAGE_USE_LINEAR); } if (dri2_surf->back->linear_copy == NULL) return -1; @@ -455,13 +450,8 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) NULL); } else { dri2_surf->back->dri_image = - dri2_dpy->image->createImage(dri2_dpy->dri_screen, - dri2_surf->base.Width, - dri2_surf->base.Height, - dri_image_format, - dri2_dpy->is_different_gpu ? - 0 : use_flags, - NULL); + dri2_create_dri_image(dri2_surf, dri_image_format, + dri2_dpy->is_different_gpu ? 0 : use_flags); } dri2_surf->back->age = 0; -- 2.13.3 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
