Module: Mesa Branch: main Commit: 8fd5b16efc60ad666b05ec745109d0a482b6157b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8fd5b16efc60ad666b05ec745109d0a482b6157b
Author: Lucas Stach <[email protected]> Date: Tue Dec 15 14:52:28 2020 +0100 loader/dri3: convert to loader_dri_create_image Get rid of the code duplication and makes it easier to hook in a new createImageWithModifiers2, but obscures the code flow a bit. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106> --- src/loader/loader_dri3_helper.c | 40 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index 6c4b704ae5b..c5e340e6942 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -34,6 +34,7 @@ #include <X11/Xlib-xcb.h> +#include "loader_dri_helper.h" #include "loader_dri3_helper.h" #include "util/macros.h" #include "drm-uapi/drm_fourcc.h" @@ -1314,6 +1315,8 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format, struct xshmfence *shm_fence; int buffer_fds[4], fence_fd; int num_planes = 0; + uint64_t *modifiers = NULL; + uint32_t count = 0; int i, mod; int ret; @@ -1348,8 +1351,6 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format, xcb_dri3_get_supported_modifiers_cookie_t mod_cookie; xcb_dri3_get_supported_modifiers_reply_t *mod_reply; xcb_generic_error_t *error = NULL; - uint64_t *modifiers = NULL; - uint32_t count = 0; mod_cookie = xcb_dri3_get_supported_modifiers(draw->conn, draw->window, @@ -1395,34 +1396,17 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format, } free(mod_reply); - - /* don't use createImageWithModifiers() if we have no - * modifiers, other things depend on the use flags when - * there are no modifiers to know that a buffer can be - * shared. - */ - if (modifiers) { - buffer->image = draw->ext->image->createImageWithModifiers(draw->dri_screen, - width, height, - format, - modifiers, - count, - buffer); - } - - free(modifiers); } #endif - if (!buffer->image) - buffer->image = draw->ext->image->createImage(draw->dri_screen, - width, height, - format, - __DRI_IMAGE_USE_SHARE | - __DRI_IMAGE_USE_SCANOUT | - __DRI_IMAGE_USE_BACKBUFFER | - (draw->is_protected_content ? - __DRI_IMAGE_USE_PROTECTED : 0), - buffer); + buffer->image = loader_dri_create_image(draw->dri_screen, draw->ext->image, + width, height, format, + __DRI_IMAGE_USE_SHARE | + __DRI_IMAGE_USE_SCANOUT | + __DRI_IMAGE_USE_BACKBUFFER | + (draw->is_protected_content ? + __DRI_IMAGE_USE_PROTECTED : 0), + modifiers, count, buffer); + free(modifiers); pixmap_buffer = buffer->image; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
