mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2025-12-20 08:10:10 +01:00
gl-renderer: Don't re-import dmabufs
My reading of the GL spec is that a dmabuf becomes a sibling to the EGLImage created from it, and that all updates to the dmabuf will be propagated to the EGLImage. A rebind is still required every time the dmabuf content changes, but this should be satisfied by gl_renderer_attach(), which does a rebind when the buffer is commit. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
parent
b47e2cc902
commit
0b51b02c5e
1 changed files with 0 additions and 37 deletions
|
|
@ -2732,35 +2732,6 @@ gl_renderer_import_dmabuf(struct weston_compositor *ec,
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
import_known_dmabuf(struct gl_renderer *gr,
|
||||
struct dmabuf_image *image)
|
||||
{
|
||||
switch (image->import_type) {
|
||||
case IMPORT_TYPE_DIRECT:
|
||||
image->images[0] = import_simple_dmabuf(gr, &image->dmabuf->attributes);
|
||||
if (!image->images[0]) {
|
||||
/* num_images is already set to 1 when doing the intial
|
||||
* import so reset it to 0 to avoid passing an empty
|
||||
* egl_image to dmabuf_destroy */
|
||||
image->num_images = 0;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case IMPORT_TYPE_GL_CONVERSION:
|
||||
if (!import_yuv_dmabuf(gr, image))
|
||||
return false;
|
||||
break;
|
||||
|
||||
default:
|
||||
weston_log("Invalid import type for dmabuf\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
dmabuf_is_opaque(struct linux_dmabuf_buffer *dmabuf)
|
||||
{
|
||||
|
|
@ -2829,14 +2800,6 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface,
|
|||
/* The dmabuf_image should have been created during the import */
|
||||
assert(image != NULL);
|
||||
|
||||
for (i = 0; i < image->num_images; ++i)
|
||||
egl_image_unref(image->images[i]);
|
||||
|
||||
if (!import_known_dmabuf(gr, image)) {
|
||||
linux_dmabuf_buffer_send_server_error(dmabuf, "EGL dmabuf import failed");
|
||||
return;
|
||||
}
|
||||
|
||||
gs->num_images = image->num_images;
|
||||
for (i = 0; i < gs->num_images; ++i)
|
||||
gs->images[i] = egl_image_ref(image->images[i]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue