mojira.dev
MC-307344

Inconsistent performance when resizing the game window with the Vulkan rendering backend

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:

  1. Disable fullscreen and exclusive fullscreen, enable Vulkan

  2. Open Minecraft

  3. Join a world or server

  4. Make window fullscreen via window manager (on KDE, right click on title bar -> More actions -> Fullscreen)

    • Example performance: 160 fps

  5. Press F11 to enable fullscreen in Minecraft

    • This doesn't change the size and position of the "window"

    • Example performance: 30 fps

  6. Press F11 to disable fullscreen in Minecraft

    • This makes a window that takes up almost the entire screen

    • Example performance: 30 fps

  7. Resize the window slightly

    • Example performance: 160 fps (or remains 30 fps sometimes, or goes to 60 fps)

  8. 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

Thank you for helping us improve Minecraft! We saved your files:

[media]

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

I am facing a very similar, or perhaps the exact same bug. As you mentioned, it’s a little hard to understand. I’m on Arch Linux using KDE Plasma with Wayland. My GPU is a GTX 1070. The whole system is up to date as of writing.

Susko3

(Unassigned)

Community Consensus

Platform G

Normal

Rendering

26.2 Snapshot 1

Retrieved