https://bugs.kde.org/show_bug.cgi?id=516066
--- Comment #3 from Sanfod Rockowitz <[email protected]> --- This issue has been closed at ddcutil with no changes. There are two separate things going on here. The first is DDC communication failure that the user associates with recent ddcutil releases, in particular with the current development branch 2.2.6-dev. This failures resolve if the the special nvidia driver settings (https://www.ddcutil.com/nvidia/) are applied. My best guess is that DDC communication between the user's video card and monitor was marginal to begin with; and some change in ddcutil pushed it over the edge, Since the special nvidia driver settings resolve the problem I regard it as yet another instance of the problematic nature of the proprietary nvidia driver. The second is the disappearance of the display from the PowerDevil Brightness and Color Widget. API function ddca_set_non_table_vcp_value() is called with verification enabled, so it's actually two operations. The first sets the value. Success for this operation means the request packet was delivered to the monitor; there is no guarantee that the monitor acts on request. To check that the value has changed, a second request is issued to the monitor to read the current value. From the system journal I see that (without the special nvidia settings) the API call returns status -3023, which is DDCRC_VERIFY, i.e. the expected value was not read. After some retries, PowerDevil regards this as fatal and deletes the monitor from its widget. There's an entry to this effect in the system journal, but no notification at the UI level. Hence the report of the disappearing monitor. I suggest that ddca_set_non_table_vcp_value() be called with verification disabled, then get_non_table_vcp_value() be called to obtain the current value. This is what ddcui does. Note that a mismatch need not even mean an error. There are monitors which adjust very low brightness requests higher, apparently to prevent the user from setting the brightness so low the monitor appears dead. In retrospect it's unfortunate that ddca_set_non_table_vcp_value() even has the verification option, and that the default is verification, mimicing command line ddcutil's setvcp command.. But I'm loath to change existing API behaviour. I may deprecate ddca_get_non_table_vcp_value() in a future release in favor of a version that never performs verification. -- You are receiving this mail because: You are watching all bug changes.
