[Mesa-dev] [PATCH 0/6] Add support for NV12

Lucas Stach l.stach at pengutronix.de
Thu Apr 25 08:54:45 UTC 2019


Hi Christian,

Am Mittwoch, den 24.04.2019, 08:36 +0200 schrieb Christian Gmeiner:
> This patch series goes a complete different route then the one from
> Lucas Stach. I am using the integrated YUV tiler instead of using
> the 2D core for format conversion. I am reusing some patches from
> Lucas and this series sits on-top of Lucas "st/dri: YUV" patches.

We specifically opted to use the 2D GPU to do a format conversion, as
this yields a RGB internal representation, which means the texture has
the same properties as a normal GL texture (e.g. glReadPixels works).
This way we can expose YUV format imports as non-external textures.

This provides a number of benefits in texture lifetime handling in the
upper layers of the stack, which are used to drive those video use-
cases, like GStreamer. I don't really care what the blob does, but I do
care about having the highest performing solution, which is to have the
2D GPU work in parallel with the 3D GPU and allow efficient texture
imports with GStreamer.

I would really appreciate a review of my patch series.

Regards,
Lucas

> Christian Gmeiner (3):
>   etnaviv: direct YUYV/UYVY support
>   etnaviv: update headers from rnndb
>   etnaviv: add multi-planar YUV support
> 
> Lucas Stach (3):
>   etnaviv: clear out next pointer when allocating resource
>   etnaviv: remember data offset into BO
>   etnaviv: improve PIPE_BIND_LINEAR handling
> 
>  .../drivers/etnaviv/etnaviv_clear_blit.c      |   2 +-
>  src/gallium/drivers/etnaviv/etnaviv_format.c  |   5 +-
>  .../drivers/etnaviv/etnaviv_resource.c        |  24 +++-
>  src/gallium/drivers/etnaviv/etnaviv_rs.c      |   5 +
>  src/gallium/drivers/etnaviv/etnaviv_screen.c  |   4 +
>  src/gallium/drivers/etnaviv/etnaviv_texture.c |   8 ++
>  src/gallium/drivers/etnaviv/etnaviv_yuv.c     | 123
> ++++++++++++++++++
>  src/gallium/drivers/etnaviv/etnaviv_yuv.h     |  44 +++++++
>  src/gallium/drivers/etnaviv/hw/common.xml.h   |   2 +-
>  .../drivers/etnaviv/hw/common_3d.xml.h        |   2 +-
>  src/gallium/drivers/etnaviv/hw/state.xml.h    |   4 +-
>  src/gallium/drivers/etnaviv/hw/state_3d.xml.h |  35 +++--
>  .../drivers/etnaviv/hw/state_blt.xml.h        |   4 +-
>  .../drivers/etnaviv/hw/texdesc_3d.xml.h       |   2 +-
>  src/gallium/drivers/etnaviv/meson.build       |   2 +
>  15 files changed, 240 insertions(+), 26 deletions(-)
>  create mode 100644 src/gallium/drivers/etnaviv/etnaviv_yuv.c
>  create mode 100644 src/gallium/drivers/etnaviv/etnaviv_yuv.h
> 


More information about the mesa-dev mailing list