mesa/st: support lowering multi-planar YUV

Graphics / Mesa 3D Graphics Library / Mesa - Rob Clark [gmail.com] - 26 September 2016 14:29 UTC

Support multi-planar YUV for external EGLImage's (currently just in the dma-buf import path) by lowering to multiple texture fetch's for each plane and CSC in shader.

There was some discussion of alternative approaches for tracking the additional UV or U/V planes:

https://lists.freedesktop.org/archives/mesa-dev/2016-September/127832.html

They all seemed worse than pipe_resource::next

ecd6fce mesa/st: support lowering multi-planar YUV
src/gallium/auxiliary/util/u_inlines.h | 4 +-
src/gallium/include/pipe/p_state.h | 6 ++
src/gallium/include/state_tracker/st_api.h | 3 +
src/gallium/state_trackers/dri/dri2.c | 119 ++++++++++++++++++++++-----
src/gallium/state_trackers/dri/dri_screen.c | 11 +++
src/mesa/main/mtypes.h | 16 ++++
src/mesa/program/ir_to_mesa.cpp | 1 +
src/mesa/state_tracker/st_atom_sampler.c | 41 ++++++++-
src/mesa/state_tracker/st_atom_shader.c | 3 +
src/mesa/state_tracker/st_atom_texture.c | 58 +++++++++++++
src/mesa/state_tracker/st_cb_eglimage.c | 18 ++++
src/mesa/state_tracker/st_context.c | 7 +-
src/mesa/state_tracker/st_glsl_to_nir.cpp | 1 +
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 +
src/mesa/state_tracker/st_manager.c | 1 +
src/mesa/state_tracker/st_program.c | 35 ++++++++
src/mesa/state_tracker/st_program.h | 37 +++++++++
src/mesa/state_tracker/st_texture.h | 21 +++++
18 files changed, 359 insertions(+), 27 deletions(-)

Upstream: cgit.freedesktop.org


  • Share