-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Vulkan swapchain extent and buffer count issues, Implement Vulkan mailbox mode option #787
Fix Vulkan swapchain extent and buffer count issues, Implement Vulkan mailbox mode option #787
Conversation
… to Vulkan surfaceCaps
…for all present modes (cherry picked from commit 268c057)
…2 window handling & error logic
Yup, it definitely fixes #783. 🎉 |
Thanks for testing #783 - good news. Let's wait for results from the others. |
Works here without issues in both Wayland and XWayland. Many thanks! |
Thanks @rg3 for testing #765. Now let's wait for @RobertBeckebans to test his issue re swap chain extents on Kubuntu. As an aside, does |
eMailbox mode works, eyeballing the frame counter with For context, normally I use relatively recent GPUs, so in these old games I'm always above 60 FPS unless the port is doing something very demanding that can't be disabled (I use a 1440p 60Hz monitor). Due to this, I prefer to enable vsync so I experience no tearing and my GPU runs quieter and cooler. Doom 3 BFG is not a fast-paced shooter in any case. That said, RADV users on Wayland have either FIFO or Mailbox available, so it's good to make both options available in some form through the menu instead of forcing them to use FIFO. |
Thanks for the feedback. The main value in using |
The |
I still have to reinstall Kubuntu or another distro. Kubuntu destroyed itself again after an apt dist-upgrade. |
As a side note, Kubuntu isn't exactly the greatest KDE distro in town. The KDE developers themselves tend to frown upon it. I'd recommend Fedora with the KDE spin 🙂 |
While I'm not the reporter in issue #740, I did hit the problem while trying to run the game on Wayland in fullscreen mode under Gnome/Wayland (not in borderless fullscreen, for some reason). I can't reproduce it anymore with this PR. |
Thanks @RobertBeckebans, no worries. I have a few PRs stacked up but plan to slow down now for the summer. I will be interested in your feedback, especially re the possible latency improvements. |
Hi Robert, thanks for merging. Did it solve #740 for your setup? I know you were experiencing issues on linux and I am hoping this finally fixes it. |
This PR fixes #765 and #783 and hopefully addresses #740.
It also implements
eMailbox
presentation mode for Vulkan as an optional alternative toeImmediate
mode, based on the setting of a new r_preferFastSync cvar (default on = true). This setting will change the meaning of Vulkan VSync Off in the GUI to mean "run full out without tearing" (Fast Sync) vs. "run full out with tearing". VulkaneMailbox
mode achieves this by dropping frames to line up with vsync. If supported on their platform, users will have an option for fast frame rates and low latency with a choice of tearing or skipping. This is really only valuable if your graphics card is fast and can exceed vsync rates by a factor of 2-3X. Note if the VulkaneMailbox
present mode is not available on a platform, the VSync Off GUI selection falls back to meaneImmediate
(i.e. status quo with tearing).Finally, this PR aligns the window type, size handling, and error reporting logic between SDL and Windows. Hopefully this will make it easier to maintain going forward.
I have tested these changes on all platforms: Windows 10, linux Manjaro, and macOS Monterey. In addition, I have tried the updated window resizing / Vulkan swapchain extent logic with tiling window managers on linux (xfce tiling settings) and macOS (magnet tiling manager). Hopefully this may solve the above issues.
I would appreciate testing and validation of this PR against the reported issues. If your problems are not solved, please report against your original issue and hopefully I can address it. Thanks.