minecraft-wayland
minecraft-wayland copied to clipboard
Fullscreen mode locks fps to 96
When using this version of GLFW, vanilla 1.17 (as well as fabric 1.17 with sodium etc) my game limits itself to 96 fps in fullscreen mode, (my refresh rate is 144hz).
If I take it out of fullscreen, it limits to 144hz (my refresh rate).
If i go back to XWayland mode, my fps is unlocked correctly.
Not a big deal if I play in windowed and just play at 144 locked, but useful to report.
I can't seem to reproduce on Sway with 1.17 + a bunch of Fabric mods. Both Sway's own full screen functionality, and Sodium's full screen checkbox seem to work and go up to the FPS limit I set in game for me. Could be something about the Wayland compositor you're using.
I upgraded the base GLFW version to 3.3.5 which is probably the only thing I had different when trying to reproduce. Try updating the package if you're using Arch. It might or might not fix your issue, I don't exactly know
Can confirm limit of 96 on full-screen, regardless of version (tested only 1.17-1.18)
Monitor: 144Hz GPU: nvidia 495.46-1 WM: Sway
packages: glfw-wayland-minecraft 3.3.6-2 (AUR) openjdk 17.0.1 OpenJDK Runtime Environment (build 17.0.1+12) egl-wayland 2:1.1.9+r3+g582b2d3-1 wayland 1.20.0-1 wayland-protocols 1.24-1 wlroots 0.14.1-2
Tried: Playing around with launching for_window floating/tilled and then enabling full-screen Launching with gamemoderun-feral Limit fps to 250 / no limit Vsync on/off
Something assumes monitor's hz is 96 instead of 144 and enforces vsync regardless?
Although, behaviour is odd; on fullscreen fps limits to 96, but if you are in the settings page (Esc) fps limit changes to 144. (once you hit Esc again to get out of the menu to main gameplay fps gradually goes down to 96 limit)
Edit: Forgot to mention, usage of sodium (1.18 alpha) does not solve this.
Update on 96 fps limit on full-screen:
- Opening chat causes fps to shoot up to 144 (Hz of monitor, v sync?). Upon closing fps goes back down to 96.
- env flags __GL_SYNC_TO_VBLANK=0 / GLFW_REFRESH_RATE do not fix 96 cap limit
Possibly related information: https://github.com/glfw/glfw/issues/1597 https://github.com/glfw/glfw/issues/948 https://stackoverflow.com/a/50427847