How to program "max bpc" KMS property?
The following discussion from !835 (merged) should be addressed:
-
@swick started a discussion: (+5 comments) SDR can still benefit from higher bpc, especially on displays with a WCG. In general I'm not sure what the max bpc property is useful for in general because there is no minimum guarantee.
I did a bit of digging.
The kernel has commit:
commit e2306cc6a07aefc458982b3d7ae1e146515ed656
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date: Thu Nov 15 17:19:12 2018 -0500
drm/amdgpu: Add amdgpu "max bpc" connector property (v2)
[Why]
Many panels support more than 8bpc but some modes are unavailable while
running at greater than 8bpc due to DP/HDMI bandwidth constraints.
Support for more than 8bpc was added recently in the driver but it
defaults to the maximum supported bpc - locking out these modes.
This should be a user configurable option such that the user can select
what bpc configuration they would like.
[How]
This patch introduces the "max bpc" amdgpu driver specific connector
property so the user can limit the maximum bpc. It ranges from 8 to 16.
This doesn't directly set the preferred bpc for the panel since it
follows Intel's existing driver conventions.
This proprety should be removed once common drm support for max bpc
lands.
v2: rebase on upstream (Alex)
and after that when it's converted to the standard property, the default of 8 bpc is kept.
This sounds like max bpc
being high could make some video modes be rejected due to too high bandwidth requirements. Unfortunately the documentation on max bpc
is silent on this.
However, the commit that adds the standard property says:
commit 47e22ff1a9e0c144611bd063b3e6135f9a269503
Author: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Date: Fri Oct 12 11:42:32 2018 -0700
drm: Add connector property to limit max bpc
At times 12bpc HDMI cannot be driven due to faulty cables, dongles
level shifters etc. To workaround them we may need to drive the output
at a lower bpc. Currently the user space does not have a way to limit
the bpc. The default bpc to be programmed is decided by the driver and
is run against connector limitations.
Creating a new connector property "max bpc" in order to limit the bpc.
xrandr can make use of this connector property to make sure that bpc does
not exceed the configured value. This property can be used by userspace to
set the bpc.
This sounds like a workaround for buggy hardware, and not something that would limit/relax the choice of video modes.