mesa/st: support lowering multi-planar YUV

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

Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark
2016-08-31 17:44:01 -04:00
parent e0ec1c3134
commit ecd6fce261
18 changed files with 359 additions and 27 deletions

View File

@@ -51,6 +51,7 @@
#include "st_context.h"
#include "st_atom.h"
#include "st_program.h"
#include "st_texture.h"
/** Compress the fog function enums into a 2-bit value */
@@ -142,6 +143,8 @@ update_fp( struct st_context *st )
}
}
key.external = st_get_external_sampler_key(st, &stfp->Base.Base);
st->fp_variant = st_get_fp_variant(st, stfp, &key);
st_reference_fragprog(st, &st->fp, stfp);