Fixed crash under Wayland when using a scaling factor. #192
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When running the example on a Wayland system using a scaling factor of 3, the example crashes since the size of the initial buffer created by GLFW is not divisible by the scaling factor. This violates the Wayland protocol, which results in a crash when trying to present to the
wl_surface
:Allowing for a resize of the swapchain images before presenting fixes this issue.
I am admittedly not entirely sure why this fixes the issue, since when logging the resizes, there is at least one resize to a buffer size that is invalid, without causing a crash:
But I assume that this is related to when GLFW calls
wl_surface::set_buffer_scale
to set the scale of the created surface andwl_surface::commit
to apply this change. See the Wayland spec for wl_surface.