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
>

Reply via email to