Game is too dark, but works if RGB Range is set to Limited

I’m trying to play Elite Dangerous on Steam Runtime.
If it runs on the laptop’s display, then the dark areas are pitch black and there’s absolutely no detail in them.
If it runs on the external monitor connected via USB-C, then things are a bit better visually, but I’m getting some lag and a bit of stutter every now and then.

Workaround

If I set the RGB Range to “Limited”, then the game looks good but the desktop looks washed out.
For now I’ll just change this when I play, but I was curious if there’s a solution that works while keeping the RGB Range to Automatic/Full

Hardware

Laptop: Asus Zenbook Duo UX582HS
CPU: Intel i9 11900H
RAM: 32Gb
GPU: Nvidia RTX 3080 Mobile, 8Gb
Display (Main): 4k, oled (maybe the issue is because it’s oled?)
Display (Secondary): 3840x1100
Display (External): 4k, Asus PA279CV

Software

Running Garuda Mokka with KDE and Wayland
Steam is Runtime

What I already tried:

  • Added the following to /etc/environment (but did not restart yet)
KWIN_DRM_ALLOW_NVIDIA_COLORSPACE=1
  • Run the following command, but I don’t think it did anything:
󰛓 ❯ xgamma -gamma 1.3.1.3
-> Red  1.000, Green  1.000, Blue  1.000
<- Red  1.000, Green  1.000, Blue  1.000
  • In Display Configuration I’ve tried multiple combinations
    • ICC profile + 12bit
    • ICC profile + 12bit + HDR
    • No ICC profile + 12 bit
    • No ICC profile + 8 bit
    • sRGB color intensity 0, 30%, 50% and 100%
    • Brightness all the way to 100%
    • RGB range set to Full and Automatic
    • RGB range set to Limited: this works but my entire desktop looks washed out.

When I set the RGB range to Limited, I got the “Processing Vulkan shaders” popup when I launched the game and then everything looked perfect in-game.

And this is how the game looks with RGB Automatic or Full, black in the dark areas:

inxi

System:
  Kernel: 6.15.4-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.1.1 clocksource: tsc
    avail: acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=28bd6bff-8598-41ce-bec6-ae24465d3bca rw rootflags=subvol=@
    vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166
    vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173
    vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200 quiet
    nvidia-drm.modeset=1 rd.luks.uuid=316249cc-7193-456f-89c1-f3206c9aa185
    rd.luks.key=316249cc-7193-456f-89c1-f3206c9aa185=/.docs/2025.jpg:UUID=C676-0984
    rd.luks.options=316249cc-7193-456f-89c1-f3206c9aa185=keyfile-timeout=10s
    rd.luks.uuid=eafba6ea-1842-45d3-8af3-5ce617c6f478
    resume=/dev/mapper/luks-eafba6ea-1842-45d3-8af3-5ce617c6f478 loglevel=3 ibt=off
  Desktop: KDE Plasma v: 6.4.2 tk: Qt v: N/A info: frameworks v: 6.15.0 wm: kwin_wayland
    with: krunner vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: ZenBook Pro Duo UX582HS_UX582HS v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: UX582HS v: 1.0 serial: <superuser required> uuid: <superuser required>
    UEFI: American Megatrends LLC. v: UX582HS.303 date: 04/21/2022
Battery:
  ID-1: BAT0 charge: 92.6 Wh (100.0%) condition: 92.6/92.6 Wh (100.0%) volts: 15.9 min: 15.9
    model: ASUSTeK ASUS Battery type: Li-ion serial: N/A status: not charging cycles: 11
  Device-1: hidpp_battery_2 model: Logitech MX Ergo Multi-Device Trackball serial: <filter>
    charge: 55% (should be ignored) rechargeable: yes status: discharging
CPU:
  Info: model: 11th Gen Intel Core i9-11900H bits: 64 type: MT MCP arch: Tiger Lake gen: core 11
    level: v4 note: check built: 2020 process: Intel 10nm family: 6 model-id: 0x8D (141) stepping: 1
    microcode: 0x56
  Topology: cpus: 1x dies: 1 clusters: 8 cores: 8 threads: 16 tpc: 2 smt: enabled cache:
    L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 10 MiB desc: 8x1.2 MiB L3: 24 MiB desc: 1x24 MiB
  Speed (MHz): avg: 1894 min/max: 800/4900:4800 scaling: driver: intel_pstate
    governor: performance cores: 1: 1894 2: 1894 3: 1894 4: 1894 5: 1894 6: 1894 7: 1894 8: 1894
    9: 1894 10: 1894 11: 1894 12: 1894 13: 1894 14: 1894 15: 1894 16: 1894 bogomips: 79872
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
Graphics:
  Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: ASUSTeK driver: i915 v: kernel
    alternate: xe arch: Xe process: Intel 10nm built: 2020-21 ports: active: DP-1,DP-3,eDP-1
    empty: DP-2,HDMI-A-2 bus-ID: 0000:00:02.0 chip-ID: 8086:9a60 class-ID: 0300
  Device-2: NVIDIA GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] vendor: ASUSTeK
    driver: nvidia v: 575.64.03 alternate: nouveau,nvidia_drm non-free: 550-570.xx+ status: current
    (as of 2025-04; EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
    built: 2020-2023 ports: active: none empty: HDMI-A-1 bus-ID: 0000:01:00.0 chip-ID: 10de:249c
    class-ID: 0300
  Device-3: IMC Networks USB2.0 HD UVC WebCam driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 3-9:3 chip-ID: 13d3:56eb class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8 compositor: kwin_wayland
    driver: X: loaded: modesetting,nvidia unloaded: nouveau,vesa alternate: fbdev,intel,nv dri: iris
    gpu: i915 d-rect: 3840x5420 display-ID: 0
  Monitor-1: DP-1 pos: primary,top model: ASUS PA279 serial: <filter> built: 2022 res:
    mode: 3840x2160 hz: 60 scale: 150% (1.5) to: 2560x1440 dpi: 163 gamma: 1.2
    size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes: max: 3840x2160 min: 640x480
  Monitor-2: DP-3 pos: bottom model: BOE Display 0x085f built: 2021 res: mode: 3840x1100 hz: 60
    scale: 150% (1.5) to: 2560x733 dpi: 284 gamma: 1.2 size: 344x99mm (13.54x3.9")
    diag: 358mm (14.1") modes: max: 3840x1100 min: 1920x550
  Monitor-3: eDP-1 pos: middle model: Samsung 0x415f built: 2019 res: mode: 3840x2160 hz: 60
    scale: 200% (2) to: 1920x1080 dpi: 284 gamma: 1.2 size: 344x194mm (13.54x7.64")
    diag: 395mm (15.5") ratio: 16:9 modes: 3840x2160
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris device: 2 drv: swrast gbm:
    drv: iris surfaceless: drv: iris wayland: drv: iris x11: drv: iris inactive: device-1
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: nvidia mesa v: 575.64.03 glx-v: 1.4 direct-render: yes
    renderer: NVIDIA GeForce RTX 3080 Laptop GPU/PCIe/SSE2 memory: 7.81 GiB display-ID: :1.0
  API: Vulkan v: 1.4.313 layers: 11 device: 0 type: integrated-gpu name: Intel UHD Graphics (TGL
    GT1) driver: mesa intel v: 25.1.4-arch1.2 device-ID: 8086:9a60 surfaces: N/A device: 1
    type: discrete-gpu name: NVIDIA GeForce RTX 3080 Laptop GPU driver: nvidia v: 575.64.03
    device-ID: 10de:249c surfaces: N/A device: 2 type: cpu name: llvmpipe (LLVM 20.1.6 256 bits)
    driver: mesa llvmpipe v: 25.1.4-arch1.2 (LLVM 20.1.6) device-ID: 10005:0000 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console,kscreen-doctor
    gpu: gputop, intel_gpu_top, lsgpu, nvidia-settings, nvidia-smi wl: wayland-info x11: xdriinfo,
    xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Tiger Lake-H HD Audio vendor: ASUSTeK driver: sof-audio-pci-intel-tgl
    alternate: snd_hda_intel, snd_soc_avs, snd_sof_pci_intel_tgl bus-ID: 0000:00:1f.3
    chip-ID: 8086:43c8 class-ID: 0401
  Device-2: NVIDIA GA104 High Definition Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel
    bus-ID: 0000:01:00.1 chip-ID: 10de:228b class-ID: 0403
  API: ALSA v: k6.15.4-zen2-1-zen status: kernel-api tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.4.6 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Tiger Lake PCH CNVi WiFi driver: iwlwifi v: kernel bus-ID: 0000:00:14.3
    chip-ID: 8086:43f0 class-ID: 0280
  IF: wlo1 state: down mac: <filter>
  Device-2: Realtek USB 10/100/1G/2.5G LAN driver: r8152 type: USB rev: 3.2 speed: 5 Gb/s
    lanes: 1 mode: 3.2 gen-1x1 bus-ID: 4-1:2 chip-ID: 0bda:8156 class-ID: 0000 serial: <filter>
  IF: enp0s20f0u1 state: up speed: 2500 Mbps duplex: full mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
    mode: 1.1 bus-ID: 3-14:4 chip-ID: 8087:0026 class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 2 state: up address: N/A
RAID:
  Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd v: 0.6 port: N/A
    bus-ID: 0000:00:0e.0 chip-ID: 8086:9a0b rev: class-ID: 0104
Drives:
  Local Storage: total: 2.27 TiB used: 644.68 GiB (27.7%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 2TB size: 1.82 TiB
    block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 5B2QGXA7 temp: 40.9 C scheme: GPT
  ID-2: /dev/sdc maj-min: 8:32 vendor: Samsung model: Portable SSD T5 size: 465.76 GiB
    block-size: physical: 512 B logical: 512 B type: USB rev: 3.1 spd: 10 Gb/s lanes: 1
    mode: 3.2 gen-2x1 tech: SSD serial: <filter> scheme: MBR
Partition:
  ID-1: / raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 76.86 GiB (18.7%) fs: btrfs
    dev: /dev/dm-1 maj-min: 253:1 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 776 KiB (0.3%) fs: vfat
    dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 76.86 GiB (18.7%) fs: btrfs
    dev: /dev/dm-1 maj-min: 253:1 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
  ID-4: /var/log raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 76.86 GiB (18.7%)
    fs: btrfs dev: /dev/dm-1 maj-min: 253:1 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
  ID-5: /var/tmp raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 76.86 GiB (18.7%)
    fs: btrfs dev: /dev/dm-1 maj-min: 253:1 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 34.14 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-0
    maj-min: 253:0 mapped: luks-eafba6ea-1842-45d3-8af3-5ce617c6f478
  ID-2: swap-2 type: zram size: 31.03 GiB used: 3.04 GiB (9.8%) priority: 100 comp: zstd
    avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 79.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB note: est. available: 31.03 GiB used: 12.71 GiB (41.0%)
  Processes: 468 Power: uptime: 12h 21m states: freeze,mem,disk suspend: s2idle avail: deep
    wakeups: 0 hibernate: platform avail: shutdown, reboot, suspend, test_resume image: 12.36 GiB
    services: org_kde_powerdevil, power-profiles-daemon, upowerd Init: systemd v: 257
    default: graphical tool: systemctl
  Packages: 1677 pm: pacman pkgs: 1670 libs: 424 tools: octopi,paru,yay pm: flatpak pkgs: 7
    Compilers: clang: 20.1.7 gcc: 15.1.1 alt: 14 Client: Unknown Client: electron inxi: 3.3.38
Garuda (2.7.3-1):
  System install date:     2025-06-26
  Last full system update: 2025-07-06 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       No/Undetected
  Failed units:            afc.service