-
Pekka Paalanen authored
Import dmabuf as an EGLImage, and hold on to the EGLImage until we are signalled a content change. On content change, destroy the EGLImage and re-import to trigger GPU cache flushes. We hold on to the EGLImage as long as possible just in case the client does other imports that might later make re-importing fail. As dmabuf protocol uses drm_fourcc codes, we need libdrm for drm_fourcc.h. However, we are not doing any libdrm function calls, so there is no new need to link to libdrm. RFCv1 changes: - fix error if dmabuf exposed unsupported - always use GL_TEXTURE_EXTERNAL_OES with dmabuf v2 changes: - improve support check and error handling - hold on to the imported EGLImage to avoid the dmabuf becoming unimportable in the future - send internal errors with linux_dmabuf_buffer_send_server_error() - import EGL_EXT_image_dma_buf_import extension headers - use heuristics to decide between GL_TEXTURE_2D and GL_TEXTURE_EXTERNAL_OES - add comment about Mesa requirements - change y-invert from per-plane boolean to per-buffer flag Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
Pekka Paalanen authoredImport dmabuf as an EGLImage, and hold on to the EGLImage until we are signalled a content change. On content change, destroy the EGLImage and re-import to trigger GPU cache flushes. We hold on to the EGLImage as long as possible just in case the client does other imports that might later make re-importing fail. As dmabuf protocol uses drm_fourcc codes, we need libdrm for drm_fourcc.h. However, we are not doing any libdrm function calls, so there is no new need to link to libdrm. RFCv1 changes: - fix error if dmabuf exposed unsupported - always use GL_TEXTURE_EXTERNAL_OES with dmabuf v2 changes: - improve support check and error handling - hold on to the imported EGLImage to avoid the dmabuf becoming unimportable in the future - send internal errors with linux_dmabuf_buffer_send_server_error() - import EGL_EXT_image_dma_buf_import extension headers - use heuristics to decide between GL_TEXTURE_2D and GL_TEXTURE_EXTERNAL_OES - add comment about Mesa requirements - change y-invert from per-plane boolean to per-buffer flag Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>