Reconfigure wgpu surface on SurfaceError Lost or Outdated #3067
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.
While developing an app with
icedwith a local dev environment usingNiri, I noticed that until I resized the rendered iced app that nothing in iced apps was interactable. This applied to my app but also was replicated in the demostourandbezier_tool(and likely all others).I tracked down the issue to us not handling
wgpusurface errorswgpu::SurfaceError::Outdatedandwgpu::SurfaceError::Lost.See the following Niri issue for some reports: YaLTeR/niri#1910
This change reconfigures the wgpu surface when this error is received. I wasn't sure what level to do this change, in wgpu's compositor.rs, or in winit/src/lib.rs
run_instance. I guess that depends on whether this behavior should be applied to backends other than wgpu. Please advise.