No description
Find a file
v0up3r 9514b4945e fix(kms): don't panic when renderer creation fails after a GPU reset
When the DRM device is lost transiently, for example when the amdgpu driver
performs a GPU reset and recovers ("device wedged, but recovered through
reset"), acquiring a renderer in `SurfaceThreadState::redraw` fails. The three
`renderer`/`single_renderer` calls used `.unwrap()`, so the failure panicked
the surface's render thread. Because that panic unwinds across the EGL/GBM FFI
boundary it aborts the whole process (SIGABRT), dropping the session back to
the greeter and closing every running application.

`redraw` is already fallible and its caller logs the error and reschedules a
redraw, and the frame-submission path (`render_frame`/`queue_frame`) already
propagates errors the same way. Propagate the renderer-acquisition errors too,
so a transient device loss is retried on the next frame, once the device is
back, instead of taking down the compositor.

Relates to #649.

Assisted by an AI coding tool; I have reviewed and fully understand the change
and am able to maintain it and respond to review.
2026-07-28 15:28:34 +02:00
.github ci: Make sure we lint and test all features 2026-03-24 16:23:43 +01:00
cosmic-comp-config feat: allow naming pinned workspaces 2026-06-15 23:11:31 +02:00
data feat(tiling-exceptions): add exception for Thunderbird message compose dialog 2026-06-11 09:23:38 -06:00
debian Use automatic shared library dependency on libdisplay-info 2025-10-21 08:50:17 -06:00
examples examples: Fix new libcosmic build 2026-07-09 18:08:01 +02:00
resources i18n: translation updates from weblate 2026-07-23 18:49:35 +02:00
src fix(kms): don't panic when renderer creation fails after a GPU reset 2026-07-28 15:28:34 +02:00
.gitignore Rework source filtering. 2023-01-04 01:52:16 -08:00
build.rs Revert "fix: use SOURCE_GIT_HASH when building for pop ci" 2026-06-15 12:16:32 -06:00
Cargo.lock chore(render): use Affine2 where possible 2026-07-21 15:53:38 +02:00
Cargo.toml chore(render): use Affine2 where possible 2026-07-21 15:53:38 +02:00
flake.lock Update and fix flake.nix 2024-09-02 19:44:51 +02:00
flake.nix fix: add missing libdisplay-info library into flake.nix 2025-01-12 13:09:03 +01:00
i18n.toml i18n support 2023-07-06 00:04:34 +02:00
LICENSE Initial commit 2021-12-15 17:25:15 +01:00
Makefile fix: add git hash to .cargo/config when vendoring 2026-06-15 12:16:32 -06:00
rust-toolchain.toml chore: theme-v2 libcosmic update 2026-07-09 18:08:01 +02:00
rustfmt.toml chore: format for Rust 2024 2025-10-22 23:55:11 +02:00