Announcement

Collapse
No announcement yet.

Incorrect colors on external monitor

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Incorrect colors on external monitor

    Hi folks,

    I've recently acquired a new monitor and am trying to connect it to my laptop. I'm using a USB-C to HDMI adapter. The problem is that, when normal booting, the colors on the external monitor are really off. I mean like psychedelic-looking off. But my laptop screen colors are entirely normal. When viewing a color chart on the external monitor, its as if all the colors are shifted by some amount. I have also tested this same hardware setup using Windows 10 (dual-booted laptop), and there are absolutely no problems on Windows.

    When I boot using safe mode, the problem goes away. However, of course this is due to not all the graphics drivers loading up by booting this way.

    EDIT #1: I have tested using a different monitor. However, since the monitor doesn't have an HDMI port, I used an HDMI to DVI-D cable along with the HDMI to USB-C adapter. IT WORKS!!! And not just on the first time, but even after unplugging and replugging the cable multiple times and rebooting multiple times. But why? What's different between these two monitors that Kubuntu doesn't like, and can we make Kubuntu like it?

    However, I also just tried it on a 4K TV with an HDMI 2.0 cable and it did not work.

    I would really rather not have to return this new monitor just because it doesn't work in Kubuntu, so I'm really curious if a key difference between the two monitors can be pinpointed to get Kubuntu to work more consistently. Any suggestions on what I should dig further into?

    EDIT #2: I've pinpointed exactly how the color space appears to be transformed on the weird external monitor output. First, I went to https://www.w3schools.com/colors/colors_picker.asp and scrolled down to the RGB picker. What I found is that the monitor is outputting each R, G and B value modulus 19. So for example, setting G and B to 0, R is black at 0 and increases in redness up to 18. Then, at 19, it immediately drops back to full black and the cycle repeats, increasing from 19 to 37 and then dropping back to full black, etc.. Same happens for green and blue channels, holding all other channels at 0. In fact, I've verified that it compress the entire 0 to 255 range into 0 to 18 intervals.

    EDIT #3: I've found a more manageable workaround where I noticed that if I let the monitor go completely into power saving mode on its own by unplugging the HDMI cable and waiting a bit until the screen is fully dark, and then plug the cable back in, then normal colors appear on the screen (most of the time, maybe about 5% of the time this doesn't work but this technique has been the most consistent). So maybe this isn't a boot-related issue, but something with the Intel HD drivers? Why does it produce correct colors only when the cable is plugged in after the monitor is completely in power saving mode?

    Any ideas on how to resolve this issue, or what to look into further? Thanks!
    Last edited by externalmonitor; Dec 22, 2020, 02:48 AM.

    #2
    That's weird as heck. Based on your description, it sounds like whatever detection is running at boot time is mis-applying the monitor setup. I wonder if kscreen is causing it. Try uninstalling kscreen and rebooting. If that works, you can run a xrandr script instead of relying on kscreen. If that doesn't work, you'll need to dig deeper. If safe mode works, then it's possibly a kernel boot parameter. You could install an older kernel and see how it behaves.

    Please Read Me

    Comment


      #3
      Curious is you've tried a different cable or different monitor to see if the results are different.

      Please Read Me

      Comment


        #4
        A different cable gives the same weird result. With the unplugging trick I mentioned, swapping the cables makes it work one additional time, but only on the first try.

        Uninstalling kscreen seemed to have not changed anything either. However, I did notice that after reinstalling it and rebooting, the external monitor was working - but only on that first time. After doing another reboot or fiddling around with cables etc., it was back to its old behavior. May be related to the weird first-time behavior I mentioned with the unplugging trick.

        I've tried a different monitor and it works! See edited post (copied here for convenience): "I have tested using a different monitor. However, since the monitor doesn't have an HDMI port, I used an HDMI to DVI-D cable along with the HDMI to USB-C adapter. IT WORKS!!! And not just on the first time, but even after unplugging and replugging the cable multiple times and rebooting multiple times. But why? What's different between these two monitors that Kubuntu doesn't like, and can we make Kubuntu like it?

        However, I also just tried it on a 4K TV with an HDMI 2.0 cable and it did not work.

        I would really rather not have to return this new monitor just because it doesn't work in Kubuntu, so I'm really curious if a key difference between the two monitors can be pinpointed to get Kubuntu to work more consistently. Any suggestions on what I should dig further into?"
        Last edited by externalmonitor; Dec 22, 2020, 02:40 AM.

        Comment


          #5
          UPDATE: I've pinpointed exactly how the color space appears to be transformed on the weird external monitor output. First, I went to https://www.w3schools.com/colors/colors_picker.asp and scrolled down to the RGB picker. What I found is that the monitor is outputting each R, G and B value modulus 19. So for example, setting G and B to 0, R is black at 0 and increases in redness up to 18. Then, at 19, it immediately drops back to full black and the cycle repeats, increasing from 19 to 37 and then dropping back to full black, etc.. Same happens for green and blue channels, holding all other channels at 0. In fact, I've verified that it compress the entire 0 to 255 range into 0 to 18 intervals.
          Last edited by externalmonitor; Oct 24, 2020, 08:33 PM.

          Comment


            #6
            Another update: this problem still hasn't been solved. I've found a more manageable workaround where I noticed that if I let the monitor go completely into power saving mode on its own by unplugging the HDMI cable and waiting a bit until the screen is fully dark, and then plug the cable back in, then normal colors appear on the screen (most of the time, maybe about 5% of the time this doesn't work but this technique has been the most consistent). So maybe this isn't a boot-related issue, but something with the Intel HD drivers? Why does it produce correct colors only when the cable is plugged in after the monitor is completely in power saving mode?

            Comment

            Working...
            X