From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8746710FCAD2 for ; Wed, 1 Apr 2026 18:19:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0ABD610EE8D; Wed, 1 Apr 2026 18:19:52 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="V3L9lwL5"; dkim-atps=neutral Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) by gabe.freedesktop.org (Postfix) with ESMTPS id 585BC10EA22; Tue, 31 Mar 2026 10:33:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; t=1774953194; cv=none; d=zohomail.com; s=zohoarc; b=iq7d+EpWYAvrctcfxZoQjNJuhB62URk7xlbwaLsDMTNXTWCyQ4LwDyZ6I27wYYHAMP4YPM0hYR/rK8AWX1jqBcjhxQf8J51b99OQ+VF9yVDhEqMQMfzMcWZJUV2pGlG6D+JYKcdc63sYSJlX24pWsFdQZX2jKMN+WnVHhppSgRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774953194; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=WONs+triHAG3oxKIDY5u6sC91+pizMI0mnGHgeGpMWA=; b=Vh9zaiChMYD6vskfjYkgIBkCpQIQmnxaqlBcmk8+El0hVORrkZFIntq9a8X6fTa7guKBYxcQC8K42tY0FIF9ir+fsdg58kFS9D0UjA9+cfr6iNC4IkwitdRA9MKj5MscyrlksfUfeV18AJAKMPFxt2cNzDqpvvQDy/G0UyUF4yQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1774953194; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id:Reply-To; bh=WONs+triHAG3oxKIDY5u6sC91+pizMI0mnGHgeGpMWA=; b=V3L9lwL5t+B5HbtOLDaYfqYdeaZCN8rQT1mGU46AB79OOrvLI8lwlaGUlxYG0lKq G6V26eWcMkIy5x3/sgiT2LdI+GDuyPfzNDQ6VB5oOYteJoe+EnPXzgWeohswEwhMpkq 0cS3rPBVWJ25PctJ4X+Zp9Z74BEt6x2M/ZP7K/Yo= Received: by mx.zohomail.com with SMTPS id 1774953193153170.1511210439279; Tue, 31 Mar 2026 03:33:13 -0700 (PDT) From: Nicolas Frattaroli To: Ville =?UTF-8?B?U3lyasOkbMOk?= Cc: Maxime Ripard , Harry Wentland , Leo Li , Rodrigo Siqueira , Alex Deucher , Christian =?UTF-8?B?S8O2bmln?= , David Airlie , Simona Vetter , Maarten Lankhorst , Thomas Zimmermann , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Sandy Huang , Heiko =?UTF-8?B?U3TDvGJuZXI=?= , Andy Yan , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Dmitry Baryshkov , Sascha Hauer , Rob Herring , Jonathan Corbet , Shuah Khan , kernel@collabora.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-doc@vger.kernel.org, Werner Sembach , Andri Yngvason , Marius Vlad Subject: Re: [PATCH v11 03/22] drm: Add new general DRM property "color format" Date: Tue, 31 Mar 2026 12:33:00 +0200 Message-ID: <5583906.GXAFRqVoOG@workhorse> In-Reply-To: References: <20260324-color-format-v11-0-605559af4fb4@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-Mailman-Approved-At: Wed, 01 Apr 2026 18:19:20 +0000 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" On Tuesday, 31 March 2026 01:56:16 Central European Summer Time Ville Syrj= =C3=A4l=C3=A4 wrote: > On Sat, Mar 28, 2026 at 02:49:04AM +0200, Ville Syrj=C3=A4l=C3=A4 wrote: > > On Fri, Mar 27, 2026 at 01:56:06PM +0100, Nicolas Frattaroli wrote: > > > On Thursday, 26 March 2026 18:58:25 Central European Standard Time Vi= lle Syrj=C3=A4l=C3=A4 wrote: > > > > On Thu, Mar 26, 2026 at 06:02:47PM +0100, Maxime Ripard wrote: > > > > > On Wed, Mar 25, 2026 at 08:43:15PM +0200, Ville Syrj=C3=A4l=C3=A4= wrote: > > > > > > On Wed, Mar 25, 2026 at 03:56:58PM +0100, Maxime Ripard wrote: > > > > > > > On Wed, Mar 25, 2026 at 01:03:07PM +0200, Ville Syrj=C3=A4l= =C3=A4 wrote: > > > > > > > > On Wed, Mar 25, 2026 at 09:24:27AM +0100, Maxime Ripard wro= te: > > > > > > > > > On Tue, Mar 24, 2026 at 09:53:35PM +0200, Ville Syrj=C3= =A4l=C3=A4 wrote: > > > > > > > > > > On Tue, Mar 24, 2026 at 08:10:11PM +0100, Nicolas Fratt= aroli wrote: > > > > > > > > > > > On Tuesday, 24 March 2026 18:00:45 Central European S= tandard Time Ville Syrj=C3=A4l=C3=A4 wrote: > > > > > > > > > > > > On Tue, Mar 24, 2026 at 05:01:07PM +0100, Nicolas F= rattaroli wrote: > > > > > > > > > > > > > +enum drm_connector_color_format { > > > > > > > > > > > > > + /** > > > > > > > > > > > > > + * @DRM_CONNECTOR_COLOR_FORMAT_AUTO: The driver= or display protocol > > > > > > > > > > > > > + * helpers should pick a suitable color format.= All implementations of a > > > > > > > > > > > > > + * specific display protocol must behave the sa= me way with "AUTO", but > > > > > > > > > > > > > + * different display protocols do not necessari= ly have the same "AUTO" > > > > > > > > > > > > > + * semantics. > > > > > > > > > > > > > + * > > > > > > > > > > > > > + * For HDMI, "AUTO" picks RGB, but falls back t= o YCbCr 4:2:0 if the > > > > > > > > > > > > > + * bandwidth required for full-scale RGB is not= available, or the mode > > > > > > > > > > > > > + * is YCbCr 4:2:0-only, as long as the mode and= output both support > > > > > > > > > > > > > + * YCbCr 4:2:0. > > > > > > > > > > > > > + * > > > > > > > > > > > > > + * For display protocols other than HDMI, the r= ecursive bridge chain > > > > > > > > > > > > > + * format selection picks the first chain of br= idge formats that works, > > > > > > > > > > > > > + * as has already been the case before the intr= oduction of the "color > > > > > > > > > > > > > + * format" property. Non-HDMI bridges should th= erefore either sort their > > > > > > > > > > > > > + * bus output formats by preference, or agree o= n a unified auto format > > > > > > > > > > > > > + * selection logic that's implemented in a comm= on state helper (like > > > > > > > > > > > > > + * how HDMI does it). > > > > > > > > > > > > > + */ > > > > > > > > > > > > > + DRM_CONNECTOR_COLOR_FORMAT_AUTO =3D 0, > > > > > > > > > > > > > + > > > > > > > > > > > > > + /** > > > > > > > > > > > > > + * @DRM_CONNECTOR_COLOR_FORMAT_RGB444: RGB outp= ut format > > > > > > > > > > > > > + */ > > > > > > > > > > > > > + DRM_CONNECTOR_COLOR_FORMAT_RGB444, > > > > > > > > > > > > > + > > > > > > > > > > > > > + /** > > > > > > > > > > > > > + * @DRM_CONNECTOR_COLOR_FORMAT_YCBCR444: YCbCr = 4:4:4 output format (ie. > > > > > > > > > > > > > + * not subsampled) > > > > > > > > > > > > > + */ > > > > > > > > > > > > > + DRM_CONNECTOR_COLOR_FORMAT_YCBCR444, > > > > > > > > > > > > > + > > > > > > > > > > > > > + /** > > > > > > > > > > > > > + * @DRM_CONNECTOR_COLOR_FORMAT_YCBCR422: YCbCr = 4:2:2 output format (ie. > > > > > > > > > > > > > + * with horizontal subsampling) > > > > > > > > > > > > > + */ > > > > > > > > > > > > > + DRM_CONNECTOR_COLOR_FORMAT_YCBCR422, > > > > > > > > > > > > > + > > > > > > > > > > > > > + /** > > > > > > > > > > > > > + * @DRM_CONNECTOR_COLOR_FORMAT_YCBCR420: YCbCr = 4:2:0 output format (ie. > > > > > > > > > > > > > + * with horizontal and vertical subsampling) > > > > > > > > > > > > > + */ > > > > > > > > > > > > > + DRM_CONNECTOR_COLOR_FORMAT_YCBCR420, > > > > > > > > > > > >=20 > > > > > > > > > > > > Seems like this should document what the quantizati= on range > > > > > > > > > > > > should be for each format. > > > > > > > > > > > >=20 > > > > > > > > > > >=20 > > > > > > > > > > > I don't think so? If you want per-component bit depth= values, > > > > > > > > > > > DRM_FORMAT_* defines would be the appropriate values = to use. This > > > > > > > > > > > enum is more abstract than that, and is there to comm= unicate > > > > > > > > > > > YUV vs. RGB and chroma subsampling, with bit depth be= ing handled > > > > > > > > > > > by other properties. > > > > > > > > > > >=20 > > > > > > > > > > > If you mean the factor used for subsampling, then tha= t'd only be > > > > > > > > > > > relevant if YCBCR410 was supported where one chroma p= lane isn't > > > > > > > > > > > halved but quartered in resolution. I suspect 4:1:0 w= ill never > > > > > > > > > > > be added; no digital display protocol standard suppor= ts it to my > > > > > > > > > > > knowledge, and hopefully none ever will. > > > > > > > > > >=20 > > > > > > > > > > No, I mean the quantization range (16-235 vs. 0-255 etc= ). > > > > > > > > > >=20 > > > > > > > > > > The i915 behaviour is that YCbCr is always limited rang= e, > > > > > > > > > > RGB can either be full or limited range depending on th= e=20 > > > > > > > > > > "Broadcast RGB" property and other related factors. > > > > > > > > >=20 > > > > > > > > > So far the HDMI state has both the format and quantizatio= n range as > > > > > > > > > different fields. I'm not sure we need to document the ra= nge in the > > > > > > > > > format field, maybe only mention it's not part of the for= mat but has a > > > > > > > > > field of its own? > > > > > > > >=20 > > > > > > > > I think we only have it for RGB (on some drivers only?). Fo= r YCbCr > > > > > > > > I think the assumption is limited range everywhere. > > > > > > > >=20 > > > > > > > > But I'm not really concerned about documenting struct membe= rs. > > > > > > > > What I'm talking about is the *uapi* docs. Surely userspace > > > > > > > > will want to know what the new property actually does so the > > > > > > > > uapi needs to be documented properly. And down the line some > > > > > > > > new driver might also implement the wrong behaviour if there > > > > > > > > is no clear specification. > > > > > > >=20 > > > > > > > Ack > > > > > > >=20 > > > > > > > > So I'm thinking (or perhaps hoping) the rule might be somet= hing like: > > > > > > > > - YCbCr limited range=20 > > > > > > > > - RGB full range if "Broadcast RGB" property is not present > > > > > > >=20 > > > > > > > Isn't it much more complicated than that for HDMI though? My > > > > > > > recollection was that any VIC but VIC1 would be limited range= , and > > > > > > > anything else full range? > > > > > >=20 > > > > > > Do we have some driver that implements the CTA-861 CE vs. IT mo= de > > > > > > logic but doesn't expose the "Broadcast RGB" property? I was ho= ping > > > > > > those would always go hand in hand now. > > > > >=20 > > > > > I'm not sure. i915 and the HDMI state helpers handle it properly = (I > > > > > think?) but it looks like only vc4 registers the Broadcast RGB pr= operty > > > > > and uses the HDMI state helpers. > > > > >=20 > > > > > And it looks like amdgpu registers Broadcast RGB but doesn't use > > > > > drm_default_rgb_quant_range() which seems suspicious? > > > >=20 > > > > If they want just manual full vs. limited then they should > > > > limit the property to not expose the "auto" option at all. > > > >=20 > > > > amdgpu also ties this in with the "colorspace" property, which > > > > originally in i915 only controlled the infoframes/etc. But on > > > > amdgpu it now controls various aspects of output color > > > > transformation. The end result is that the property is a complete > > > > mess with most of the values making no sense. And for whatever > > > > reason everyone involved refused to remove/deprecate the > > > > nonsensical values :/ > > > >=20 > > > > Looks like this series should make sure the documentation for > > > > the "colorspace" property is in sync with the new property > > > > as well. Currently now it's giving conflicting information. > > > >=20 > > >=20 > > > I take it the problematic information is in > > >=20 > > > * DOC: standard connector properties > > > * > > > * Colorspace: > > >=20 > > > and probably specifically BT2020_YCC's (and BT2020_RGB's?) insistence > > > that they "produce RGB content". > > >=20 > > > I think we probably just have to change the statement "The variants > > > BT2020_RGB and BT2020_YCC are equivalent and the driver chooses betwe= en > > > RGB and YCbCr on its own." > > >=20 > > > The "on its own" here would get turned into "based on the color format > > > property". > > >=20 > > > Speaking of i915, that patch is one of the very few (5) patches in > > > this series still lacking a review (hint hint nudge nudge). I'd like > > > to get some more feedback on the remaining patches before I send out > > > another revision, so that it's hopefully not just docs changes (I > > > know better than to think those patches must be perfect and won't > > > need revision.) > >=20 > > The i915 code around this is already a big mess, and I don't really > > adding to that mess. So I think we'll need to do some refactoring before > > we add anything there. I already started typing something and so far > > it looks fairly straightforward, so I should have something soon. >=20 > OK, posted something > https://lore.kernel.org/intel-gfx/20260330235339.29479-1-ville.syrjala@li= nux.intel.com/T/#m7c349478ca6c856fbc68d5e2178f1aa31678a05f Thanks! I'll take a look at this today to get a more solid idea of where the pain points you highlighted are. I'll also rebase/reimplement my i915 color format implementation (sans the DP-MST part, as discussed) on top of this on the next revision. I was never fully happy with the current one due to the logic being shoehorned into the already existing i915 fallback format logic, so I'm quite happy to have another opportunity to implement it with less historic baggage. > Are the wayland/compositor/color management folks on board with > these new properties? I don't think I see the usual suspects on > the cc list. I don't know which precise group of people you refer to, but at least from the Collabora side of things, the userspace Wayland people are on board with these new properties. In Weston, we use it to implement the Weston frontend's "color-format" option in a WIP branch at https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1859 I've also been made aware that LibreELEC is aware, and will look into making use of it rather than their own kernel patches. Kind regards, Nicolas Frattaroli > >=20 > > While doing that several questions came to my mind though: > >=20 > > * More interactions with the colorspace property, but I sent > > a separate mail already about that > >=20 > > * Which conversion matrix to use, and the answer I suspect > > should be "ask the colorspace property", as mentioned in the > > other mail > >=20 > > * Should we flat out reject color formats (and I suppose also > > colorspace prop values) the sink doesn't claim to support? > >=20 > > If yes, then I think we'll have to forget about adding anything=20 > > to i915 MST code. The way the MST stuff works is that if one > > stream needs a modeset then all the related streams get modeset > > as well. Thus if the user replaces a monitor getting fed with a > > YCbCr stream just as another stream is being modeset, then the > > entire atomic commit could fail due to the YCbCr stream getting > > rejected. > >=20 > > I think eventually we might have to invent some mechanism where > > all the input into the modeset computation is cached somehow, > > and said cache updated only on explicit userspace modesets. > > Either that or we have to come up with a way to skip some of > > the calculations that depend on external factors. Either way > > it's going to be a pain. > >=20 > > OTOH if we don't mind feeding the sink with stuff it can't > > understand, then I suppose we might add YCbCr 4:4:4 support > > for MST. It shouldn't be any different from RGB apart from > > the RGB->YCbCr conversion, which is handled elsewhere. But > > YCbCr 4:2:0 is definitely out either way, the MST code has > > no support for that currently. > >=20 >=20 >=20 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2E60B1061B21 for ; Tue, 31 Mar 2026 10:34:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=u0fs6HIxeRmcpnlbEstFdqyz+33G9yKoP131clpzhB8=; b=OZ3/d/Ugi1CL/Z wrNugN6/xUZ71xsKKyG9A3BZn0savu3EG3ZPz7RU/EC1VOHq6RGSNs+RL0eZ1naBtUrQu0DFiVdJl VFctX+Rd5OhlfLRE8VHgDbueUHZoLlxB1ZqPg+OMC6MTha1DXvncN1uDbDYkfQZ6f39EZ6UzNQVie q4sjv1nXpS+qNLRyDQ9IoEdDTT8xjgo7wYWvyqfzsRsnXIZMqwwigA/HAD3k1WJpsnvGqPSVp4Ho0 P9IVcr5NsJ0CaFc8Fvxi2EJEcfHq21V3smgNlf/e8rKFzPWv+ZrDuihUN5sTVBYc3RYME8A+IMzcj hnse3GLWiXCJuWyHQPsQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w7WQD-0000000CnF4-0PMv; Tue, 31 Mar 2026 10:34:09 +0000 Received: from sender4-pp-f112.zoho.com ([136.143.188.112]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w7WQ9-0000000CnE3-3rFk; Tue, 31 Mar 2026 10:34:07 +0000 ARC-Seal: i=1; a=rsa-sha256; t=1774953194; cv=none; d=zohomail.com; s=zohoarc; b=iq7d+EpWYAvrctcfxZoQjNJuhB62URk7xlbwaLsDMTNXTWCyQ4LwDyZ6I27wYYHAMP4YPM0hYR/rK8AWX1jqBcjhxQf8J51b99OQ+VF9yVDhEqMQMfzMcWZJUV2pGlG6D+JYKcdc63sYSJlX24pWsFdQZX2jKMN+WnVHhppSgRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774953194; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=WONs+triHAG3oxKIDY5u6sC91+pizMI0mnGHgeGpMWA=; b=Vh9zaiChMYD6vskfjYkgIBkCpQIQmnxaqlBcmk8+El0hVORrkZFIntq9a8X6fTa7guKBYxcQC8K42tY0FIF9ir+fsdg58kFS9D0UjA9+cfr6iNC4IkwitdRA9MKj5MscyrlksfUfeV18AJAKMPFxt2cNzDqpvvQDy/G0UyUF4yQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1774953194; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id:Reply-To; bh=WONs+triHAG3oxKIDY5u6sC91+pizMI0mnGHgeGpMWA=; b=V3L9lwL5t+B5HbtOLDaYfqYdeaZCN8rQT1mGU46AB79OOrvLI8lwlaGUlxYG0lKq G6V26eWcMkIy5x3/sgiT2LdI+GDuyPfzNDQ6VB5oOYteJoe+EnPXzgWeohswEwhMpkq 0cS3rPBVWJ25PctJ4X+Zp9Z74BEt6x2M/ZP7K/Yo= Received: by mx.zohomail.com with SMTPS id 1774953193153170.1511210439279; Tue, 31 Mar 2026 03:33:13 -0700 (PDT) From: Nicolas Frattaroli To: Ville =?UTF-8?B?U3lyasOkbMOk?= Cc: Maxime Ripard , Harry Wentland , Leo Li , Rodrigo Siqueira , Alex Deucher , Christian =?UTF-8?B?S8O2bmln?= , David Airlie , Simona Vetter , Maarten Lankhorst , Thomas Zimmermann , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Sandy Huang , Heiko =?UTF-8?B?U3TDvGJuZXI=?= , Andy Yan , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Dmitry Baryshkov , Sascha Hauer , Rob Herring , Jonathan Corbet , Shuah Khan , kernel@collabora.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-doc@vger.kernel.org, Werner Sembach , Andri Yngvason , Marius Vlad Subject: Re: [PATCH v11 03/22] drm: Add new general DRM property "color format" Date: Tue, 31 Mar 2026 12:33:00 +0200 Message-ID: <5583906.GXAFRqVoOG@workhorse> In-Reply-To: References: <20260324-color-format-v11-0-605559af4fb4@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260331_033406_025874_38139E26 X-CRM114-Status: GOOD ( 73.47 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gVHVlc2RheSwgMzEgTWFyY2ggMjAyNiAwMTo1NjoxNiBDZW50cmFsIEV1cm9wZWFuIFN1bW1l ciBUaW1lIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiBPbiBTYXQsIE1hciAyOCwgMjAyNiBhdCAw Mjo0OTowNEFNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBGcmksIE1hciAy NywgMjAyNiBhdCAwMTo1NjowNlBNICswMTAwLCBOaWNvbGFzIEZyYXR0YXJvbGkgd3JvdGU6Cj4g PiA+IE9uIFRodXJzZGF5LCAyNiBNYXJjaCAyMDI2IDE4OjU4OjI1IENlbnRyYWwgRXVyb3BlYW4g U3RhbmRhcmQgVGltZSBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVGh1LCBNYXIg MjYsIDIwMjYgYXQgMDY6MDI6NDdQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiA+ID4g PiA+IE9uIFdlZCwgTWFyIDI1LCAyMDI2IGF0IDA4OjQzOjE1UE0gKzAyMDAsIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+ID4gPiA+ID4gT24gV2VkLCBNYXIgMjUsIDIwMjYgYXQgMDM6NTY6NThQ TSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiA+ID4gPiA+ID4gPiBPbiBXZWQsIE1hciAy NSwgMjAyNiBhdCAwMTowMzowN1BNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ ID4gPiA+ID4gPiBPbiBXZWQsIE1hciAyNSwgMjAyNiBhdCAwOToyNDoyN0FNICswMTAwLCBNYXhp bWUgUmlwYXJkIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIE1hciAyNCwgMjAyNiBh dCAwOTo1MzozNVBNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gPiA+ID4g PiA+ID4gT24gVHVlLCBNYXIgMjQsIDIwMjYgYXQgMDg6MTA6MTFQTSArMDEwMCwgTmljb2xhcyBG cmF0dGFyb2xpIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gVHVlc2RheSwgMjQgTWFy Y2ggMjAyNiAxODowMDo0NSBDZW50cmFsIEV1cm9wZWFuIFN0YW5kYXJkIFRpbWUgVmlsbGUgU3ly asOkbMOkIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIE1hciAyNCwgMjAy NiBhdCAwNTowMTowN1BNICswMTAwLCBOaWNvbGFzIEZyYXR0YXJvbGkgd3JvdGU6Cj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gK2VudW0gZHJtX2Nvbm5lY3Rvcl9jb2xvcl9mb3JtYXQgewo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJLyoqCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkg KiBARFJNX0NPTk5FQ1RPUl9DT0xPUl9GT1JNQVRfQVVUTzogVGhlIGRyaXZlciBvciBkaXNwbGF5 IHByb3RvY29sCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBoZWxwZXJzIHNob3VsZCBw aWNrIGEgc3VpdGFibGUgY29sb3IgZm9ybWF0LiBBbGwgaW1wbGVtZW50YXRpb25zIG9mIGEKPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCSAqIHNwZWNpZmljIGRpc3BsYXkgcHJvdG9jb2wgbXVz dCBiZWhhdmUgdGhlIHNhbWUgd2F5IHdpdGggIkFVVE8iLCBidXQKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiArCSAqIGRpZmZlcmVudCBkaXNwbGF5IHByb3RvY29scyBkbyBub3QgbmVjZXNzYXJp bHkgaGF2ZSB0aGUgc2FtZSAiQVVUTyIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCSAqIHNl bWFudGljcy4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCSAqCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKwkgKiBGb3IgSERNSSwgIkFVVE8iIHBpY2tzIFJHQiwgYnV0IGZhbGxzIGJhY2sg dG8gWUNiQ3IgNDoyOjAgaWYgdGhlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBiYW5k d2lkdGggcmVxdWlyZWQgZm9yIGZ1bGwtc2NhbGUgUkdCIGlzIG5vdCBhdmFpbGFibGUsIG9yIHRo ZSBtb2RlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBpcyBZQ2JDciA0OjI6MC1vbmx5 LCBhcyBsb25nIGFzIHRoZSBtb2RlIGFuZCBvdXRwdXQgYm90aCBzdXBwb3J0Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwkgKiBZQ2JDciA0OjI6MC4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArCSAqCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBGb3IgZGlzcGxheSBwcm90b2Nv bHMgb3RoZXIgdGhhbiBIRE1JLCB0aGUgcmVjdXJzaXZlIGJyaWRnZSBjaGFpbgo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ICsJICogZm9ybWF0IHNlbGVjdGlvbiBwaWNrcyB0aGUgZmlyc3QgY2hh aW4gb2YgYnJpZGdlIGZvcm1hdHMgdGhhdCB3b3JrcywKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArCSAqIGFzIGhhcyBhbHJlYWR5IGJlZW4gdGhlIGNhc2UgYmVmb3JlIHRoZSBpbnRyb2R1Y3Rp b24gb2YgdGhlICJjb2xvcgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJICogZm9ybWF0IiBw cm9wZXJ0eS4gTm9uLUhETUkgYnJpZGdlcyBzaG91bGQgdGhlcmVmb3JlIGVpdGhlciBzb3J0IHRo ZWlyCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBidXMgb3V0cHV0IGZvcm1hdHMgYnkg cHJlZmVyZW5jZSwgb3IgYWdyZWUgb24gYSB1bmlmaWVkIGF1dG8gZm9ybWF0Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwkgKiBzZWxlY3Rpb24gbG9naWMgdGhhdCdzIGltcGxlbWVudGVkIGlu IGEgY29tbW9uIHN0YXRlIGhlbHBlciAobGlrZQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJ ICogaG93IEhETUkgZG9lcyBpdCkuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKi8KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCURSTV9DT05ORUNUT1JfQ09MT1JfRk9STUFUX0FVVE8g PSAwLAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArCS8qKgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJICogQERSTV9DT05ORUNUT1JfQ09M T1JfRk9STUFUX1JHQjQ0NDogUkdCIG91dHB1dCBmb3JtYXQKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArCSAqLwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJRFJNX0NPTk5FQ1RPUl9DT0xP Ul9GT1JNQVRfUkdCNDQ0LAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiArCS8qKgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJICogQERSTV9D T05ORUNUT1JfQ09MT1JfRk9STUFUX1lDQkNSNDQ0OiBZQ2JDciA0OjQ6NCBvdXRwdXQgZm9ybWF0 IChpZS4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCSAqIG5vdCBzdWJzYW1wbGVkKQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwlE Uk1fQ09OTkVDVE9SX0NPTE9SX0ZPUk1BVF9ZQ0JDUjQ0NCwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkvKioKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiArCSAqIEBEUk1fQ09OTkVDVE9SX0NPTE9SX0ZPUk1BVF9ZQ0JDUjQyMjogWUNiQ3Ig NDoyOjIgb3V0cHV0IGZvcm1hdCAoaWUuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiB3 aXRoIGhvcml6b250YWwgc3Vic2FtcGxpbmcpCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkg Ki8KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCURSTV9DT05ORUNUT1JfQ09MT1JfRk9STUFU X1lDQkNSNDIyLAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiArCS8qKgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJICogQERSTV9DT05ORUNU T1JfQ09MT1JfRk9STUFUX1lDQkNSNDIwOiBZQ2JDciA0OjI6MCBvdXRwdXQgZm9ybWF0IChpZS4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCSAqIHdpdGggaG9yaXpvbnRhbCBhbmQgdmVydGlj YWwgc3Vic2FtcGxpbmcpCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkgKi8KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArCURSTV9DT05ORUNUT1JfQ09MT1JfRk9STUFUX1lDQkNSNDIwLAo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU2VlbXMgbGlr ZSB0aGlzIHNob3VsZCBkb2N1bWVudCB3aGF0IHRoZSBxdWFudGl6YXRpb24gcmFuZ2UKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gc2hvdWxkIGJlIGZvciBlYWNoIGZvcm1hdC4KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IEkgZG9uJ3QgdGhpbmsgc28/IElmIHlvdSB3YW50IHBlci1jb21wb25lbnQgYml0IGRlcHRoIHZh bHVlcywKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IERSTV9GT1JNQVRfKiBkZWZpbmVzIHdvdWxkIGJl IHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgdG8gdXNlLiBUaGlzCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiBlbnVtIGlzIG1vcmUgYWJzdHJhY3QgdGhhbiB0aGF0LCBhbmQgaXMgdGhlcmUgdG8gY29tbXVu aWNhdGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFlVViB2cy4gUkdCIGFuZCBjaHJvbWEgc3Vic2Ft cGxpbmcsIHdpdGggYml0IGRlcHRoIGJlaW5nIGhhbmRsZWQKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGJ5IG90aGVyIHByb3BlcnRpZXMuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g PiA+ID4gPiA+IElmIHlvdSBtZWFuIHRoZSBmYWN0b3IgdXNlZCBmb3Igc3Vic2FtcGxpbmcsIHRo ZW4gdGhhdCdkIG9ubHkgYmUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlbGV2YW50IGlmIFlDQkNS NDEwIHdhcyBzdXBwb3J0ZWQgd2hlcmUgb25lIGNocm9tYSBwbGFuZSBpc24ndAo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gaGFsdmVkIGJ1dCBxdWFydGVyZWQgaW4gcmVzb2x1dGlvbi4gSSBzdXNwZWN0 IDQ6MTowIHdpbGwgbmV2ZXIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJlIGFkZGVkOyBubyBkaWdp dGFsIGRpc3BsYXkgcHJvdG9jb2wgc3RhbmRhcmQgc3VwcG9ydHMgaXQgdG8gbXkKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGtub3dsZWRnZSwgYW5kIGhvcGVmdWxseSBub25lIGV2ZXIgd2lsbC4KPiA+ ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBObywgSSBtZWFuIHRoZSBxdWFu dGl6YXRpb24gcmFuZ2UgKDE2LTIzNSB2cy4gMC0yNTUgZXRjKS4KPiA+ID4gPiA+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgaTkxNSBiZWhhdmlvdXIgaXMgdGhhdCBZQ2JDciBp cyBhbHdheXMgbGltaXRlZCByYW5nZSwKPiA+ID4gPiA+ID4gPiA+ID4gPiBSR0IgY2FuIGVpdGhl ciBiZSBmdWxsIG9yIGxpbWl0ZWQgcmFuZ2UgZGVwZW5kaW5nIG9uIHRoZSAKPiA+ID4gPiA+ID4g PiA+ID4gPiAiQnJvYWRjYXN0IFJHQiIgcHJvcGVydHkgYW5kIG90aGVyIHJlbGF0ZWQgZmFjdG9y cy4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IFNvIGZhciB0aGUgSERNSSBz dGF0ZSBoYXMgYm90aCB0aGUgZm9ybWF0IGFuZCBxdWFudGl6YXRpb24gcmFuZ2UgYXMKPiA+ID4g PiA+ID4gPiA+ID4gZGlmZmVyZW50IGZpZWxkcy4gSSdtIG5vdCBzdXJlIHdlIG5lZWQgdG8gZG9j dW1lbnQgdGhlIHJhbmdlIGluIHRoZQo+ID4gPiA+ID4gPiA+ID4gPiBmb3JtYXQgZmllbGQsIG1h eWJlIG9ubHkgbWVudGlvbiBpdCdzIG5vdCBwYXJ0IG9mIHRoZSBmb3JtYXQgYnV0IGhhcyBhCj4g PiA+ID4gPiA+ID4gPiA+IGZpZWxkIG9mIGl0cyBvd24/Cj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiA+IEkgdGhpbmsgd2Ugb25seSBoYXZlIGl0IGZvciBSR0IgKG9uIHNvbWUgZHJpdmVy cyBvbmx5PykuIEZvciBZQ2JDcgo+ID4gPiA+ID4gPiA+ID4gSSB0aGluayB0aGUgYXNzdW1wdGlv biBpcyBsaW1pdGVkIHJhbmdlIGV2ZXJ5d2hlcmUuCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiA+IEJ1dCBJJ20gbm90IHJlYWxseSBjb25jZXJuZWQgYWJvdXQgZG9jdW1lbnRpbmcgc3Ry dWN0IG1lbWJlcnMuCj4gPiA+ID4gPiA+ID4gPiBXaGF0IEknbSB0YWxraW5nIGFib3V0IGlzIHRo ZSAqdWFwaSogZG9jcy4gU3VyZWx5IHVzZXJzcGFjZQo+ID4gPiA+ID4gPiA+ID4gd2lsbCB3YW50 IHRvIGtub3cgd2hhdCB0aGUgbmV3IHByb3BlcnR5IGFjdHVhbGx5IGRvZXMgc28gdGhlCj4gPiA+ ID4gPiA+ID4gPiB1YXBpIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkuIEFuZCBkb3du IHRoZSBsaW5lIHNvbWUKPiA+ID4gPiA+ID4gPiA+IG5ldyBkcml2ZXIgbWlnaHQgYWxzbyBpbXBs ZW1lbnQgdGhlIHdyb25nIGJlaGF2aW91ciBpZiB0aGVyZQo+ID4gPiA+ID4gPiA+ID4gaXMgbm8g Y2xlYXIgc3BlY2lmaWNhdGlvbi4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBBY2sKPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IFNvIEknbSB0aGlua2luZyAob3IgcGVyaGFwcyBo b3BpbmcpIHRoZSBydWxlIG1pZ2h0IGJlIHNvbWV0aGluZyBsaWtlOgo+ID4gPiA+ID4gPiA+ID4g LSBZQ2JDciBsaW1pdGVkIHJhbmdlIAo+ID4gPiA+ID4gPiA+ID4gLSBSR0IgZnVsbCByYW5nZSBp ZiAiQnJvYWRjYXN0IFJHQiIgcHJvcGVydHkgaXMgbm90IHByZXNlbnQKPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiBJc24ndCBpdCBtdWNoIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiB0aGF0IGZv ciBIRE1JIHRob3VnaD8gTXkKPiA+ID4gPiA+ID4gPiByZWNvbGxlY3Rpb24gd2FzIHRoYXQgYW55 IFZJQyBidXQgVklDMSB3b3VsZCBiZSBsaW1pdGVkIHJhbmdlLCBhbmQKPiA+ID4gPiA+ID4gPiBh bnl0aGluZyBlbHNlIGZ1bGwgcmFuZ2U/Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBEbyB3ZSBo YXZlIHNvbWUgZHJpdmVyIHRoYXQgaW1wbGVtZW50cyB0aGUgQ1RBLTg2MSBDRSB2cy4gSVQgbW9k ZQo+ID4gPiA+ID4gPiBsb2dpYyBidXQgZG9lc24ndCBleHBvc2UgdGhlICJCcm9hZGNhc3QgUkdC IiBwcm9wZXJ0eT8gSSB3YXMgaG9waW5nCj4gPiA+ID4gPiA+IHRob3NlIHdvdWxkIGFsd2F5cyBn byBoYW5kIGluIGhhbmQgbm93Lgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJJ20gbm90IHN1cmUuIGk5 MTUgYW5kIHRoZSBIRE1JIHN0YXRlIGhlbHBlcnMgaGFuZGxlIGl0IHByb3Blcmx5IChJCj4gPiA+ ID4gPiB0aGluaz8pIGJ1dCBpdCBsb29rcyBsaWtlIG9ubHkgdmM0IHJlZ2lzdGVycyB0aGUgQnJv YWRjYXN0IFJHQiBwcm9wZXJ0eQo+ID4gPiA+ID4gYW5kIHVzZXMgdGhlIEhETUkgc3RhdGUgaGVs cGVycy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQW5kIGl0IGxvb2tzIGxpa2UgYW1kZ3B1IHJlZ2lz dGVycyBCcm9hZGNhc3QgUkdCIGJ1dCBkb2Vzbid0IHVzZQo+ID4gPiA+ID4gZHJtX2RlZmF1bHRf cmdiX3F1YW50X3JhbmdlKCkgd2hpY2ggc2VlbXMgc3VzcGljaW91cz8KPiA+ID4gPiAKPiA+ID4g PiBJZiB0aGV5IHdhbnQganVzdCBtYW51YWwgZnVsbCB2cy4gbGltaXRlZCB0aGVuIHRoZXkgc2hv dWxkCj4gPiA+ID4gbGltaXQgdGhlIHByb3BlcnR5IHRvIG5vdCBleHBvc2UgdGhlICJhdXRvIiBv cHRpb24gYXQgYWxsLgo+ID4gPiA+IAo+ID4gPiA+IGFtZGdwdSBhbHNvIHRpZXMgdGhpcyBpbiB3 aXRoIHRoZSAiY29sb3JzcGFjZSIgcHJvcGVydHksIHdoaWNoCj4gPiA+ID4gb3JpZ2luYWxseSBp biBpOTE1IG9ubHkgY29udHJvbGxlZCB0aGUgaW5mb2ZyYW1lcy9ldGMuIEJ1dCBvbgo+ID4gPiA+ IGFtZGdwdSBpdCBub3cgY29udHJvbHMgdmFyaW91cyBhc3BlY3RzIG9mIG91dHB1dCBjb2xvcgo+ ID4gPiA+IHRyYW5zZm9ybWF0aW9uLiBUaGUgZW5kIHJlc3VsdCBpcyB0aGF0IHRoZSBwcm9wZXJ0 eSBpcyBhIGNvbXBsZXRlCj4gPiA+ID4gbWVzcyB3aXRoIG1vc3Qgb2YgdGhlIHZhbHVlcyBtYWtp bmcgbm8gc2Vuc2UuIEFuZCBmb3Igd2hhdGV2ZXIKPiA+ID4gPiByZWFzb24gZXZlcnlvbmUgaW52 b2x2ZWQgcmVmdXNlZCB0byByZW1vdmUvZGVwcmVjYXRlIHRoZQo+ID4gPiA+IG5vbnNlbnNpY2Fs IHZhbHVlcyA6Lwo+ID4gPiA+IAo+ID4gPiA+IExvb2tzIGxpa2UgdGhpcyBzZXJpZXMgc2hvdWxk IG1ha2Ugc3VyZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKPiA+ID4gPiB0aGUgImNvbG9yc3BhY2Ui IHByb3BlcnR5IGlzIGluIHN5bmMgd2l0aCB0aGUgbmV3IHByb3BlcnR5Cj4gPiA+ID4gYXMgd2Vs bC4gQ3VycmVudGx5IG5vdyBpdCdzIGdpdmluZyBjb25mbGljdGluZyBpbmZvcm1hdGlvbi4KPiA+ ID4gPiAKPiA+ID4gCj4gPiA+IEkgdGFrZSBpdCB0aGUgcHJvYmxlbWF0aWMgaW5mb3JtYXRpb24g aXMgaW4KPiA+ID4gCj4gPiA+ICAgICAqIERPQzogc3RhbmRhcmQgY29ubmVjdG9yIHByb3BlcnRp ZXMKPiA+ID4gICAgICoKPiA+ID4gICAgICogQ29sb3JzcGFjZToKPiA+ID4gCj4gPiA+IGFuZCBw cm9iYWJseSBzcGVjaWZpY2FsbHkgQlQyMDIwX1lDQydzIChhbmQgQlQyMDIwX1JHQidzPykgaW5z aXN0ZW5jZQo+ID4gPiB0aGF0IHRoZXkgInByb2R1Y2UgUkdCIGNvbnRlbnQiLgo+ID4gPiAKPiA+ ID4gSSB0aGluayB3ZSBwcm9iYWJseSBqdXN0IGhhdmUgdG8gY2hhbmdlIHRoZSBzdGF0ZW1lbnQg IlRoZSB2YXJpYW50cwo+ID4gPiBCVDIwMjBfUkdCIGFuZCBCVDIwMjBfWUNDIGFyZSBlcXVpdmFs ZW50IGFuZCB0aGUgZHJpdmVyIGNob29zZXMgYmV0d2Vlbgo+ID4gPiBSR0IgYW5kIFlDYkNyIG9u IGl0cyBvd24uIgo+ID4gPiAKPiA+ID4gVGhlICJvbiBpdHMgb3duIiBoZXJlIHdvdWxkIGdldCB0 dXJuZWQgaW50byAiYmFzZWQgb24gdGhlIGNvbG9yIGZvcm1hdAo+ID4gPiBwcm9wZXJ0eSIuCj4g PiA+IAo+ID4gPiBTcGVha2luZyBvZiBpOTE1LCB0aGF0IHBhdGNoIGlzIG9uZSBvZiB0aGUgdmVy eSBmZXcgKDUpIHBhdGNoZXMgaW4KPiA+ID4gdGhpcyBzZXJpZXMgc3RpbGwgbGFja2luZyBhIHJl dmlldyAoaGludCBoaW50IG51ZGdlIG51ZGdlKS4gSSdkIGxpa2UKPiA+ID4gdG8gZ2V0IHNvbWUg bW9yZSBmZWVkYmFjayBvbiB0aGUgcmVtYWluaW5nIHBhdGNoZXMgYmVmb3JlIEkgc2VuZCBvdXQK PiA+ID4gYW5vdGhlciByZXZpc2lvbiwgc28gdGhhdCBpdCdzIGhvcGVmdWxseSBub3QganVzdCBk b2NzIGNoYW5nZXMgKEkKPiA+ID4ga25vdyBiZXR0ZXIgdGhhbiB0byB0aGluayB0aG9zZSBwYXRj aGVzIG11c3QgYmUgcGVyZmVjdCBhbmQgd29uJ3QKPiA+ID4gbmVlZCByZXZpc2lvbi4pCj4gPiAK PiA+IFRoZSBpOTE1IGNvZGUgYXJvdW5kIHRoaXMgaXMgYWxyZWFkeSBhIGJpZyBtZXNzLCBhbmQg SSBkb24ndCByZWFsbHkKPiA+IGFkZGluZyB0byB0aGF0IG1lc3MuIFNvIEkgdGhpbmsgd2UnbGwg bmVlZCB0byBkbyBzb21lIHJlZmFjdG9yaW5nIGJlZm9yZQo+ID4gd2UgYWRkIGFueXRoaW5nIHRo ZXJlLiBJIGFscmVhZHkgc3RhcnRlZCB0eXBpbmcgc29tZXRoaW5nIGFuZCBzbyBmYXIKPiA+IGl0 IGxvb2tzIGZhaXJseSBzdHJhaWdodGZvcndhcmQsIHNvIEkgc2hvdWxkIGhhdmUgc29tZXRoaW5n IHNvb24uCj4gCj4gT0ssIHBvc3RlZCBzb21ldGhpbmcKPiBodHRwczovL2xvcmUua2VybmVsLm9y Zy9pbnRlbC1nZngvMjAyNjAzMzAyMzUzMzkuMjk0NzktMS12aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbS9ULyNtN2MzNDk0NzhjYTZjODU2ZmJjNjhkNWUyMTc4ZjFhYTMxNjc4YTA1ZgoKVGhh bmtzISBJJ2xsIHRha2UgYSBsb29rIGF0IHRoaXMgdG9kYXkgdG8gZ2V0IGEgbW9yZSBzb2xpZCBp ZGVhIG9mCndoZXJlIHRoZSBwYWluIHBvaW50cyB5b3UgaGlnaGxpZ2h0ZWQgYXJlLgoKSSdsbCBh bHNvIHJlYmFzZS9yZWltcGxlbWVudCBteSBpOTE1IGNvbG9yIGZvcm1hdCBpbXBsZW1lbnRhdGlv bgooc2FucyB0aGUgRFAtTVNUIHBhcnQsIGFzIGRpc2N1c3NlZCkgb24gdG9wIG9mIHRoaXMgb24g dGhlIG5leHQKcmV2aXNpb24uIEkgd2FzIG5ldmVyIGZ1bGx5IGhhcHB5IHdpdGggdGhlIGN1cnJl bnQgb25lIGR1ZSB0byB0aGUKbG9naWMgYmVpbmcgc2hvZWhvcm5lZCBpbnRvIHRoZSBhbHJlYWR5 IGV4aXN0aW5nIGk5MTUgZmFsbGJhY2sKZm9ybWF0IGxvZ2ljLCBzbyBJJ20gcXVpdGUgaGFwcHkg dG8gaGF2ZSBhbm90aGVyIG9wcG9ydHVuaXR5IHRvCmltcGxlbWVudCBpdCB3aXRoIGxlc3MgaGlz dG9yaWMgYmFnZ2FnZS4KCj4gQXJlIHRoZSB3YXlsYW5kL2NvbXBvc2l0b3IvY29sb3IgbWFuYWdl bWVudCBmb2xrcyBvbiBib2FyZCB3aXRoCj4gdGhlc2UgbmV3IHByb3BlcnRpZXM/IEkgZG9uJ3Qg dGhpbmsgSSBzZWUgdGhlIHVzdWFsIHN1c3BlY3RzIG9uCj4gdGhlIGNjIGxpc3QuCgpJIGRvbid0 IGtub3cgd2hpY2ggcHJlY2lzZSBncm91cCBvZiBwZW9wbGUgeW91IHJlZmVyIHRvLCBidXQgYXQK bGVhc3QgZnJvbSB0aGUgQ29sbGFib3JhIHNpZGUgb2YgdGhpbmdzLCB0aGUgdXNlcnNwYWNlIFdh eWxhbmQKcGVvcGxlIGFyZSBvbiBib2FyZCB3aXRoIHRoZXNlIG5ldyBwcm9wZXJ0aWVzLiBJbiBX ZXN0b24sIHdlIHVzZQppdCB0byBpbXBsZW1lbnQgdGhlIFdlc3RvbiBmcm9udGVuZCdzICJjb2xv ci1mb3JtYXQiIG9wdGlvbiBpbiBhCldJUCBicmFuY2ggYXQKCmh0dHBzOi8vZ2l0bGFiLmZyZWVk ZXNrdG9wLm9yZy93YXlsYW5kL3dlc3Rvbi8tL21lcmdlX3JlcXVlc3RzLzE4NTkKCkkndmUgYWxz byBiZWVuIG1hZGUgYXdhcmUgdGhhdCBMaWJyZUVMRUMgaXMgYXdhcmUsIGFuZCB3aWxsIGxvb2sK aW50byBtYWtpbmcgdXNlIG9mIGl0IHJhdGhlciB0aGFuIHRoZWlyIG93biBrZXJuZWwgcGF0Y2hl cy4KCktpbmQgcmVnYXJkcywKTmljb2xhcyBGcmF0dGFyb2xpCgo+ID4gCj4gPiBXaGlsZSBkb2lu ZyB0aGF0IHNldmVyYWwgcXVlc3Rpb25zIGNhbWUgdG8gbXkgbWluZCB0aG91Z2g6Cj4gPiAKPiA+ ICogTW9yZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgY29sb3JzcGFjZSBwcm9wZXJ0eSwgYnV0IEkg c2VudAo+ID4gICBhIHNlcGFyYXRlIG1haWwgYWxyZWFkeSBhYm91dCB0aGF0Cj4gPiAKPiA+ICog V2hpY2ggY29udmVyc2lvbiBtYXRyaXggdG8gdXNlLCBhbmQgdGhlIGFuc3dlciBJIHN1c3BlY3QK PiA+ICAgc2hvdWxkIGJlICJhc2sgdGhlIGNvbG9yc3BhY2UgcHJvcGVydHkiLCBhcyBtZW50aW9u ZWQgaW4gdGhlCj4gPiAgIG90aGVyIG1haWwKPiA+IAo+ID4gKiBTaG91bGQgd2UgZmxhdCBvdXQg cmVqZWN0IGNvbG9yIGZvcm1hdHMgKGFuZCBJIHN1cHBvc2UgYWxzbwo+ID4gICBjb2xvcnNwYWNl IHByb3AgdmFsdWVzKSB0aGUgc2luayBkb2Vzbid0IGNsYWltIHRvIHN1cHBvcnQ/Cj4gPiAKPiA+ ICAgSWYgeWVzLCB0aGVuIEkgdGhpbmsgd2UnbGwgaGF2ZSB0byBmb3JnZXQgYWJvdXQgYWRkaW5n IGFueXRoaW5nIAo+ID4gICB0byBpOTE1IE1TVCBjb2RlLiBUaGUgd2F5IHRoZSBNU1Qgc3R1ZmYg d29ya3MgaXMgdGhhdCBpZiBvbmUKPiA+ICAgc3RyZWFtIG5lZWRzIGEgbW9kZXNldCB0aGVuIGFs bCB0aGUgcmVsYXRlZCBzdHJlYW1zIGdldCBtb2Rlc2V0Cj4gPiAgIGFzIHdlbGwuIFRodXMgaWYg dGhlIHVzZXIgcmVwbGFjZXMgYSBtb25pdG9yIGdldHRpbmcgZmVkIHdpdGggYQo+ID4gICBZQ2JD ciBzdHJlYW0ganVzdCBhcyBhbm90aGVyIHN0cmVhbSBpcyBiZWluZyBtb2Rlc2V0LCB0aGVuIHRo ZQo+ID4gICBlbnRpcmUgYXRvbWljIGNvbW1pdCBjb3VsZCBmYWlsIGR1ZSB0byB0aGUgWUNiQ3Ig c3RyZWFtIGdldHRpbmcKPiA+ICAgcmVqZWN0ZWQuCj4gPiAKPiA+ICAgSSB0aGluayBldmVudHVh bGx5IHdlIG1pZ2h0IGhhdmUgdG8gaW52ZW50IHNvbWUgbWVjaGFuaXNtIHdoZXJlCj4gPiAgIGFs bCB0aGUgaW5wdXQgaW50byB0aGUgbW9kZXNldCBjb21wdXRhdGlvbiBpcyBjYWNoZWQgc29tZWhv dywKPiA+ICAgYW5kIHNhaWQgY2FjaGUgdXBkYXRlZCBvbmx5IG9uIGV4cGxpY2l0IHVzZXJzcGFj ZSBtb2Rlc2V0cy4KPiA+ICAgRWl0aGVyIHRoYXQgb3Igd2UgaGF2ZSB0byBjb21lIHVwICB3aXRo IGEgd2F5IHRvIHNraXAgc29tZSBvZgo+ID4gICB0aGUgY2FsY3VsYXRpb25zIHRoYXQgZGVwZW5k IG9uIGV4dGVybmFsIGZhY3RvcnMuIEVpdGhlciB3YXkKPiA+ICAgaXQncyBnb2luZyB0byBiZSBh IHBhaW4uCj4gPiAKPiA+ICAgT1RPSCBpZiB3ZSBkb24ndCBtaW5kIGZlZWRpbmcgdGhlIHNpbmsg d2l0aCBzdHVmZiBpdCBjYW4ndAo+ID4gICB1bmRlcnN0YW5kLCB0aGVuIEkgc3VwcG9zZSB3ZSBt aWdodCBhZGQgWUNiQ3IgNDo0OjQgc3VwcG9ydAo+ID4gICBmb3IgTVNULiBJdCBzaG91bGRuJ3Qg YmUgYW55IGRpZmZlcmVudCBmcm9tIFJHQiBhcGFydCBmcm9tCj4gPiAgIHRoZSBSR0ItPllDYkNy IGNvbnZlcnNpb24sIHdoaWNoIGlzIGhhbmRsZWQgZWxzZXdoZXJlLiBCdXQKPiA+ICAgWUNiQ3Ig NDoyOjAgaXMgZGVmaW5pdGVseSBvdXQgZWl0aGVyIHdheSwgdGhlIE1TVCBjb2RlIGhhcwo+ID4g ICBubyBzdXBwb3J0IGZvciB0aGF0IGN1cnJlbnRseS4KPiA+IAo+IAo+IAoKCgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1h aWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK