-
-
Notifications
You must be signed in to change notification settings - Fork 439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Solved] HDR not functioning on Steam Deck OLED #3281
Comments
Are you sure this is heroic's issue? I don't think we control the HDR support (that's probably on the game, wine, and dxvk or one of those to control). It would be interesting if you can run the same game using Lutris for example. |
I can report the same thing. |
@arielj I can't really tell, I am not super knowledgable about how everything is put together there and I don't personally use Lutris. But someone mentioned that it's an issue that might exist in Lutris as well, for similar reasons of using an internal Mesa version from Flatpak instead of Valve's Mesa. Which is from my understanding something you might control because the way your flatpak is put together decides whether you use Flatpak's Mesa or a system-installed one? |
This is not a Heroic issue. The Steam OS is the one that decides which Mesa version will be used. You can try to maybe enable the steam runtime and see if it fixes or follow some online tutorial on how to use Mesa-GIT with flatpak and then pass the environment variables on the game settings on Heroic. I would follow these steps to see if it fixes, but other than that we can close this since it is not a Heroic issue. |
Ok.. I was able to get HDR to work correctly both in Cyberpunk 2077 and Witcher 3 from GoG:
So it seems that when launched through Steam Game Mode it works correctly but not from Heroic and not in Desktop Mode. |
I can confirm that the method @helifax proposes works fine. The downside of course being that this disables all of Heroic's features, i.e. there is no seperate wine prefix used and savegame cloud sync no longer works. Does that not show that it's a Heroic issue, @flavioislima? I mean, SteamOS can apparently run the game fine with HDR when just launched directly. But Heroic is there to build stuff around that to make it more convenient to use, and clearly something there is what breaks the HDR. I tried your suggestion to launch it with Steam Runtime but inside gamescope ("game mode" UI) this fails, with the Heroic logs saying that no running instance of Steam was detected. Is that supposed to be that way? In Desktop mode I can run games with Steam Runtime enabled, but that's pointless because Desktop mode has no HDR support. |
Yeah, Steam itself has their own way of implementing the HDR. We are trying to build gamescope with HDR support for the flatpak, this might solve the issue, but let's see. |
Fwiw, the Chiaki4Deck folks figured out a way to get HDR working through Flatpak: streetpea/chiaki-ng#93 |
I have the same issue on my sd oled |
FYI: Chiaki4Deck released HDR support (with flatpak) now https://github.com/streetpea/chiaki4deck/releases/tag/v1.5.0 |
I tried these instructions yesterday with Cyberpunk 2077 (downloaded from Epic through Heroic) and it works absolutely fine. |
|
The method indicated here works, but, unfortunately, games from EGS often require additional “torment” in the form of installing an EGS client (when you run the added .exe in Steam, it complains about the lack of an EGS client). Is there any timeline for trying to implement hdr for flatpak or maybe just re-open this issue for easier tracking by users (you can also change it from a bug to a feature request if it doesn’t fit the bug criteria)? |
We are working on this. |
This is the Flatpak PR that should fix this issue, I will merge it soon and then Heroic Flatpak will ask for an update on Discover or any other store and then you guys can test. I don't have a Steam Deck oled to test yet. |
The PR was merged and the update was published so keep an eye on discover for updates and let us know if it worked. |
I now had refresh 2.12.0 available in discover, is this it? Also, will it be necessary to reinstall the game or delete it and add it to Steam again? So far I tried it after updating to refresh, without changing anything, it does not work the same, that is, everything becomes faded (the game Guardian's of the Galaxy from EGS) |
Just update to the refreshed version. Nothing else needed I believe. I know some games needs to have |
I don't really know why it would be 'faded' like you said. Have you enabled HDR on the Game settings that appear when the game is launched? |
Here are the changes that I tried (some of the advice is from here, some from the hdr reddit thread on steam deck oled):
|
Yes, I switch, the colors immediately become “faded”. The color becomes different from the standard SDR picture (just like it was before the heroic launcher update). At the same time, the hdr mode itself does not turn on the Steam deck oled (when it works there is information in the overlay and the brightness changes to hdr brightness in the settings side panel) |
No need to sorry the english is fine. Yeah, I also tried here on my monitor, not OLED but has HDR, and I see no difference with this new build. I wonder if even on Steam Deck we need to enable Gamescope with the HDR options or not, because I believe that every game launched on gamemode will use gamescope by default. |
@QaAndreii can you try one more thing? |
I haven't used them, but I'll try. Went to look and read some manual. |
I haven't used lutris before, but I still managed to hate it in just a few hours... In Guardian of the Galaxy, HDR doesn't work either. I haven’t tried Bottles (I’m afraid I’ll encounter the same interesting “quest”... either crashes or an incomprehensible error 256...). |
HDR through Lutris on Steam Deck does not work as they have not implemented Gamescope HDR support in the Flatpak. Should be the same for Bottles. Also, I can confirm all of @QaAndreii's reports, but I found the problem. Skip to the end of this post for the solution. Testing process: I updated Heroic Games Launcher and also tested Guardians of the Galaxy, a reference point since I've tested the Steam version and know it works perfectly with HDR. To get the EGS version working better you might want When launching in Game Mode, it displays the following error:
If I press OK, I get an almost identical error but instead saying (I can get rid of these errors by reverting to an earlier version of Gamescope Flatpak -- e.g. If I go to Settings and enable HDR, I see washed-out colors. Much like my experience trying to run Diablo IV through Lutris, this probably indicates that the game is able to detect the display's HDR capability and tries to display it in HDR, but the HDR colors aren't getting passed through properly, resulting in a washed-out appearance. (Usually, a game that detects your display doesn't support HDR won't even allow you to enable it.) I can also see through the Quick Access Menu's brightness slider that it's not displaying in HDR mode. I tested under the following conditions:
As a next step, I went to the logs generated by Heroic and saw:
The Chiaki4deck thread referenced earlier also referenced this error. The solution is:
Next I retried Guardians of the Galaxy using the last configuration I had tested earlier (Proton Experimental with the two env variables). Now HDR is working (colors aren't washed out, and QAM shows HDR is truly enabled), plus I'm no longer seeing the |
Good question. I will try to see if it is possible to add it as a dependency. but it is good to see that you guys made it work, so we are close to a full resolution now :) |
It is required because X11 and Wayland doesn't have native support for HDR yes, I mean when using Desktop mode with plasma on the Deck for instance. Gamescope has it is way to handle HDR so we need it to make it work for now. |
Previously I had to add /usr/bin to the filesystem overrides to allow Heroic Flatpak to access the system-level Gamescope, but this is not ideal since Flatpak is meant to isolate the program from the system. Adding Gamescope Flatpak resolves this issue; I was able to remove the /usr/bin override without any loss of functionality. |
I am not sure if it works, even if you add those with Flatseal Flatpak still does not uses it afaik, those are 'forbidden' paths. Btw, after installing Gamescope, did you need to enable it on the games settings in Heroic? |
I didn't need to enable anything inside HGL to make it work |
Same, I also didn't need to change anything in the game's HGL settings (besides -nolauncher for GotG, but not sure if that's actually needed). This should be shown in the Heroic log I posted earlier. |
@m3e-g @rakonkido Well, I guess is better not to think to much on that, the important thing is that it works, ahahahah |
I'm not experienced with Heroic, Flatpak, or Gamescope, but my current mental model of what's going on is that:
If you're testing HDR on desktop Linux with Flatpak Heroic, I'd guess you probably do need to enable Gamescope via Heroic, to ensure that it's calling the Gamescope Flatpak, not your system-level Flatpak. |
Can confirm that after installing gamescope through the provided install link listed in this thread, my copy of Assasins Creed :Mirage, purchased through the epic games store now properly displays HDR on the steamdeck oled model. I didnt need to do anything else to the games settings, just install gamescope and HGL detected it and it just worked. I feel like if possible future versions of HGL should auto install gamescope during its setup process. The support for this issue was fantastic you guys really killed it ! |
The first point makes sense, the second one I am not sure because other binaries installed on the system works fine. Check this line, this is where we update the path for the flatpak app: |
Asked ChatGPT:
|
I asked him about access to system directories. This may be useful, for example detecting the presence and directory of the system gamescope and using this "portal" to interact with it (assuming if it works). And so, the current solution (installing flatpak gamescope) is more than suitable for my use cases. ChatGPT about "portals"In general, Flatpak is designed to provide isolation for applications, preventing direct access to system directories. This is done to ensure system security and stability. The use of isolated runtimes and sandboxes implies that applications do not have direct access to system directories such as /usr/bin. |
The system Gamescope is at Btw, I guess we can close this issue now, as HDR has been working well for me through Heroic. |
Yes and Flatpak apps cannot access /usr/bin so this would never work. Closing it. But I will pin in case someone needs help with that in the future. |
I tried to set this up today. Unfortunately, the solutions in this thread just made Cyberpunk crash on startup. However, I was pointed in the right direction, and after a bit more research, I found the solution. After executing the following commands, the game work without any more tweaks. Clone the repo:
Change directory
Checkout the correct version:
Install the flatpak-builder flatpak:
Build and install gamescope:
Stop updates on the
|
I've tried running the commands like @roschi02 described, but the build and install command returned me a SSL error for libevdev-1.13.1.tar.xz. What worked as a solution to that was for me to download the libevdev-1.13.1.tar.xz file manually, then modify the modules/libevdev.yml file to point towards the local file, i.e.: Just leaving this here in case anyone else comes across this. It worked perfectly fine for enabling HDR on my Cyberpunk Ultimate GOG install! |
I do have a follow up question here: What will happen if i update steamOS to 3.6.*? Will gamescope HDR then break again? |
@Slothoncrack I updated from the stable to the beta version yesterday, and it broke. This could be because I have many mods installed. I see no reason why it should break if you only use Gamescope, mainly because you forced the system to not update the package. |
Updated Solution for Issues on Steam OS 3.6.* If you are encountering problems starting games on the new Steam OS 3.6.* release, here’s what worked for me:
For additional context: I followed the steps above to get games running on earlier versions of Steam OS. If you're setting this up for the first time, you won’t need to remove the update prevention. Instead, you may only need to downgrade Gamescope to version 23.08 by uninstalling the existing version and then installing the working one. |
Why is this issue closed? I received my brand new Steam Deck OLED a few days ago. I installed Heroic and Witcher 3 and found that launching from desktop made for a subpar experience (it didn't recognise the controller), so I added Witcher 3 to Steam and launched from game mode only to discover the HDR was broken. Doing |
Yeah I feel the pain too. I've been trying once in a while when I found the time, but I've so far been unable to find a way to give Heroic access to the system level gamescope without causing other things to break. I know it can be done (I've seen it done in other Flatpaks), but the relative generality of Heroic (and Lutris) has made it difficult to find a solution that works for so many different configurations. |
Describe the bug
A lot of people have recently gotten their shiny new Steam Deck OLEDs and tried out different HDR-capable games on it; certainly, many users of Heroic are Steam Deck users.
When installing and running HDR-capable games through Heroic (for instance, the Battle.net version of Diablo IV or the GOG version of Cyberpunk 2077), the games do correctly pick up that the screen is HDR capable and allow us to enable the specific options in game. But this results in an extremely distorted image (greyed out in the case of HDR PQ, and very oversaturated in the case of HDR scRGB), and the Steam Deck quick settings not even putting the little "HDR" badge next to the Brigthness setting, like it does in Steam games that are HDR capable and work without any problems.
Using a different version of Wine-GE/Proton-GE doesn't change the issue, I tried a bunch of them including latest and experimental. From what other people have mentioned about this issue on the internet (e.g. on Reddit), the problem might be related to Heroic not using the native Steam Deck's Mesa from Valve, but using Flatpak's Mesa instead.
Add logs
Steps to reproduce
Expected behavior
Enabling HDR should correctly switch the screen mode to HDR, like it works in Steam games. Or HDR should not be allowed to be enabled in the first place (like on Steam Deck LCD).
Screenshots
Diablio IV login screen with HDR enabled, colors are washed out:
Cyberpunk 2077 HDR calibration menu with HDR PQ enabled, colors are washed out:
Cyberpunk 2077 intro move with HDR scRGB enabled, colors are extremely oversatured:
Heroic Version
Latest Stable (Flatpak)
System Information
Additional information
No response
The text was updated successfully, but these errors were encountered: