ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
14.97k stars 2.21k forks source link

osu! messed up gamma/colour in Metal when on calibrated external monitor #27372

Open Ysabelle12 opened 6 months ago

Ysabelle12 commented 6 months ago

Type

Cosmetic

Bug description

As shown below, using an external monitor that has icc calibrated DCI-P3 has colour and gamma problems, this doesn't happen in OpenGL as shown below: The top two image is OpenGL while bottom half is Metal

It seems as the color management is disabled in Metal therefore messing up the colours and gamma to be oversaturated and very low brightness

You might ask, why I didn't take screenshot? that's because the screenshot would show the game as normal so I took a picture.

Now why would display calibration matter and relate to osu? One answer, storyboarding, a bad gamma, inaccurate gamma, bad calibration monitor could affect how it looks on normal computer. It's not just for osu, it's for professional work too like doing illustrator, photoshop, image editing, video editing. etc.

Why don't I just stick to OpenGL? actually I've noticed there's a noticeable delay on OpenGL compared to Metal even though I'm getting slightly more fps on OpenGL. It's not about what you can see, it's about what you can feel. OpenGL has a slight delay when pressing keys to hearing the sound probably some overhead or something. But with metal, it's almost as i was actually playing on an instrument like it reacts in real time.

Monitor that i'm using is 360hz OLED 1440P. In case you need the icc profile. I'll provide it upon request.

See screenshot below:

Screenshots or videos

Top half: OpenGL (Perfectly normal and calibrated monitor to sRGB) these are all exposure locked and white balance locked Bottom half: Metal image

Heres a larger view of the following image DSCF4850 DSCF4848 DSCF4851 DSCF4849

Other programs aren't affected by this. icc profile details: image

Version

2024.221.0-lazer

Logs

Metal: compressed-logs metal.zip OpenGL: compressed-logs opengl.zip

Ysabelle12 commented 6 months ago

It should always tag osu as sRGB if there's no HDR available ^

peppy commented 5 months ago

To confirm, you're seeing incorrect mapping of both textures and solid colours? Could you compare using a beatmap background at the main menu or during gameplay (with 0% dim applied – important) so we can isolate to texture display