Hey Dave,

sorry for the noise, I just wanted to quickly ask if with Daniels R-b below this patch is good to go into 6.16 once the window opens? Still new to the process here, therefore want to double-check :)

Thanks and best regards,

Robert Mader

On 12.05.25 16:26, Daniel Stone wrote:
Hi Rob,

On Fri, 9 May 2025 at 14:36, Robert Mader <robert.ma...@collabora.com> wrote:
This adds FOURCCs for 3-plane 10/12/16bit YCbCr formats used by software
decoders like ffmpeg, dav1d and libvpx. The intended use-case is buffer
sharing between decoders and GPUs by allocating buffers with e.g. udmabuf
or dma-heaps, avoiding unnecessary copies and format conversions in
various scenarios.

Unlike formats typically used by hardware decoders the 10/12bit formats
use a LSB alignment. In order to allow fast implementations in GL
and Vulkan the padding must contain only zeros, so the float
representation can be calculated by multiplying with 2^6=64 or 2^4=16
respectively.

MRs or branches for Mesa, Vulkan, Gstreamer, Weston and Mutter can be found at:
  - https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34303
  - https://github.com/rmader/Vulkan-Docs/commits/ycbcr-16bit-lsb-formats/
  - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540
  - https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1753
  - https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4348

The naming scheme follows the 'P' and 'Q' formats. The 'S' stands for
'software' and was selected in order to make remembering easy.

The 'Sx16' formats could as well be 'Qx16'. We stick with 'S' as 16bit software
decoders are likely much more common than hardware ones for the foreseeable
future. Note that these formats already have Vulkan equivalents:
  - VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
  - VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
  - VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
Thanks a lot for these - series is:
Reviewed-by: Daniel Stone <dani...@collabora.com>

Cheers,
Daniel

Reply via email to