From: Harry Wentland <harry.wentland@amd.com>
To: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Benjamin Gaignard <benjamin.gaignard@linaro.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Raphael GALLAIS-POU <raphael.gallais-pou@st.com>,
David Airlie <airlied@linux.ie>,
Yannick FERTRE - foss <yannick.fertre@foss.st.com>,
Alexandre TORGUE - foss <alexandre.torgue@foss.st.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Yannick FERTRE <yannick.fertre@st.com>,
Philippe CORNU - foss <philippe.cornu@foss.st.com>,
Philippe CORNU <philippe.cornu@st.com>,
"linux-stm32@st-md-mailman.stormreply.com"
<linux-stm32@st-md-mailman.stormreply.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Cyr, Aric" <Aric.Cyr@amd.com>
Subject: Re: [PATCH 1/2] drm: add crtc background color property
Date: Tue, 13 Jul 2021 09:54:35 -0400 [thread overview]
Message-ID: <70c8467c-560d-517d-63a0-97763803b06d@amd.com> (raw)
In-Reply-To: <20210713105214.5730c959@eldfell>
On 2021-07-13 3:52 a.m., Pekka Paalanen wrote:
> On Mon, 12 Jul 2021 12:15:59 -0400
> Harry Wentland <harry.wentland@amd.com> wrote:
>
>> On 2021-07-12 4:03 a.m., Pekka Paalanen wrote:
>>> On Fri, 9 Jul 2021 18:23:26 +0200
>>> Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com> wrote:
>>>
>>>> On 7/9/21 10:04 AM, Pekka Paalanen wrote:
>>>>> On Wed, 7 Jul 2021 08:48:47 +0000
>>>>> Raphael GALLAIS-POU - foss <raphael.gallais-pou@foss.st.com> wrote:
>>>>>
>>>>>> Some display controllers can be programmed to present non-black colors
>>>>>> for pixels not covered by any plane (or pixels covered by the
>>>>>> transparent regions of higher planes). Compositors that want a UI with
>>>>>> a solid color background can potentially save memory bandwidth by
>>>>>> setting the CRTC background property and using smaller planes to display
>>>>>> the rest of the content.
>>>>>>
>>>>>> To avoid confusion between different ways of encoding RGB data, we
>>>>>> define a standard 64-bit format that should be used for this property's
>>>>>> value. Helper functions and macros are provided to generate and dissect
>>>>>> values in this standard format with varying component precision values.
>>>>>>
>>>>>> Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
>>>>>> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
>>>>>> ---
>>>>>> drivers/gpu/drm/drm_atomic_state_helper.c | 1 +
>>>>>> drivers/gpu/drm/drm_atomic_uapi.c | 4 +++
>>>>>> drivers/gpu/drm/drm_blend.c | 34 +++++++++++++++++++++--
>>>>>> drivers/gpu/drm/drm_mode_config.c | 6 ++++
>>>>>> include/drm/drm_blend.h | 1 +
>>>>>> include/drm/drm_crtc.h | 12 ++++++++
>>>>>> include/drm/drm_mode_config.h | 5 ++++
>>>>>> include/uapi/drm/drm_mode.h | 28 +++++++++++++++++++
>>>>>> 8 files changed, 89 insertions(+), 2 deletions(-)
>
> ...
>
>>>>> The question about full vs. limited range seems unnecessary to me, as
>>>>> the background color will be used as-is in the blending stage, so
>>>>> userspace can just program the correct value that fits the pipeline it
>>>>> is setting up.
>>>>>
>>>>> One more question is, as HDR exists, could we need background colors
>>>>> with component values greater than 1.0?
>>>>
>>>> AR4H color format should cover that case, isn't it ?
>>>
>>> Yes, but with the inconvenience I mentioned.
>>>
>>> This is a genuine question though, would anyone actually need
>>> background color values > 1.0. I don't know of any case yet where it
>>> would be required. It would imply that plane blending happens in a
>>> color space where >1.0 values are meaningful. I'm not even sure if any
>>> hardware supporting that exists.
>>>
>>> Maybe it would be best to assume that only [0.0, 1.0] pixel value range
>>> is useful, and mention in the commit message that if someone really
>>> needs values outside of that, they should create another background
>>> color property. Then, you can pick a simple unsigned integer pixel
>>> format, too. (I didn't see any 16 bit-per-channel formats like that in
>>> drm_fourcc.h though.)
>>>
>>
>> I don't think we should artificially limit this to [0.0, 1.0]. As you
>> mentioned above when talking about full vs limited, the userspace
>> understands what's the correct value that fits the pipeline. If that
>> pipeline is FP16 with > 1.0 values then it would make sense that the
>> background color can be > 1.0.
>
> Ok. The standard FP32 format then for ease of use and guaranteed enough
> range and precision for far into the future?
>
I don't have a strong preference for FP16 vs FP32. My understanding is
that FP16 is enough to represent linearly encoded data in a way that
looks smooth to humans.
scRGB uses FP16 with linear encoding in a range of [-0.5, 7.4999].
> Or do you want to keep it in 64 bits total, so the UABI can pack
> everything into a u64 instead of needing to create a blob?
>
> I don't mind as long as it's clearly documented what it is and how it
> works, and it carries enough precision.
>
> But FP16 with its 10 bits of precision might be too little for integer
> 12-16 bpc pipelines and sinks?
>
> If the values can go beyond [0.0, 1.0] range, then does the blending
> hardware and the degamma/ctm/gamma coming afterwards cope with them, or
> do they get clamped anyway?
>
That probably depends on the HW and how it's configured. AMD HW can handle
values above and below [0.0, 1.0].
Harry
>
> Thanks,
> pq
>
next prev parent reply other threads:[~2021-07-13 13:54 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-07 8:48 [PATCH 0/2] Add "BACKGROUND_COLOR" drm property Raphael GALLAIS-POU - foss
2021-07-07 8:48 ` [PATCH 1/2] drm: add crtc background color property Raphael GALLAIS-POU - foss
2021-07-09 8:04 ` Pekka Paalanen
2021-07-09 16:23 ` Raphael Gallais-Pou
2021-07-12 8:03 ` Pekka Paalanen
2021-07-12 16:15 ` Harry Wentland
2021-07-13 7:52 ` Pekka Paalanen
2021-07-13 13:54 ` Harry Wentland [this message]
2021-07-14 7:35 ` Pekka Paalanen
2021-07-14 16:13 ` Harry Wentland
2021-07-15 9:34 ` Pekka Paalanen
2021-07-15 18:10 ` Harry Wentland
2021-07-07 8:48 ` [PATCH 2/2] drm/stm: ltdc: add crtc background color property support Raphael GALLAIS-POU - foss
2021-07-09 7:36 ` Pekka Paalanen
2021-07-07 9:03 ` [PATCH 0/2] Add "BACKGROUND_COLOR" drm property Simon Ser
2021-07-07 11:42 ` Daniel Vetter
2021-07-09 9:09 ` Raphael Gallais-Pou
2021-07-09 9:23 ` Simon Ser
2021-07-12 15:50 ` Raphael Gallais-Pou
2025-09-02 9:27 [PATCH 0/2] Introduce BACKGROUND_COLOR DRM CRTC property Cristian Ciocaltea
2025-09-02 9:27 ` [PATCH 1/2] drm: Add CRTC background color property Cristian Ciocaltea
2025-09-02 13:36 ` Ville Syrjälä
2025-09-02 16:26 ` Cristian Ciocaltea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=70c8467c-560d-517d-63a0-97763803b06d@amd.com \
--to=harry.wentland@amd.com \
--cc=Aric.Cyr@amd.com \
--cc=airlied@linux.ie \
--cc=alexandre.torgue@foss.st.com \
--cc=benjamin.gaignard@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=philippe.cornu@foss.st.com \
--cc=philippe.cornu@st.com \
--cc=ppaalanen@gmail.com \
--cc=raphael.gallais-pou@foss.st.com \
--cc=raphael.gallais-pou@st.com \
--cc=tzimmermann@suse.de \
--cc=yannick.fertre@foss.st.com \
--cc=yannick.fertre@st.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®