EDIT: Something seems to have changed and I’m struggling to figure out what, but HDR has broken again. I’m not sure if it was a system update or not but I no longer see HDR in the display configuration, and running games like Baldur’s Gate 3 or Tiny Tina’s Wonderlands results in washed-out colors when HDR is enabled in them. I will update here if I figure it out.
For those of you like me who are fed up with Microsoft’s BS but invested too heavily in hardware that Linux distros have yet to support well, I finally figured out a way to get HDR games to run well on my Nvidia GPU. This will be a brief description of more or less what I did to get this working. I’m very much a Linux noob so I don’t fully understand the way everything here works but I’m happy to try to answer questions if you have any.
OS: Bazzite –Desktop Nvidia KDE edition (BDNK) Bazzite was developed as a capable alternative to SteamOS on handhelds like the Steam Deck and ROG Ally, so the website is full of references to HDR, however from my attempts to get this working my understanding is that it’s easier to get that working in Gaming mode which is unsupported on Nvidia GPUs. Nevertheless, this version of Bazzite, while only for desktops, comes with KDE Plasma v6 installed by default meaning it technically supports HDR and you will likely see a difference if you install this version and flip the HDR switch from the display settings. I had tried installing Ubuntu on my desktop before and since it didn’t support HDR all the colors on my monitor were almost obnoxiously saturated; I see the same effect in BDNK when I disable HDR.
Drivers: I didn’t fiddle with my drivers. BDNK comes with up-to-date Nvidia drivers bundled and installs them when you install the OS.
Software: SteamTinkerLaunch (installed using ProtonUp-Qt) SteamTinkerLaunch (STL) is a user interface for making it easy to configure your launch options for any given game in your Steam library. If you don’t know what a compatibility tool is, it’s functionally a layer of software between the game you want to play and the OS you’re using which can tell the game to do certain things that your OS is not configured to do. STL can be added to the list of compatibility tools you have to use in your installation of Steam, though it is not technically a compatibility tool itself. STL is used to configure other compatibility tools that Steam already has at its disposal, like Proton which is the primary compatibility tool SteamOS uses to make Windows games run on Linux.
Follow the instructions in the SteamTinkerLaunch GitHub ReadMe to install the tool and add it as a compatibility tool in your installation of Steam. Once you’ve done that, I recommend rebooting. I have yet to get STL working as the * default * compatibility tool, so for the time being I have been manually editing the properties of each game I have installed (Steam Game Library > right click on a game > click properties > go to the compatibility tab) to set the compatibility tool to STL. From here, whenever you launch the game in Steam, it should bring up STL’s menu before launching the game.
Within STL, the key settings to mark are as follows: Gamescope: Use gamescope and mark HDR as enabled for gamescope. I also recommend setting gamescope to fullscreen with your desired resolution, and then also locking your cursor to the gamescope window so that you don’t end up with weird double mouse cursors that aren’t aligned on the screen. Proton: since you told Steam to use STL instead of Proton as the compatibility tool, you need to tell STL to tell Steam to launch the game with Proton.
And that’s pretty much it. Or at least, that’s all that I did. From there, you should be able to configure HDR settings within each game’s menus.
TL;DR – install Bazzite Desktop Nvidia KDE, then install and configure SteamTinkerLaunch for your games.
What games will this work with? No idea. So far I have tested it with Cyberpunk 2077, DOOM Eternal, and Elden Ring and HDR is looking to me as good as it does in my Windows installation.
Will the Gnome version of Bazzite work for HDR on an Nvidia GPU, or for that matter any other OS as long as I’m using gamescope to run the game with HDR enabled? Good question! I don’t know, please give it a try if you’re curious and respond back with your results.
I have another question that you didn’t list here, what’s your answer? Probably “I don’t know” since what I wrote here is more or less what I know, but by all means ask away and I’ll try to answer it!
Will the Gnome version of Bazzite work for HDR on an Nvidia GPU, or for that matter any other OS as long as I’m using gamescope to run the game with HDR enabled?
I don’t think it would work because of the fact that HDR isn’t properly implemented yet on GNOME, still waiting for that to land in 47…
My guess is that you’re correct about that. I just wasn’t sure since I’m unfamiliar with just how powerful gamescope is, or how much control it has over the hardware
Is this available in KDE?
From my understanding, KDE Plasma version 6 using Wayland is the first desktop manager that supports HDR on Linux
Yes, at least that’s what was on OP’s system
You don’t really need STL, just set gamescope as the launch parameter. I suggest checking
--help
to see what the flags do, but in general you’ll wantgamescope -W <res width> -H <res height> -r <refresh rate> -f --force-grab-cursor --hdr-enabled -e -- %command%
. This works for me on TEKKEN 8, Helldivers 2 and Deep Rock Galactic.There are some issues, however. Some games might just freeze when running with gamescope (or gamescope with HDR flags), which is the case for me with Deep Rock, it’ll freeze merely 20 seconds after it starts. Second issue is that, at least for me, the image will be incredibly dark and for some reason the SDR content brightness slider on Plasma settings will change the brightness of the HDR gamescope window, so I have to set it to 1000 to “fix” the brightness, but my desktop will be blown out with brightness.
Does
--force-cursor-grab
fix the issue where the mouse cursor might be misaligned with where you’re clicking? Hadn’t ever used that parameter in my setup and have avoided games that had 3rd party launchers because of this very issue.It’s
--force-grab-cursor
, sorry. It should fix this issue of having a secondary cursos on screen and the cursor leaving to other monitors.Err yeah, lol… That’s what I meant, but typed it wrong. And hmmm, not sure that’ll do it then but I will give it a try.
I believe that’s the flag that worked for me, though STL obscures the exact flag names away
Hmmm, I’m hoping the HDR flag fixes HDR in Kingdom Hearts 3 on the OLED SteamDeck.
I’ll test tonight.
Deck’s game mode is already running an embedded gamescope session with the flags enabled, so that wouldn’t be needed. Might be something else going on that’s worth searching about, though
-e is for steam integration, are you sure this is necessary?
If you’re running it as a launch parameter on Steam you need it for the overlay and input to work, however this has been broken for quite a while now. Some people say gamescope 3.14.24 fixed it, but it wasn’t my case.
Are you enabling HDR on the Display Configuration panel before starting the game or just leaving it off and only enabling HDR with gamescope?
I did enable HDR in the display config. If it’s disabled, all the colors on the desktop are annoyingly saturated. I don’t know if disabling it in the display config will prevent gamescope from using HDR correctly.
Good question, should have been more specific in my post.
Thing is, the colors on my HDR display are all washed out on the desktop if I enable HDR. Specially without a color profile. Are you using a color profile?
Interesting. No, I’m not. I’m curious if you would think the desktop colors on my monitor are washed out when HDR is enabled in display config, though I know that’s not particularly helpful. I’m sorry I don’t know much else. I’m disappointed by the lack of any HDR related tuning built into Bazzite though I don’t know enough about HDR to even go about tweaking the colors.
disappointed.
I wouldn’t be. I appreciate the work done so far by KDE and the Plasma team. They just started support with plasma 6. It will improve.
Bazzite
I wouldn’t count on them to solve it. It’s not like they have anything to do with Plasma desktop. They just package existing software in their own distro.
Thanks for the info
That is normal, you have to set the SDR color intensity slider further up in order to get “proper” colors for SDR content.
Still, I would not recommend running the desktop in HDR mode.
Thing is, the colors on my HDR display are all washed out on the desktop if I enable HDR.
Sometimes this can be a bug and HDR isn’t properly enabled. Do you get any sort of HDR notification on your display (i.e. from the monitor/tv UI)?
TV does not recognize HDR mode even though enabling HDR in the Display Configuration does blank the TV for a second when turning it on/off.
Are you using a DP -> HDMI converter? I know they can be temperamental.
You can try switching VTs back and forth (CTRL-ALT-F1 <-> CTRL-ALT-F7), and maybe switching resolution back and forth could help.
Make sure you have the latest kernel and try the latest Plasma 6. If all of that fails, you can try Steam with gamescope running in KMS mode (easiest way to test this would probably be Bazzite or Nobara if your distribution doesn’t support it), but it’s also a bit temperamental with enabling HDR.
Appreciate the response!
Are you using a DP -> HDMI converter? I know they can be temperamental.
Nope, those converters do not allow the HDMI 2.1 spec.
I’m running 6.10.x kernel on plasma 6.1.4. I’ve been bleeding edge because of the NVIDIA card for years now. I’ve been played with gamescope HDR, ICC profiles and everything you can think of since it was first possible.
I’ll have to play with it some more when I have time.
Nope, those converters do not allow the HDMI 2.1 spec.
They exist now, although I don’t think there is a working DP 2.0 -> HDMI 2.1 converter yet, so you have to use DSC (visually lossless compression).
Okay. So it’s working. And probably has been working. I’ve been trying to test it with video all this time. VLC and MPV. I decided to setup HDR with Hell Divers and it’s working.
If you want to use with mpv, try this:
ENABLE_HDR_WSI=1 mpv --vo=gpu-next --target-colorspace-hint --gpu-api=vulkan --gpu-context=waylandvk
Although I’m surprised you didn’t get a HDR monitor prompt just from enabling the option on the desktop.
Neat. I feel like there must be some way to automate both the install of STL and making every game default to gamescope with HDR, but that’s cool you got everything working!