On Fri Dec 19, 2025 at 10:46 PM CET, Cristian Ciocaltea wrote: > Some display controllers can be hardware-configured to present non-black > colors for pixels which are not covered by any plane (or are exposed > through transparent regions of higher planes). > ... > The subsequent patches add background color support to VKMS and the VOP2 > display controller used in the RK3568, RK3576, and RK3588 Rockchip SoC > families.
As previously reported against the v3, while I actually tested v4 ... Cristian provided a helper script which would show a test pattern and then iterate through setting Red, Green, Blue background color and then set it back to the original value. I first tested this on a Rock 5B (RK3588). Without this patch set, the background color was Black with every iteration. But with this patch set, I did see a Red, Green and Blue background color, after which it was set back to Black. diederik@rock5b:~$ grep -E "^Changing prop|^Read BACKGROUND_COLOR" bgcol-test-bash-user.log Read BACKGROUND_COLOR prop (ARGB64): 0xffff000000000000 Changing prop value to: 0xffff00000000ffff Read BACKGROUND_COLOR prop (ARGB64): 0xffff00000000ffff Changing prop value to 0xffffffff00000000 Read BACKGROUND_COLOR prop (ARGB64): 0xffffffff00000000 Changing prop value to 0xffff0000ffff0000 Read BACKGROUND_COLOR prop (ARGB64): 0xffff0000ffff0000 Changing prop value to 0xffff00000000ffff Read BACKGROUND_COLOR prop (ARGB64): 0xffff00000000ffff Changing prop value to: 0xffff000000000000 Read BACKGROUND_COLOR prop (ARGB64): 0xffff000000000000 I then did the same test on a Quartz64-B (RK3566) and that too showed a Red, Green and Blue background color and then was set back to Black. diederik@quartz64b:~$ grep -E "^Changing prop|^Read BACKGROUND_COLOR" bgcol-test-bash-user-q64b.log Read BACKGROUND_COLOR prop (ARGB64): 0xffff000000000000 Changing prop value to: 0xffff00000000ffff Read BACKGROUND_COLOR prop (ARGB64): 0xffff00000000ffff Changing prop value to 0xffffffff00000000 Read BACKGROUND_COLOR prop (ARGB64): 0xffffffff00000000 Changing prop value to 0xffff0000ffff0000 Read BACKGROUND_COLOR prop (ARGB64): 0xffff0000ffff0000 Changing prop value to 0xffff00000000ffff Read BACKGROUND_COLOR prop (ARGB64): 0xffff00000000ffff Changing prop value to: 0xffff000000000000 Read BACKGROUND_COLOR prop (ARGB64): 0xffff000000000000 So this patch set does what it is supposed to do, so feel free to add: Tested-by: Diederik de Haas <[email protected]> Cheers, Diederik > > Signed-off-by: Cristian Ciocaltea <[email protected]> > --- > Changes in v4: > - Switched to simple bit-shifting approach when performing the bpc > conversion in the vop2 driver, to avoid the expensive division since > we shouldn't be concerned anymore about the precision (Chaoyi) > - Rebased series onto latest drm-misc-next > - Link to v3: > https://lore.kernel.org/r/[email protected] > > Changes in v3: > - Added new patches: > * uapi: Provide DIV_ROUND_CLOSEST() > * drm/vkms: Support setting custom background color > - Improved DRM_ARGB64_{PREP|GET}*() helpers by using a conversion ratio > for better color approximation when dealing with less than 16 bits of > precision > - Mentioned the IGT test in the cover letter while documenting the > validation results; also dropped references to the now useless > modetest wrapper script and its generated report > - Rebased series onto latest drm-misc-next > - Link to v2: > https://lore.kernel.org/r/[email protected] > > Changes in v2: > - Improved uAPI consistency and readability by introducing > DRM_ARGB64_PREP*() and DRM_ARGB64_GET*() helper macros > - Updated several code comment sections > - Referenced the counterpart Weston support in the cover letter > - Rebased series onto v6.18-rc1 > - Link to v1: > https://lore.kernel.org/r/[email protected] > > --- > Cristian Ciocaltea (4): > uapi: Provide DIV_ROUND_CLOSEST() > drm: Add CRTC background color property > drm/vkms: Support setting custom background color > drm/rockchip: vop2: Support setting custom background color > > drivers/gpu/drm/drm_atomic_state_helper.c | 1 + > drivers/gpu/drm/drm_atomic_uapi.c | 4 ++ > drivers/gpu/drm/drm_blend.c | 39 ++++++++++++++-- > drivers/gpu/drm/drm_mode_config.c | 6 +++ > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 13 +++++- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 4 ++ > drivers/gpu/drm/vkms/vkms_composer.c | 10 ++++- > drivers/gpu/drm/vkms/vkms_crtc.c | 3 ++ > include/drm/drm_blend.h | 4 +- > include/drm/drm_crtc.h | 12 +++++ > include/drm/drm_mode_config.h | 5 +++ > include/linux/math.h | 18 +------- > include/uapi/drm/drm_mode.h | 67 > ++++++++++++++++++++++++++++ > include/uapi/linux/const.h | 17 +++++++ > 14 files changed, 178 insertions(+), 25 deletions(-) > --- > base-commit: 8e7460eac786c72f48c4e04ce9be692b939428ce > change-id: 20250829-rk3588-bgcolor-c1a7b9a507bc > > > _______________________________________________ > Linux-rockchip mailing list > [email protected] > http://lists.infradead.org/mailman/listinfo/linux-rockchip
