For HDR is KDE my only option?

Thinking about giving Bazzite a try for my Desktop machine. I am curious about the choice of DE’s. My understanding is that Gnome has no HDR support and KDE Plasma has some very early HDR support.

Curious if that forces me into a KDE Plasma only situation with Bazzite if I care about HDR or if it’s possible to go the Gnome route and booting into a Gamescope desktop session when I want to play a game with HDR support?

The gamescope session on deck images is its own thing and HDR will work there no matter which desktop environment you pick.

1 Like

Would I get the gamescope session if I choose a non-deck desktop image?

If I went with Desktop Gnome, would I have an option option to log out and boot into a gamescope session from the GDM login screen?

Nope. A -deck image is required. You can rebase to one with: bazzite-rollback-helper rebase deck but this comes with the caveats:

  • Requires specific hardware requirements
  • Boots into gamescope-session automatically on every boot
  • Can only have 1 user

Ah bummer, I was reading the Arch wiki and was thinking something like what they describe with the Gamescope login session might be in Bazzite.

Sounds like it’s KDE Plasma or bust for desktop HDR. Appreciate the advice.

Gnome does have experimental hdr you can enable. I’ve tried it with limited success.

How do you enable that / where is the process documented? The Arch wiki has been my lifeline for navigating the early world of HDR on Linux and they kind of just write off Gnome as not implemented yet.

  1. Experimental HDR mode:
  • Run the following command in the “Looking Glass” (a debugging tool in GNOME): global.compositor.backend.get_monitor_manager().experimental_hdr = 'on'
  • This command enables experimental HDR mode, but it may not work consistently or with all hardware configurations.

To open Looking Glass hit ALT + F2, in the box type lg

Like I said it is very experimental. YMMV

1 Like

Thanks for the tip, but doesn’t appear to work on my setup. I type the command and my monitor doesn’t switch into HDR mode.

For the record I am on Gnome 47 with the AMD mesa drivers.

The command changed on 47. As I said it’s experimental and continually being worked on.
You posted this in Bazzite, which is on 46 still…

Yeah I am trying to figure out a few details before I install Bazzite. I am currently on OpenSuse Tumbleweed, so on latest Gnome.

Command for Gnome 47 was changed to

global.context.get_debug_control().enable_hdr = true

From:

1 Like

Question regarding game mode.

If I go with a KDe desktop and run a game under gamescope, is that going to give me the same HDR experience as game mode or is the stack too different at that point?

Putting it more specifically. I’m pretty frustrated with HDR under my current distro - Tumbleweed. I realize it’s not really the distros fault it’s just that HDR on Linux is generally early. But even under KDE, which has a HDR mode, I’ve really struggled with HDR. I’ve had lots of issues with running games in game scope containers and the HDR looks off.

I am wondering if I would benefit from the improve HDR support mentioned in the Github readme:

  • Uses the fsync kernel to achieve HDR and expanded hardware support, among numerous other included patches.

I am pretty ignorant about fsync, I’ve been poking around the source a bit and I do see some color management for HDR patches in there. But if I am being honest it is mostly greek to me.

Would I benefit from better HDR under KDE (or even potentially Gnome) or is the HDR improvements a gamemode only thing?

1 Like

Ok now that I am actually using Bazzite I figured this out.

I am on Bazzite 41 and with my setup;

  • AMD Ryzen 7 7800X3D
  • AMD Radeon RX 7900 XTX
  • Mesa drivers (with the patches that come out of the box with Bazzite)
  • Coolermaster TEMPEST GP27U monitor

This is what I have observed.

  • Due to XWayland limitions, all Proton games need to be run through Gamescope.
  • Gnome HDR + Gamescope doesn’t work - looks borderline desatured, honestly spent the least amount of time on this given how early this appears to be.
  • KDE Plasma HDR + Gamescope doesn’t work - HDR just looks off and bad compared to a baseline of Windows.
  • Gamescope, by itself in a TTY works! And it looks really good - process is described in Arch Wiki. This works on both the Gnome and KDE variants, as it isn’t dependent on the DE compositor.

Personally I am using this command to launch Steam in the TTY:

gamescope --hdr-enabled -f -W 3840 -H 2160 -r 160 --force-grab-cursor --adaptive-sync --steam -- env DXVK_HDR=1 steam -tenfoot

I am not marking this as an answer yet, as I think I need to tweak that command, my mouse is deadzoning or something that makes games pretty unplayable on Gamescope at the moment. I also see this mouse behavior under Gnome and Plasma, so I believe it’s not due to the TTY.

KDE Plasma6.2 HDR + Gamescope does work.
You only need to add this line to the launch option for the game in Steam client, there is no need to launch steam in Gamescope, you don’t need DXVK_HDR=1 either.

gamescope --hdr-enabled -f -h 2160 -- %command%

You don’t need the --adaptive-sync, it is for DRM mode, KDE Plasma6 has supported adaptive sync.
Remember to enable HDR in KDE Plasma Display Setting.

OS: Arch Linux
Kernel: 6.11.6-zen1-1-zen
Driver: Mesa Gallium driver 24.2.6-arch1.1 for AMD Radeon RX 6750 XT (radeonsi, navi22, LLVM 18.1.8, DRM 3.59, 6.11.6-zen1-1-zen)
Monitor: Acer XV275K P3

Hey thanks for posting. I iterated on a bunch of things to get KDE HDR working, including commands very similar to what you posted, and had zero luck. It says it’s in HDR, the game thinks it’s in HDR, but the colors look awful. My understanding is KDE HDR is still experimental and the assumptions it’s making for its implementation may work on some hardware but not on other hardware.

I also tried to get this to work for a long time on Tumbleweed and then again which I switched over to Bazzite. Arch might be doing something upstream, but knowing Arch’s preference for vanilla upstream, I would be surprised to learn that. I’ll chalk it up to hardware differences.

TTY is the only way I’ve gotten HDR working under Linux with my particular hardware. The command I have reflects what I am running under TTY, not KDE.

What is your GPU? I wonder how it looks like on your system.

What is your GPU?

AMD Radeon RX 7900 XTX (forgot to include this up top, just edited it in)

I wonder how it looks like on your system.

Yeah I should have camera snapped some of what I was seeing but didn’t think of it at the time and now I am on Gnome Bazzite so I don’t have easy access to KDE Plasma.

There is a distinct difference between games in KDE HDR and the Gamescope TTY HDR (which to my eye looks very close to Windows). Best I can describe the dark under KDE is that highlights looked completely blown up while also losing details in the dark.

I appreciate your post. I have an HDR display on its way, so i’m very interested in getting HDR working.

Do I need to install gamescope-session-steam-git mentioned in the Wiki?
I’m running the latest version of Bazzite on desktop.
When running your command in TTY:

gamescope --hdr-enabled -f -W 3840 -H 2160 -r 160 --force-grab-cursor --adaptive-sync --steam -- env DXVK_HDR=1 steam -tenfoot

I get black screen, and then the following output:

[gamescope] [Info]  console: gamescope version 7dd1bcd+ (gcc 14.2.1)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 5)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 6)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info]  scriptmgr: Loading scripts from: '/home/ryanw/.config/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/home/ryanw/.config/gamescope/scripts' does not exist
[gamescope] [Info]  vulkan: selecting physical device 'AMD Radeon RX 7800 XT (RADV NAVI32)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  wlserver: [libseat] [libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
[gamescope] [Info]  wlserver: [libseat] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
[gamescope] [Info]  wlserver: [libseat] [libseat/libseat.c:73] Seat opened with backend 'logind'
[gamescope] [Info]  wlserver: [backend/session/session.c:108] Successfully loaded libseat session
[gamescope] [Info]  drm: opening DRM node '/dev/dri/card1'
[gamescope] [Info]  drm: Connector HDMI-A-1 -> ACR - Acer XF270H B
[gamescope] [Info]  drm: [colorimetry]: EDID with colorimetry detected. Using it
[gamescope] [Info]  drm: [colorimetry]: r 0.648438 0.332031
[gamescope] [Info]  drm: [colorimetry]: g 0.326172 0.624023
[gamescope] [Info]  drm: [colorimetry]: b 0.157227 0.057617
[gamescope] [Info]  drm: [colorimetry]: w 0.313477 0.329102
[gamescope] [Info]  drm: Connector HDMI-A-1 -> ACR - Acer XF270H B
[gamescope] [Info]  drm: [colorimetry]: EDID with colorimetry detected. Using it
[gamescope] [Info]  drm: [colorimetry]: r 0.648438 0.332031
[gamescope] [Info]  drm: [colorimetry]: g 0.326172 0.624023
[gamescope] [Info]  drm: [colorimetry]: b 0.157227 0.057617
[gamescope] [Info]  drm: [colorimetry]: w 0.313477 0.329102
[gamescope] [Info]  drm: Connectors:
[gamescope] [Info]  drm:   HDMI-A-1 (connected)
[gamescope] [Info]  drm:   DP-2 (disconnected)
[gamescope] [Info]  drm:   DP-3 (disconnected)
[gamescope] [Info]  drm:   DP-1 (disconnected)
[gamescope] [Info]  drm: selecting connector HDMI-A-1
[gamescope] [Info]  drm: selecting mode 1920x1080@144Hz
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB48 (0x38344241)
[gamescope] [Info]  vulkan:   XB48 (0x38344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :2
[gamescope] [Info]  pipewire: stream state changed: connecting
[gamescope] [Info]  pipewire: stream state changed: paused
[gamescope] [Info]  pipewire: stream available on node ID: 85
[gamescope] [Info]  xwm: Embedded, no cursor set. Using left_ptr by default.
[gamescope] [Info]  vblank: Using timerfd.
[gamescopereaper] [Error] process: Failed to start process "enc": No such file or directory
[gamescope] [Info]  launch: Primary child shut down!
(EE) failed to read Wayland events: Broken pipe
[gamescope] [Error] drm: drmModeRmFB failed: Bad file descriptor
[gamescope] [Error] drm: drmModeRmFB failed: Bad file descriptor
[gamescope] [Error] drm: drmModeRmFB failed: Bad file descriptor
[gamescope] [Error] drm: drmModeRmFB failed: Bad file descriptor

Perhaps this is due to my current non-HDR/DRM supported monitor.

This is my current steam launch option, though i’m regularly learning to optimize it:

env MANGOHUD_CONFIG=”fsr,fps_value.gamemode” gamescope --mangoapp --adaptive-sync --force-grab-cursor -W 1920 -H 1080 -f -- %command%

Well, I’ve connected the new HDR monitor, but i’m still receiving the same errors:

[gamescopereaper] [Error] process: Failed to start process "enc": No such file or directory

Any suggestions?

Edit: I’m as able to get Steam Big Picture to launch with the following command in TTY:

gamescope --hdr-enabled -f -W 3840 -H 2160 -r 160 --force-grab-cursor --adaptive-sync --steam – steam -tenfoot

My monitor OSD says HDR, but the two games I’ve tried both says HDR not supported.

Are they’re any launch commands in steam I should be using also?