Skip to content
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

Surface Error Fault Tolerance #7020

Open
eblack-leaf opened this issue Jan 29, 2025 · 0 comments
Open

Surface Error Fault Tolerance #7020

eblack-leaf opened this issue Jan 29, 2025 · 0 comments
Labels
area: correctness We're behaving incorrectly type: bug Something isn't working

Comments

@eblack-leaf
Copy link

Description
Program crashes after suspending program due to panic in Surface::get_current_texture.

Repro steps
git clone https://github.com/eblack-leaf/foliage.git
cd foliage
cargo run application

then suspend and reawake.

Expected vs observed behavior
I expect the Surface::get_current_texture to return Error using

if let Ok(surface_texture) = surface.get_current_texture() {
// use to render
} else {
// skip render
}

to skip rendering when suspended because no device can be reached.
It crashes in the call to get_current_texture instead of letting the
error branch run to avoid rendering.

Extra materials
Error Output after waking from suspend.
`
thread 'main' panicked at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:3468:38:
wgpu error: Validation Error

Caused by:
In Surface::get_current_texture_view
Parent device is lost

stack backtrace:
0: rust_begin_unwind
at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:665:5
1: core::panicking::panic_fmt
at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/core/src/panicking.rs:76:14
2: wgpu::backend::wgpu_core::default_error_handler
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:653:5
3: wgpu::backend::wgpu_core::ErrorSinkRaw::handle_error
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:637:21
4: wgpu::backend::wgpu_core::ContextWgpuCore::handle_error_inner
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:298:9
5: wgpu::backend::wgpu_core::ContextWgpuCore::handle_error_nolabel
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:321:9
6: <wgpu::backend::wgpu_core::CoreSurface as wgpu::dispatch::SurfaceInterface>::get_current_texture
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/backend/wgpu_core.rs:3468:25
7: wgpu::api::surface::Surface::get_current_texture
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-24.0.1/src/api/surface.rs:97:41
8: foliage_proper::ginkgo::Ginkgo::surface_texture
at ./foliage_proper/src/ginkgo/mod.rs:304:15
9: foliage_proper::ash::Ash::render
at ./foliage_proper/src/ash/mod.rs:179:40
10: foliage_proper::photosynthesis::::process_event
at ./foliage_proper/src/photosynthesis.rs:259:21
11: foliage_proper::photosynthesis::::window_event
at ./foliage_proper/src/photosynthesis.rs:53:9
12: winit::event_loop::dispatch_event_for_app
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/event_loop.rs:642:52
13: winit::event_loop::EventLoop::run_app::{{closure}}
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/event_loop.rs:265:49
14: core::ops::function::impls::<impl core::ops::function::FnMut for &mut F>::call_mut
at /home/salt/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:294:13
15: core::ops::function::impls::<impl core::ops::function::FnMut for &mut F>::call_mut
at /home/salt/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:294:13
16: winit::platform_impl::linux::x11::EventLoop::single_iteration
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/x11/mod.rs:563:17
17: winit::platform_impl::linux::x11::EventLoop::poll_events_with_timeout
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/x11/mod.rs:504:9
18: winit::platform_impl::linux::x11::EventLoop::pump_events
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/x11/mod.rs:424:13
19: winit::platform_impl::linux::x11::EventLoop::run_on_demand
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/x11/mod.rs:385:19
20: winit::platform_impl::linux::EventLoop::run_on_demand
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/mod.rs:819:56
21: winit::platform_impl::linux::EventLoop::run
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/platform_impl/linux/mod.rs:812:9
22: winit::event_loop::EventLoop::run_app
at /home/salt/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.8/src/event_loop.rs:265:9
23: foliage_proper::foliage::Foliage::photosynthesize
at ./foliage_proper/src/foliage.rs:147:17
24: application::main
at ./application/src/main.rs:63:5
25: core::ops::function::FnOnce::call_once
at /home/salt/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

Process finished with exit code 101

`

Platform
Ubuntu 22 LTS X11 Vulkan NVIDIA GeForce RTX 2070 Nvidia Driver 550.120 wgpu-24.0.1 winit-0.30.8

@cwfitzgerald cwfitzgerald added type: bug Something isn't working area: correctness We're behaving incorrectly labels Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: correctness We're behaving incorrectly type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants