On Thu, Nov 5, 2026 at 4:35 AM Robert Mader <[email protected]> wrote: > > On 04.11.26 23:11, Rob Clark wrote: > > On Wed, Nov 4, 2026 at 11:00 AM Robert Mader <[email protected]> > > wrote: > >> Nice, very happy to see the series! > >> > >> On 04.11.26 17:36, Dmitry Baryshkov wrote: > >>> The comment describing the QC10C buffer layout calls it a compressed > >>> P010. It is not: > >> If I'm not mistaken the display engine / the DRM side (including Mesa) > >> describes it as P010+QCOM_COMPRESSED as well, and so does my pending > >> Gstreamer MR [1] . So if we can't pretend that QC10C == > >> P010+QCOM_COMPRESSED, then we probably need a DRM_FORMAT_TP10, wire that > >> up everywhere etc. OTOH if we want to keep the DRM side as is, then the > >> comment should reflect that, IMO. > > IMHO we need DRM_FORMAT_TP10.. on the GPU side, we have TP10 and P010 > > as distinct formats, both with and without UBWC. I'm not sure if the > > same is true on video side but P010+UBWC was never exposed, or if it > > truely only supports linear P010 and UBWC TP10. > > Oh, do I understand you correctly that the P010+UBWC implementation is > not compatible with QC10C, meaning on the GPU side (Mesa and display) we > don't yet have any support for QC10C exposed to userspace? If that's so > then we don't have a choice but to introduce DRM_FORMAT_TP10 I guess?
Yes, TP10+UBWC is different from P010+UBWC, just like linear TP10 is different from P010. In all the cases including planar YUV, there is a single plane per "logical" plane, ie NV12 with or without UBWC is 2 planes, etc. When UBWC is involved, the UBWC meta/flag data and pixel/color data is part of a single plane. In slightly more detail, in some cases we program the hw w/ a separate UBWC address. But in particular for planar YUV descriptors we just have one address per plane (up to 3) which gets programmed with the UBWC flag/meta address and the pixel/color data must be at the correct offset from that.. at an API level it is easiest to ignore that and just treat meta/flag + pixel/color as a single plane everywhere. BR, -R > On the plus side - this would allow us to make the format single plane, > matching what we get on the V4L2 side. > > > > > BR, > > -R > > > >> Best regards, > >> > >> Robert > >> > >> 1: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8195 > >> > >>> P010 stores each sample in 16 bits, QC10C packs three > >>> 10-bit samples in each 32-bit word, which is what the stride computed > >>> below (width * 4 / 3) assumes. Name the format correctly. > >>> > >>> Signed-off-by: Dmitry Baryshkov <[email protected]> > >>> --- > >>> drivers/media/platform/qcom/iris/iris_buffer.c | 2 +- > >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>> > >>> diff --git a/drivers/media/platform/qcom/iris/iris_buffer.c > >>> b/drivers/media/platform/qcom/iris/iris_buffer.c > >>> index eb8de60c1177..ec2bf2a2d953 100644 > >>> --- a/drivers/media/platform/qcom/iris/iris_buffer.c > >>> +++ b/drivers/media/platform/qcom/iris/iris_buffer.c > >>> @@ -266,7 +266,7 @@ static u32 iris_yuv_buffer_size_qc08c(struct > >>> iris_inst *inst) > >>> > >>> /* > >>> * QC10C: > >>> - * UBWC-compressed format for P010. > >>> + * UBWC-compressed TP10, YUV 4:2:0 with three 10 bit samples packed in > >>> 32 bits. > >>> * Contains 4 planes in the following order - > >>> * (A) Y_Meta_Plane > >>> * (B) Y_UBWC_Plane > >>> > -- > Robert Mader > Consultant Software Developer > > Collabora Ltd. > Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK > Registered in England & Wales, no. 5513718 >
