dri: Consistently use createImageFromFds2(), not createImageFromFds()
dri_screen.c supports it if it supports createImageFromFds(). Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245>
This commit is contained in:
@@ -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,
|
dri2_dpy->dri_screen_render_gpu, buffer->width, buffer->height,
|
||||||
buffer->format, (int *)&name, 1, buffer->stride, buffer->offset, NULL);
|
buffer->format, (int *)&name, 1, buffer->stride, buffer->offset, NULL);
|
||||||
else
|
else
|
||||||
img = dri2_dpy->image->createImageFromFds(
|
img = dri2_dpy->image->createImageFromFds2(
|
||||||
dri2_dpy->dri_screen_render_gpu, buffer->width, buffer->height,
|
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)
|
if (img == NULL)
|
||||||
return;
|
return;
|
||||||
|
@@ -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
|
* we've gotten the planar wrapper, pull the single plane out of it and
|
||||||
* discard the wrapper.
|
* discard the wrapper.
|
||||||
*/
|
*/
|
||||||
image_planar = image->createImageFromFds(opaque_dri_screen(screen),
|
image_planar = image->createImageFromFds2(opaque_dri_screen(screen),
|
||||||
bp_reply->width,
|
bp_reply->width,
|
||||||
bp_reply->height,
|
bp_reply->height,
|
||||||
fourcc,
|
fourcc,
|
||||||
fds, 1,
|
fds, 1,
|
||||||
&stride, &offset, loaderPrivate);
|
0, &stride, &offset, loaderPrivate);
|
||||||
close(fds[0]);
|
close(fds[0]);
|
||||||
if (!image_planar)
|
if (!image_planar)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -782,13 +782,14 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
* the sARGB format. */
|
* the sARGB format. */
|
||||||
fourcc = gbm_core.v0.format_canonicalize(fd_data->format);
|
fourcc = gbm_core.v0.format_canonicalize(fd_data->format);
|
||||||
|
|
||||||
image = dri->image->createImageFromFds(dri->screen,
|
image = dri->image->createImageFromFds2(dri->screen,
|
||||||
fd_data->width,
|
fd_data->width,
|
||||||
fd_data->height,
|
fd_data->height,
|
||||||
fourcc,
|
fourcc,
|
||||||
&fd_data->fd, 1,
|
&fd_data->fd, 1,
|
||||||
&stride, &offset,
|
0,
|
||||||
NULL);
|
&stride, &offset,
|
||||||
|
NULL);
|
||||||
if (image == NULL) {
|
if (image == NULL) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -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
|
/* The linear buffer was created in the display GPU's vram, so we
|
||||||
* need to make it visible to render GPU
|
* need to make it visible to render GPU
|
||||||
*/
|
*/
|
||||||
if (draw->ext->image->base.version >= 20)
|
buffer->linear_buffer =
|
||||||
buffer->linear_buffer =
|
draw->ext->image->createImageFromFds2(draw->dri_screen_render_gpu,
|
||||||
draw->ext->image->createImageFromFds2(draw->dri_screen_render_gpu,
|
width,
|
||||||
width,
|
height,
|
||||||
height,
|
loader_image_format_to_fourcc(format),
|
||||||
loader_image_format_to_fourcc(format),
|
&buffer_fds[0], num_planes,
|
||||||
&buffer_fds[0], num_planes,
|
__DRI_IMAGE_PRIME_LINEAR_BUFFER,
|
||||||
__DRI_IMAGE_PRIME_LINEAR_BUFFER,
|
&buffer->strides[0],
|
||||||
&buffer->strides[0],
|
&buffer->offsets[0],
|
||||||
&buffer->offsets[0],
|
buffer);
|
||||||
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);
|
|
||||||
if (!buffer->linear_buffer)
|
if (!buffer->linear_buffer)
|
||||||
goto no_buffer_attrib;
|
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
|
* we've gotten the planar wrapper, pull the single plane out of it and
|
||||||
* discard the wrapper.
|
* discard the wrapper.
|
||||||
*/
|
*/
|
||||||
image_planar = image->createImageFromFds(dri_screen,
|
image_planar = image->createImageFromFds2(dri_screen,
|
||||||
bp_reply->width,
|
bp_reply->width,
|
||||||
bp_reply->height,
|
bp_reply->height,
|
||||||
loader_image_format_to_fourcc(format),
|
loader_image_format_to_fourcc(format),
|
||||||
fds, 1,
|
fds, 1,
|
||||||
&stride, &offset, loaderPrivate);
|
0, &stride, &offset, loaderPrivate);
|
||||||
close(fds[0]);
|
close(fds[0]);
|
||||||
if (!image_planar)
|
if (!image_planar)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Reference in New Issue
Block a user