I don’t fully understand the bug, but when doing window-changing operations on Vulkan, you can sometimes get inconsistent performance – the same view at the same resolution and same graphical settings can render at 30, 60 or 160 fps. Enabling/disabling fullscreen via window manager (possible on Linux/KDE), in Minecraft, or resizing or maximizing the window or re-joining a world can change what performance you get. The switch in performance sometimes coincides with a com.mojang.blaze3d.systems.SurfaceException in the log.
Reproduction steps that work for me:
Disable fullscreen and exclusive fullscreen, enable Vulkan
Open Minecraft
Join a world or server
Make window fullscreen via window manager (on KDE, right click on title bar -> More actions -> Fullscreen)
Example performance: 160 fps
Press F11 to enable fullscreen in Minecraft
This doesn't change the size and position of the "window"
Example performance: 30 fps
Press F11 to disable fullscreen in Minecraft
This makes a window that takes up almost the entire screen
Example performance: 30 fps
Resize the window slightly
Example performance: 160 fps (or remains 30 fps sometimes, or goes to 60 fps)
Make window fullscreen via window manager
Example performance: 30 fps (or goes to 160 fps sometimes, or goes to 60 fps)
Results of steps 6 and 7 and highly inconsistent, I think it depends if you alt-tab or focus other windows in-between. Exiting and re-joining a world sometimes fixes the problem (goes to 160 fps), but sometimes only partially fixes it (30 fps -> 60 fps). When messing around, I also got to a state where changing fullscreen with F11 didn't affect performance, but going into Minecraft settings and toggling Fullscreen there would (eg. 30 fps when YES, 160 fps when NO, or vice-versa, can't remember).
There is also this peculiar log when resizing the window (it can also sometimes happen when toggling fullscreen):
[01:14:53] [Render thread/WARN]: Couldn't configure surface to Configuration[width=1920, height=1076, vsync=false]: com.mojang.blaze3d.systems.SurfaceException: Requested swapchain extent (1920 x 1076) not within allowed extent: min(1905 x 1072) max(1905 x 1072)
The problem only occurs on Vulkan, OpenGL is unaffected, always having consistently good performance.
Environment
Fedora 43, KDE Plasma. Vulkan, using drivers: 1.3.328 radv Mesa 25.3.6. AMD Radeon R7 370 Series (RADV PITCAIRN) (AMD).
Attachments
Comments 3
I can confirm the Vulkan behavior in fullscreen is quite different from the behavior of OpenGL, I don’t have the same issues, but I do have significantly lower FPS when in fullscreen with Vulkan (except when something else like a desktop notification renders on top of the fullscreen window), regardless if it is exclusive fullscreen or not. I can’t see any difference between window manager fullscreen mode and just pressing F11.
Dunno if this is just a hidden KWin/KDE/Wayland/whatever feature or an actual bug.
Side note: Monitor only has 60Hz
Thank you for helping us improve Minecraft! We saved your files: