This 2 patches allow to derive a va surface as a va image. Which one can be exported as dmabuf by calling VaAcquireBufferHandle.
I have tested these patches with gstreamer-vaapi and nouveau driver. The pipeline looks like: gstvaapidecode:(vasurface, NV12) -> gstvaapipostproc:(dmabuf, RGBA) -> glimagesink(EGL_EXT_image_dma_buf_import) I even went further by doing export and import in separate processes, i.e. exporting the surface in a process A, and importing in an EGLImage in a process B. The concrete use case is the GStreamer backend for the Chromium browser: https://github.com/Samsung/ChromiumGStreamerBackend The VA surface is exported as dmabuf in the new Media Process. Then this dmabuf is imported into an EGLImage in the GPU Process. Julien Isorce (2): st/va: implement VaDeriveImage st/va: add support to export a surface as dmabuf src/gallium/state_trackers/va/buffer.c | 181 ++++++++++++++++++++++++++++- src/gallium/state_trackers/va/context.c | 4 +- src/gallium/state_trackers/va/image.c | 92 ++++++++++++++- src/gallium/state_trackers/va/va_private.h | 11 ++ 4 files changed, 281 insertions(+), 7 deletions(-) -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev