-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
Failure to create swap chain since swappy additions (Linux Wayland). #98779
Comments
For the record, I can reproduce this on Linux, but only with the Wayland display driver. In my case it even segfaults (started with
|
Following up on @DarioSamo's question in duplicate #98811 (comment):
I confirm that reverting this PR fixes the issue for me, as already pointed out by @tdaven and which Dario suggested might be the case in #96439 (comment). CC @darksylinc and @Riteo as this only seems to affect the Wayland DisplayDriver. I also tested #98780 and like @scgm0 confirm that this fixes the bug. |
FTR, from a quick glance of the VK spec it looks like Wayland has indeed a special case:
So that explains why Wayland is the only one crashing I think. |
Wayland in particular sets surface_capabilities.currentExtent.width to the special value 0xFFFFFFFF, which is valid per spec. Fixes godotengine#98779 It may also fix misc issues when resizing on all platforms. Superseedes PR godotengine#98780 , thanks to user tdaven for the original patch. PR godotengine#98780 would break Android support as it did not account that width and height might need to be swapped. Replaced manual swap by Godot's SWAP(), which indicates intention much easier.
Wayland in particular sets surface_capabilities.currentExtent.width to the special value 0xFFFFFFFF, which is valid per spec. Fixes godotengine#98779 It may also fix misc issues when resizing on all platforms. Superseedes PR godotengine#98780 , thanks to user tdaven for the original patch. PR godotengine#98780 would break Android support as it did not account that width and height might need to be swapped. Replaced manual swap by Godot's SWAP(), which indicates intention much easier.
It seems to work well! Just update #98852 when you get to test on Android and it should be ready to go. |
Tested versions
Introduced in:
748f407
Reproduced on current master:
1bffd6c (m
System information
Godot v4.4.dev (1bffd6c) - Fedora Linux 41 (Workstation Edition) on Wayland - Wayland display driver, Single-window, 2 monitors - Vulkan (Forward+) - dedicated AMD Radeon RX 6700 XT (RADV NAVI22) - 13th Gen Intel(R) Core(TM) i7-13700K (24 threads)
Issue description
It appears the wrong extent is used which in this case has invalid sizes. Will open PR.
Steps to reproduce
Just create a new project using Forward+ renderer.
Minimal reproduction project (MRP)
N/A
The text was updated successfully, but these errors were encountered: