Open Perlence opened 1 year ago
High DPI stuff is a nightmare and I don't just want to set that flag as it can have unknown side effects on all sorts of different configurations and I don't have a QA department. This might need to wait until I migrate to SDL3 which handles this better.
Ping @Perlence Sorry for the spam, is this still a thing on master
or 1.31.2
with newer SDL2 and MoltenVK ?
Hey @vsonnier, no worries! Unfortunately, I still have the issue on d5f8694e7bbdfeb0d61e3333a2403a182827371d. I made sure to remove my patch before building the latest version.
I have some thoughts on this. I assume that when vid_desktopfullscreen
is "1"
, vkQuake asks the OS what the resolution is. I think the problem is what MacOS is telling it, because it's lying! 😁
In MacOS, you can set the display resolution:
However, changing the setting does not change the video resolution. It's always the same, determined by the display. In my case, it's 2560x1600:
So what does the resolution setting above do? It changes the scaling of the UI.
Given all that, here's what I get in vkQuake when vid_desktopfullscreen
is "1"
:
]vid_describecurrentmode
1440x900x32 60Hz fullscreen
MacOS tells vkQuake the "virtual" resolution, 1440x900. I think it should tell it the real one, 2560x1600.
Describe the bug
The
vid_desktopfullscreen "1"
setting produces pixelated, low DPI output on macOS, see the original vid_desktopfullscreen "1" screenshot.To reproduce
Set the following settings:
Expected behavior
Sharp rendering, identical to the graphics we get when
vid_desktopfullscreen
is"0"
, see the original vid_desktopfullscreen "0" screenshot.Additional context
I use
vid_desktopfullscreen "1"
so I can easily Cmd-Tab between applications. Otherwise I have to press Alt-Enter to exit full screen and then switch between apps.I've tried adding
SDL_WINDOW_ALLOW_HIGHDPI
to theSDL_CreateWindow
call and it fixed the issue for me, see the allow_hidpi vid_desktopfullscreen "1" screenshot.https://github.com/Novum/vkQuake/blob/d1b931cd362e8f48f2488c4854cfa7d96d8b33a1/Quake/gl_vidsdl.c#L414
However, doing
vid_restart
in the game afterwards freezes the video output. The game is going, but it's a still image.Screenshots
Desktop