Novum / vkQuake

Vulkan Quake port based on QuakeSpasm
GNU General Public License v2.0
1.72k stars 214 forks source link

vid_desktopfullscreen "1" is pixelated on macOS #684

Open Perlence opened 1 year ago

Perlence commented 1 year ago

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:

vid_borderless "0"
vid_desktopfullscreen "1"
vid_fullscreen "1"
vid_height "1600"
vid_width "2560"

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 the SDL_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

Novum commented 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.