• OS
  • who can use Linux but not windows? Share your Linux setup

I've shared a fix for disabling Intel iGPU/GPU dithering in 6-bit mode for users running Linux. You can find it here: https://github.com/WhisperingWindLinux/Guides/blob/main/README.md

This solution is particularly useful if you have a 6-bit+FRC monitor and you want to experiment with the 6-bit mode. For 8-bit color depth and above, this fix is not needed because Intel iGPU/GPU dithering is not present.

Please note that your monitor should be connected via DisplayPort to your Intel iGPU/GPU. There are some exceptions, such as Intel Arc, where the HDMI port internally route through DisplayPort. Similarly, some motherboards may have a similar design for the iGPU, but this is relatively rare.

Most laptop displays are internally connected via DisplayPort.

I've developed and tested this on kernel 6.10 with Ubuntu 24.04.1 LTS, and while it should work on other versions, I'm not entirely certain about the minimum Ubuntu version that supports this kernel.

I haven't tested the build guide on other Debian-based operating systems, but in theory, it should work. If you're using a non-Debian based OS, you should look up a guide specific to building the kernel for your distro.

X11 provides an easy way to switch color depth using xrandr. Other environments may not support color depth selection, such as Wayland.

The fix has been tested on the Intel Alder Lake UHD 48EU (Xe) i5-12450H and the Intel Arc A770, but in theory, it should work for all Intel iGPUs/GPUs.

    I wonder, if Windows was installed with Secure Boot enabled, could disabling it lead to boot issues with Windows.

    It's not clear about Secure Boot. Opinions online vary; some say that if you disable it, Windows 11 won't boot. So, this issue hasn't been fully addressed yet. If you had Secure Boot disabled before, you can build and use a custom kernel. If it's enabled and some operation systems are installed, I'm not sure yet whether it can be safely disabled and then re-enabled.

    Since in my guide the kernel is not signed, it likely won't boot without disabling Secure Boot.

    I will look into how to build a signed kernel in the future. I found this guide right away (but haven't checked if it works yet): https://github.com/jakeday/linux-surface/blob/3267e4ea1f318bb9716d6742d79162de8277dea2/SIGNING.md

    SunnyCove

    Maybe it's worth to write i915 developers and suggest to add more options on this…

    I have a feeling that the i915 developers might not prioritize this fix. If I mention that dithering is causing eye discomfort, they might suggest consulting an ophthalmologist.

    it's possible to make additional option for the i915 driver

    I'll need to look into it, but I'm not sure when I'll be able to get to it.

      9 days later

      WhisperingWind can you see what the amd driver shows for default dithering behavior? I have a 7950x PC that has the AMD Raphael igpu. Thinking of trying that first on my incandescent monitor. Since it was safe on my tv.

        jordan

        The logic for handling dithering in the amdgpu kernel module is more complex than in the i915. Based on the code, only 10-bit and 12-bit can be considered safe. Dithering may be present at 6-bit and 8-bit. But I don't know how to determine it.

          WhisperingWind that's good to know thanks for letting me know.

          I did see this awhile back I just remembered but unsure if that's not good enough for amd.

          AMD graphics cards:
          1. Switch to runlevel 3 (telinit 3)
          2. Run the following as Root:
          aticonfig --set-pcs-val=MCIL,DP_DisableDither,1
          Note that if this command does not turn off dithering, it might be necessary to use this command instead:
          aticonfig --set-pcs-val=TMDS_DisableDither,1
          3. Save the changes.
          4. Switch back to runlevel 5 (telinit 5)

          Edit: I found these too DP_DisableDither, HDMI_DisableDither if anyone was curious

          Seems more complicated will stick to Intel for now. Just have different hardware laying around

            jordan

            I tried these commands before and concluded that they are for older AMD cards. I'm not sure exactly how old, but ChatGPT mentioned something about RX 400 or older.

            P.S. “For Ubuntu 16.04 LTS and above, the AMD Catalyst or fglrx driver is no longer supported by AMD, or in Ubuntu.{1} If you have an AMD GPU and wish to run any Ubuntu version 16.04 LTS or newer, there are two open source driver options: Radeon or AMDGPU. The AMDGPU-PRO driver provides the open source AMDGPU driver and a proprietary overlay. Newer AMD GPUs designed with GCN technology (Graphics Core Next) should use AMDGPU or AMDGPU-PRO, while older AMD GPUs should use Radeon.”

            https://help.ubuntu.com/community/BinaryDriverHowto/AMD?action=show&redirect=BinaryDriverHowto%2FATI

              jordan

              I recommend trying out ARC. I've been using mine for about a week to watch YouTube on a TV with Windows 11 and the latest version of Ubuntu (standard kernel, no system modifications). The “picture” doesn't cause any strain.

                dev