gallium/st: add non-CSC lowering of YV12 as PIPE_FORMAT_R8_B8_G8_420
authorItalo Nicola <italonicola@collabora.com>
Fri, 21 Jul 2023 00:31:48 +0000 (00:31 +0000)
committerMarge Bot <emma+marge@anholt.net>
Fri, 11 Aug 2023 18:43:38 +0000 (18:43 +0000)
commitb890a5ff619e41ced38780a93099af86df06a86a
tree5042b82dff21367b4b65ef8b6ef7e5654785c7bc
parent60ebef430a5a40398f2b227b6374bc26bd10c042
gallium/st: add non-CSC lowering of YV12 as PIPE_FORMAT_R8_B8_G8_420

YV12 is the same as DRM_FORMAT_YVU420.
We lower it to PIPE_FORMAT_R8_B8_G8_420, which is equivalent to
PIPE_FORMAT_R8_G8_B8_420 with U/V planes swapped.

This is used for hardware that can sample from YUV but need CSC in shader.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24266>
src/gallium/frontends/dri/dri2.c
src/mesa/state_tracker/st_atom_sampler.c
src/mesa/state_tracker/st_atom_texture.c
src/mesa/state_tracker/st_cb_eglimage.c
src/mesa/state_tracker/st_program.h
src/mesa/state_tracker/st_sampler_view.c
src/util/format/u_format.csv
src/util/format/u_format_table.py
src/util/format/u_formats.h