[Mesa-dev] [PATCH v5 00/10] st/va: add support for VPP, headless and dmabuf
j.isorce at samsung.com
Fri Oct 30 04:42:43 PDT 2015
All these patches have been already reviewed by Emil Velikov.
And are now under review by Christian Koenig.
This patch serie adds initial support for Video Post Processing.
It also implements VaCreateSurfaces2 for common purpose and
also to import a dmabuf. It also adds support for headless mode,
i.e. using DRM instead of X11.
This 2 last 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:
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 (10):
st/va: properly defines VAImageFormat formats and improve
st/va: do not destroy old buffer when new one failed
st/va: implement VaCreateSurfaces2 and VaQuerySurfaceAttributes
st/va: implement dmabuf import for VaCreateSurfaces2
st/va: add colospace conversion through Video Post Processing
st/va: handle Video Post Processing for configs
st/va: add headless support, i.e. VA_DISPLAY_DRM
st/va: add more errors checks in vlVaBufferSetNumElements and
st/va: implement VaDeriveImage
st/va: add support to export a surface as dmabuf
src/gallium/include/pipe/p_format.h | 3 +-
src/gallium/state_trackers/va/Makefile.am | 9 +
src/gallium/state_trackers/va/buffer.c | 183 ++++++++++-
src/gallium/state_trackers/va/config.c | 20 ++
src/gallium/state_trackers/va/context.c | 201 ++++++++----
src/gallium/state_trackers/va/image.c | 138 ++++++++-
src/gallium/state_trackers/va/picture.c | 81 ++++-
src/gallium/state_trackers/va/surface.c | 481 ++++++++++++++++++++++++++---
src/gallium/state_trackers/va/va_private.h | 71 ++++-
9 files changed, 1055 insertions(+), 132 deletions(-)
More information about the mesa-dev