ddcutil icon indicating copy to clipboard operation
ddcutil copied to clipboard

brightness changes randomly failing (LG 24MB56)

Open qlum opened this issue 7 years ago • 13 comments

Sometimes when I try to change the brightness on my monitors It returns: Verification failed for feature 10 After that the brightness on the particular monitor remains unchanged. This is the command I use: sudo ddcutil -d 1 setvcp 10 50

While this is not a huge issue and doesn't happen often enough when changing the brightness on 5 identical monitors.

I hope this helps / I know this is probably not a priority.

probe.txt capabilities.txt interrogate.txt output.log

qlum avatar Nov 30 '18 15:11 qlum

What you're experiencing is an unfortunate behavior I see for some features on some monitors. Sometimes, verification succeeds, but there is no change in the monitor state.  Other times, verification fails, but the monitor is visibly changed.  Sometimes the problem only occurs for "large" changes, e.g. "setvcp 10 5 fails", but "set vcp 10 55 succeeds". For example, on my Dell U3011 "setvcp 16 5" to set the Red gain to a low value changes the screen, but reports failure.  "setvcp 16 100" both changes the screen and does not report failure.

Note that setvcp verification is just a getvcp after the setvcp.

Bottom line:  If I had a solution this would be a priority.  This behavior is especially problematic in the GUI version of ddcutil that's under construction.  Unfortunately, it appears to be a problem in particular monitors' DDC/CI implementation.

But thank you for reporting the problem.  I'll add your monitor to the rogues gallery of monitors at www.ddcutil.com/monitor_notes, and perhaps add a discussion of this behavior to the FAQ.

Sanford

On 11/30/18 10:53 AM, qlum wrote:

Sometimes when I try to change the brightness on my monitors It returns: |Verification failed for feature 10| After that the brightness on the particular monitor remains unchanged. This is the command I use: |sudo ddcutil -d 1 setvcp 10 50|

While this is not a huge issue and doesn't happen often enough when changing the brightness on 5 identical monitors.

I hope this helps / I know this is probably not a priority.

probe.txt https://github.com/rockowitz/ddcutil/files/2633983/probe.txt capabilities.txt https://github.com/rockowitz/ddcutil/files/2633984/capabilities.txt interrogate.txt https://github.com/rockowitz/ddcutil/files/2633985/interrogate.txt output.log https://github.com/rockowitz/ddcutil/files/2633986/output.log

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67, or mute the thread https://github.com/notifications/unsubscribe-auth/ANhsbiJxfdUM5vRX7kTZIqFXq9qxAvQmks5u0VRggaJpZM4Y76aL.

rockowitz avatar Nov 30 '18 18:11 rockowitz

One further comment.  Some monitor features can be changed only if the monitor is in certain input modes.  For example, typically Hue and Saturation controls will be work only if the input color format is YPrPb or such, as opposed to RGB.  So verification will be telling the truth in those cases.  But I've never seen a monitor for which brightness control (feature x10) is input mode dependent.

Sanford

On 11/30/18 10:53 AM, qlum wrote:

Sometimes when I try to change the brightness on my monitors It returns: |Verification failed for feature 10| After that the brightness on the particular monitor remains unchanged. This is the command I use: |sudo ddcutil -d 1 setvcp 10 50|

While this is not a huge issue and doesn't happen often enough when changing the brightness on 5 identical monitors.

I hope this helps / I know this is probably not a priority.

probe.txt https://github.com/rockowitz/ddcutil/files/2633983/probe.txt capabilities.txt https://github.com/rockowitz/ddcutil/files/2633984/capabilities.txt interrogate.txt https://github.com/rockowitz/ddcutil/files/2633985/interrogate.txt output.log https://github.com/rockowitz/ddcutil/files/2633986/output.log

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67, or mute the thread https://github.com/notifications/unsubscribe-auth/ANhsbiJxfdUM5vRX7kTZIqFXq9qxAvQmks5u0VRggaJpZM4Y76aL.

rockowitz avatar Dec 01 '18 00:12 rockowitz

Just to specify when setting the brightness form for example 20 to 30 and back to 20 again it will randomly fail with no visible changes it works 9/10 times but about 1/10 it fails. So in my particular case it doesn't seem to be related to smaller or larger steps.

The verification failed does seem to correspond with the brightness actually changing or not.

qlum avatar Dec 03 '18 16:12 qlum

I've taken a closer look at the interrogate output.  It looks like you're using both the on-chip Intel video (i915 driver) for some displays and a Radeon card with the radeon driver for the remainder.  The amdgpu driver is loaded but not used.  The system logs are showing errors for DisplayPort attached display(s) on the Radeon card.   The ddcutil's status show a fair amount of retries.

So my questions are these:

  • Are you seeing the problem with only the Radeon attached displays or the ones using on-chip Intel GPU?
  • Are the problems limited to DisplayPort attached displays?
  • Are you seeing intermittent problems with commands other than setvcp?

There are several command options that will dump diagnostics, though the volume of output is a bit overwhelming for normal use. These include:   report DDC communication errors:  --ddc   report retry and error stats:  --stats tries --stats errors

To make the stats specific to a single display, the following way of specifying the display will skip the detection phase:   --nodetect --bus where is the I2C bus number.

Sanford

On 12/3/18 11:30 AM, qlum wrote:

Just to specify when setting the brightness form for example 20 to 30 and back to 20 again it will randomly fail with no visible changes it works 9/10 times but about 1/10 it fails. So in my particular case it doesn't seem to be related to smaller or larger steps.

The verification failed does seem to correspond with the brightness actually changing or not.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67#issuecomment-443773544, or mute the thread https://github.com/notifications/unsubscribe-auth/ANhsbsjQ4Z8HlfOoeekt6EXK39xQ943Cks5u1VGTgaJpZM4Y76aL.

rockowitz avatar Dec 04 '18 14:12 rockowitz

The problems are on all my monitors both on the radeon and the intel The problems are across all displays displayport or not does not seem to matter much.

I will add here that the gpu I use is a sapphire flex card which does not have any displayport connectors but instead allows me to connect 3 monitors without using displayport ( I assume it has an active adapter build into the card itself)

I have not had any problems with other commands although I must admit that I use setvcp for the brightness quite often and don't regularly use any of the other commands.

I just ran the command quite a few times with an attached script (fixbrightness.txt) I didn't note how often I ran it but here are the number of failures per display: display 1 (intel dvi reported as hdmi): 8 display 2 (intel hdmi) : 5 display 3 (amd dvi): 5 display 4 (amd hdmi): 1 display 5 (amd dvi reported as displayport): 6

On the monitor side everything is plugged into an hdmi port in case of dvi with a passive adapter cable There is not much I can make out of this.

I also added the output of one run of my script, in this run display 3 failed.

fixbrightness.txt scriptoutput.txt

qlum avatar Dec 04 '18 16:12 qlum

Hi @qlum & @rockowitz

I was getting the same error for 2016/2017 Lenovo ThinkVision X1 27" 4K monitor connected via USB-C cable (DP). When I had a look at the OSD I've noticed that when a DCR (Dynamic Contrast Ratio) function was enabled then I wasn't able to change the brightness even via OSD. Once I disabled it then ddcutil started to work.

kowalcj0 avatar Jul 01 '20 21:07 kowalcj0

Thank you for reporting your observation @kowalcj0.

There is, of course, no Monitor Control Command Set feature defined to control DCR - the latest revision is 2.2a from July 2011. It would be interesting to see if we can determine if there is an undocumented VCP feature that does this.  Can I ask you to run "sudo ddcutil interrogate" and send the output as an attachment?

Regards, Sanford

On 7/1/20 6:00 PM, Janusz Kowalczyk wrote:

Hi @qlum https://github.com/qlum & @rockowitz https://github.com/rockowitz

I was getting the same error for 2016/2017 Lenovo ThinkVision X1 27" 4K monitor connected via USB-C cable (DP). When I had a look at the OSD I've noticed that when a DCR (Dynamic Contrast Ratio) function was enabled then I wasn't able to change the brightness even via OSD. Once I disabled it then |ddcutil| started to work.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67#issuecomment-652667261, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMGY3SNBEED2XDYPCORISTRZOWWZANCNFSM4GHPU2FQ.

rockowitz avatar Jul 01 '20 22:07 rockowitz

Sure @rockowitz

lenovo_thinkvision_x1_interrogate.log

kowalcj0 avatar Jul 02 '20 13:07 kowalcj0

Reviewing the interrogate output, there are 4 VCP features that are candidates for controlling DCR and Low Blue Light:

Feature x68:

  • Not listed in capabilities string
  • Not defined in MCCS
  • From scanning, appears to be a NC feature taking values in the range 0..5

Feature xa8:

  • Not listed in capabilities string
  • Not defined in MCCS
  • From scanning, appears to be a NC feature taking values in the range 0..3

Feature xe9:

  • Capabilities string reports that it takes values 0, 1
  • In MCCS manufacturer specific range
  • getvcp response reports it as unsupported

Feature xf0:

  • Capabilities string reports that it takes values 0, 2
  • In MCCS manufacturer specific range
  • getvcp response reports it as unsupported

We're looking for a NC feature that takes exactly 2 values, which rules out x68 and xa8.

That features xe9 and xf0 are defined in the capabilities string but getvcp reports them as unsupported suggests they are write-only.

If you're feeling adventurous, try setting feature xe9 to 0 or 2, and feature xf0 to 0 or 1, and see if the DCR or Blue Light settings are affected.

If the getvcp commands put the monitor into a weird state, "setvcp 04 1" resets the monitor to factory defaults.

On 7/2/20 9:46 AM, Janusz Kowalczyk wrote:

Sure @rockowitz https://github.com/rockowitz

lenovo_thinkvision_x1_interrogate.log https://github.com/rockowitz/ddcutil/files/4864634/lenovo_thinkvision_x1_interrogate.log

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67#issuecomment-653015330, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMGY3WUFAPMQBB2BXPGFQDRZSFTJANCNFSM4GHPU2FQ.

rockowitz avatar Jul 02 '20 19:07 rockowitz

Additional questions: -  When DCR is enabled, are other features disabled or only brightness?

  • Does enabling the Low Blue Light feature disable features as well?

Thanks.

On 7/1/20 6:00 PM, Janusz Kowalczyk wrote:

Hi @qlum https://github.com/qlum & @rockowitz https://github.com/rockowitz

I was getting the same error for 2016/2017 Lenovo ThinkVision X1 27" 4K monitor connected via USB-C cable (DP). When I had a look at the OSD I've noticed that when a DCR (Dynamic Contrast Ratio) function was enabled then I wasn't able to change the brightness even via OSD. Once I disabled it then |ddcutil| started to work.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67#issuecomment-652667261, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMGY3SNBEED2XDYPCORISTRZOWWZANCNFSM4GHPU2FQ.

rockowitz avatar Jul 02 '20 22:07 rockowitz

Hi @rockowitz

Sorry for a belated response, been out of town for few days.

I tried to setvcp xe9 0 & setvcp xe9 2 but got the same error:

sudo ddcutil -d 1 setvcp xe9 0
Setting value failed for feature e9. rc=DDCRC_REPORTED_UNSUPPORTED(-3005): DDC reports facility unsupported
sudo ddcutil -d 1 setvcp xe9 2
Setting value failed for feature e9. rc=DDCRC_REPORTED_UNSUPPORTED(-3005): DDC reports facility unsupported

re. Additional questions:

  • When DCR is enabled, are other features disabled or only brightness?

    • in "Adjust overall screen Brightness/Contrast/DSR" menu: brightness & contrast features are disabled
    • in "Adjust image properties" menu: Color and Scaling features are disabled
    • in "Options" menu: DP Select is disabled
  • Does enabling the Low Blue Light feature disable features as well?

    • When Low Blue Light is enabled, then
    • the whole "Adjust overall screen Brightness/Contrast/DSR" menu is disabled
    • in "Adjust image properties" menu: Color and Scaling features are disabled
    • in "Options" menu: DP Select is disabled
  • When DCR is disabled then:

    • in "Adjust image properties" menu: only Scaling is disabled
    • in "Options" menu: DP Select is disabled

kowalcj0 avatar Jul 06 '20 18:07 kowalcj0

Thank you for the info.  Take a look at the Lenovo ThinkVision X1 section on http://www.ddcutil.com/monitor_notes and let me know if I've summarized your results incorrectly.

As to the setvcp commands, the DDCRC_REPORTED_UNSUPPORTED error is a red herring.  It is the result of the automatic getvcp that's performed to verify that the value was actually set.  Setting a feature value only returns errors if the request packet is not successfully delivered. There's no response packet that can indicate the monitor processed the request properly. Hence the automatic getvcp to verify the result.  If we know the feature is write-only, verification is not performed.  But for manufacturer-specific features we don't know in advance.  I'll change the code to suppress the error message if the getvcp fails in this case.  For now, you can use the "--noverify" option to skip the verification step.

Your setvcp commands for feature xE9 mix the values for xE9 and xF0.  Please execute the following commands.  For each, are any changes in the monitor appearance or the OSD?

sudo ddcutil -d 1 --noverify setvcp e9 1

sudo ddcutil -d 1 --noverify setvcp f0  1

sudo ddcutil -d 1 --noverify setvcp f0 2

Sanford

On 7/6/20 2:55 PM, Janusz Kowalczyk wrote:

Hi @rockowitz https://github.com/rockowitz

Sorry for a belated response, been out of town for few days.

I tried to |setvcp xe9 0| & |setvcp xe9 2| but got the same error:

sudo ddcutil -d 1 setvcp xe9 0 Setting value failedfor feature e9. rc=DDCRC_REPORTED_UNSUPPORTED(-3005): DDC reports facility unsupported sudo ddcutil -d 1 setvcp xe9 2 Setting value failedfor feature e9. rc=DDCRC_REPORTED_UNSUPPORTED(-3005): DDC reports facility unsupported

re. Additional questions:

When DCR is enabled, are other features disabled or only brightness?

  o in "|Adjust overall screen Brightness/Contrast/DSR|" menu:
    brightness & contrast features are disabled
  o in "|Adjust image properties|" menu: |Color| and |Scaling|
    features are disabled
  o in "|Options|" menu: |DP Select| is disabled
Does enabling the Low Blue Light feature disable features as well?

  o When |Low Blue Light| is enabled, then
  o the whole "|Adjust overall screen Brightness/Contrast/DSR|"
    menu is disabled
  o in "|Adjust image properties|" menu: |Color| and |Scaling|
    features are disabled
  o in "|Options|" menu: |DP Select| is disabled
When |DCR| is disabled then:

  o in "|Adjust image properties|" menu: only |Scaling| is disabled
  o in "|Options|" menu: |DP Select| is disabled

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/67#issuecomment-654408653, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMGY3VUOMVNJH2BPGBRDULR2IMZTANCNFSM4GHPU2FQ.

rockowitz avatar Jul 07 '20 20:07 rockowitz

Hi Sanford,

LGTM 👍

Thank you for documenting it.

kowalcj0 avatar Jul 08 '20 16:07 kowalcj0