Oolite on HDR Displays

News and discussion of the PC port of Oolite.

Moderators: winston, another_commander

another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6627
Joined: Wed Feb 28, 2007 7:54 am

Re: Oolite on HDR Displays

Post by another_commander »

Simba wrote: Wed Sep 18, 2024 8:32 pm
I found out the reason for the color distortion - the game did not work in true HDR mode. If you switch to windowed mode and change the value of the SDR content brightness slider in the windows settings, it will affect the image in the game window. Fortunately, I was able to force true HDR mode: I installed ReShade with the AutoHDR plugin.
I don't understand this. The game window is most definitely true and proper HDR both when fullscreen and windowed. Just tested it right now on my laptop to be sure. Launched the game in windowed mode and changed the value of the HDR content slider (on laptops it is the opposite of desktops with external displays, the slider refers to HDR content instead of SDR) and by moving the slider I could see the brightness in the game window changing, whcih means it was 100% HDR. No external utilities are required to achieve HDR signal.

Can I ask for the contents of your Latest.log please? Just want to confirm that the game recognizes and sets HDR properly when launching.
Simba
Poor
Poor
Posts: 6
Joined: Fri Aug 30, 2024 7:58 pm

Re: Oolite on HDR Displays

Post by Simba »

It might have something to do with my AMD graphics card - it has some issues with enabling Auto HDR in games running OpenGL. I think it might also affect native HDR.
another_commander wrote: Wed Sep 18, 2024 8:46 pm
Can I ask for the contents of your Latest.log please? Just want to confirm that the game recognizes and sets HDR properly when launching.
https://paste.ofcode.org/ZN5vEsmqjb6v3p6Gjcj4JT
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6627
Joined: Wed Feb 28, 2007 7:54 am

Re: Oolite on HDR Displays

Post by another_commander »

I was about to ask if you would be willing to install SpecialK and try to help finding out what's going on, but I see you were already on the SpecialK discord and even SK couldn't trigger HDR properly. Looking at this screenshot
Image
I can see that even though the presentation model is Hardware Composed: Independent Flip (which is good, this is needed for HDR presentation), the graphics API is reported as OpenGL when it really should be OpenGL-IK. OpenGL-IK means that SK has effectively created a bridge between OpenGL and DX11/12 and is using DirectX for the final presentation step on the screen, while the rest of the rendering is done normally via OpenGL. This is what is called a DXGI interop. The guys helping you out on Discord also mentioned interop quite a bit, that's basically what they are referring to.

Oolite is making use of an automatic DXGI driver interop on NVidia cards, activated whenever an application requests a render backbuffer which is implicitly HDR-only (there are other uses of this interop, like on Optimus laptops where this is used for communication between the discreet and the internal GPUs, but that's a story for another time ). Oolite requests a 16-bit RGBA float backbuffer when it starts up in HDR and that is basically an scRGB HDR setup. The NVidia driver sets up the app's window as HDR just by seeing this request.

Now, we know that AMD used to do exactly the same at least until about one year ago. Check out this SK discord discussion, where a very advanced AMD user, Lilium (you probably know them, they are the creator of most of the Reshade HDR analysis and black floor fix shaders), is running a quick analysis on Oolite and confirms that it's working fine in HDR. Scroll down a bit on the discussion and you will find the confirmation there. So we know that with the AMD drivers of that time it worked as we'd expect. Not sure if and when they changed that, but the fact that you can't get HDR neither with Oolite nor with SpecialK could be pointing to a driver bug or maybe a driver setting that's switched the wrong way.

After briefly looking around for information, I found this in the AMD reddit: https://www.reddit.com/r/Amd/comments/1 ... r_latency/ You basically need to turn on OpenGL triple buffering in the Adrenaline control panel so that the interop gets enabled. Have you tried that? Worth a shot I guess.

The alternative, if you are willing to go that far, would be to try with a driver from around November 2023.

I understand if you are happy with the Reshade AutoHDR you got working now and don't feel like messing around anymore with all this, but normally native HDR is a better experience than external inverse-tone mapping solutions like AutoHDR (be it Windows or Reshade).
Post Reply