[Intel-gfx] [PATCH v6 1/3] drm: Add CRTC background color property (v5)
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Wed Feb 27 09:53:14 UTC 2019
Op 26-02-2019 om 17:17 schreef Matt Roper:
> On Tue, Feb 26, 2019 at 08:26:36AM +0100, Maarten Lankhorst wrote:
>> Hey,
>>
>> Op 21-02-2019 om 01:28 schreef Matt Roper:
>>> 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.
>>>
>>> v2:
>>> - Swap internal representation's blue and red bits to make it easier
>>> to read if printed out. (Ville)
>>> - Document bgcolor property in drm_blend.c. (Sean Paul)
>>> - s/background_color/bgcolor/ for consistency between property name and
>>> value storage field. (Sean Paul)
>>> - Add a convenience function to attach property to a given crtc.
>>>
>>> v3:
>>> - Restructure ARGB component extraction macros to be easier to
>>> understand and enclose the parameters in () to avoid calculations
>>> if expressions are passed. (Sean Paul)
>>> - s/rgba/argb/ in helper function/macro names. Even though the idea is
>>> to not worry about the internal representation of the u64, it can
>>> still be confusing to look at code that uses 'rgba' terminology, but
>>> stores values with argb ordering. (Ville)
>>>
>>> v4:
>>> - Drop the bgcolor_changed flag. (Ville, Brian Starkey)
>>> - Clarify in kerneldoc that background color is expected to undergo the
>>> same pipe-level degamma/csc/gamma transformations that planes do.
>>> (Brian Starkey)
>>> - Update kerneldoc to indicate non-opaque colors are allowed, but are
>>> generally only useful in special cases such as when writeback
>>> connectors are used (Brian Starkey / Eric Anholt)
>>>
>>> v5:
>>> - Set crtc->state->bgcolor to solid black inside
>>> drm_crtc_add_bgcolor_property() in case drivers don't do this
>>> themselves. (Ville)
>>> - Add kerneldoc to drm_crtc_add_bgcolor_property() function.
>>>
>>> Cc: dri-devel at lists.freedesktop.org
>>> Cc: wei.c.li at intel.com
>>> Cc: harish.krupo.kps at intel.com
>>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>> Cc: Sean Paul <sean at poorly.run>
>>> Cc: Brian Starkey <Brian.Starkey at arm.com>
>>> Cc: Eric Anholt <eric at anholt.net>
>>> Cc: Stéphane Marchesin <marcheu at chromium.org>
>>> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
>>> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
>>> Reviewed-by(v2): Sean Paul <sean at poorly.run>
>>> Reviewed-by: Brian Starkey <brian.starkey at arm.com>
>> I like how bgcolor is a u64 now, but there is an issue with setting
>> crtc->state->bgcolor in attaching the property.
>>
>> We should do it in atomic core init instead, like we already do for
>> connector/plane properties..
>>
>> See for example https://patchwork.freedesktop.org/series/52363/
>>
>> This was specificallly for the background color proposal, but we
>> probalby have to split out the non-trivial conversions of
>> __drm_atomic_helper_crtc_reset.
> Makes sense. What's the status of that patch? It looks like it has a
> lot of a-b's/r-b's but hasn't landed yet. Is there anything blocking
> it? If you're still driving it forward, I can wait for that to land and
> then build on top of it.
There was a discussion about it. I will resubmit it and split it up for the non-trivial cases, so those can be reverted if needed.
Will send a new version in a bit.
More information about the Intel-gfx
mailing list