From 13ea03f0884b587fbf22ba2faf4bdc75adc2532b Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Wed, 11 Oct 2023 10:43:01 -0700 Subject: [PATCH] dri: Consistently use createImageFromFds2(), not createImageFromFds() dri_screen.c supports it if it supports createImageFromFds(). Part-of: --- src/egl/drivers/dri2/egl_dri2.c | 4 +-- src/gallium/frontends/dri/kopper.c | 12 ++++----- src/gbm/backends/dri/gbm_dri.c | 15 ++++++----- src/loader/loader_dri3_helper.c | 43 +++++++++++------------------- 4 files changed, 32 insertions(+), 42 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 9b3ffa3ab83..21a5baa25c9 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -3154,9 +3154,9 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, int fd, dri2_dpy->dri_screen_render_gpu, buffer->width, buffer->height, buffer->format, (int *)&name, 1, buffer->stride, buffer->offset, NULL); else - img = dri2_dpy->image->createImageFromFds( + img = dri2_dpy->image->createImageFromFds2( dri2_dpy->dri_screen_render_gpu, buffer->width, buffer->height, - buffer->format, &fd, 1, buffer->stride, buffer->offset, NULL); + buffer->format, &fd, 1, 0, buffer->stride, buffer->offset, NULL); if (img == NULL) return; diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c index e7a6bc7caa0..acdd9a477d8 100644 --- a/src/gallium/frontends/dri/kopper.c +++ b/src/gallium/frontends/dri/kopper.c @@ -283,12 +283,12 @@ dri3_create_image(xcb_connection_t *c, * we've gotten the planar wrapper, pull the single plane out of it and * discard the wrapper. */ - image_planar = image->createImageFromFds(opaque_dri_screen(screen), - bp_reply->width, - bp_reply->height, - fourcc, - fds, 1, - &stride, &offset, loaderPrivate); + image_planar = image->createImageFromFds2(opaque_dri_screen(screen), + bp_reply->width, + bp_reply->height, + fourcc, + fds, 1, + 0, &stride, &offset, loaderPrivate); close(fds[0]); if (!image_planar) return NULL; diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index ec95a74443c..1007d1913a2 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -782,13 +782,14 @@ gbm_dri_bo_import(struct gbm_device *gbm, * the sARGB format. */ fourcc = gbm_core.v0.format_canonicalize(fd_data->format); - image = dri->image->createImageFromFds(dri->screen, - fd_data->width, - fd_data->height, - fourcc, - &fd_data->fd, 1, - &stride, &offset, - NULL); + image = dri->image->createImageFromFds2(dri->screen, + fd_data->width, + fd_data->height, + fourcc, + &fd_data->fd, 1, + 0, + &stride, &offset, + NULL); if (image == NULL) { errno = EINVAL; return NULL; diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index 0aea65258ce..1ee8d0843d3 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -1617,27 +1617,16 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format, /* The linear buffer was created in the display GPU's vram, so we * need to make it visible to render GPU */ - if (draw->ext->image->base.version >= 20) - buffer->linear_buffer = - draw->ext->image->createImageFromFds2(draw->dri_screen_render_gpu, - width, - height, - loader_image_format_to_fourcc(format), - &buffer_fds[0], num_planes, - __DRI_IMAGE_PRIME_LINEAR_BUFFER, - &buffer->strides[0], - &buffer->offsets[0], - buffer); - else - buffer->linear_buffer = - draw->ext->image->createImageFromFds(draw->dri_screen_render_gpu, - width, - height, - loader_image_format_to_fourcc(format), - &buffer_fds[0], num_planes, - &buffer->strides[0], - &buffer->offsets[0], - buffer); + buffer->linear_buffer = + draw->ext->image->createImageFromFds2(draw->dri_screen_render_gpu, + width, + height, + loader_image_format_to_fourcc(format), + &buffer_fds[0], num_planes, + __DRI_IMAGE_PRIME_LINEAR_BUFFER, + &buffer->strides[0], + &buffer->offsets[0], + buffer); if (!buffer->linear_buffer) goto no_buffer_attrib; @@ -1855,12 +1844,12 @@ loader_dri3_create_image(xcb_connection_t *c, * we've gotten the planar wrapper, pull the single plane out of it and * discard the wrapper. */ - image_planar = image->createImageFromFds(dri_screen, - bp_reply->width, - bp_reply->height, - loader_image_format_to_fourcc(format), - fds, 1, - &stride, &offset, loaderPrivate); + image_planar = image->createImageFromFds2(dri_screen, + bp_reply->width, + bp_reply->height, + loader_image_format_to_fourcc(format), + fds, 1, + 0, &stride, &offset, loaderPrivate); close(fds[0]); if (!image_planar) return NULL;