No description
When smithay's DrmDevice::activate() returns an error (e.g. because drmSetMaster() failed during VT resume), resume_session() was only logging the error and then proceeding to resume DRM leases on a device that has no master. This leaves the compositor in a broken render state where every atomic page flip returns EPERM. Fix: continue to the next device on activate() failure. The device surface stays inactive and lease resume is deferred. On the next ActivateSession event (next VT switch to this TTY), resume_session() will be called again and activate() will succeed once the seat manager has granted DRM master. Reproducer: hybrid GPU system (Intel iGPU render + NVIDIA display), VT switch away from and back to COSMIC session. On return, drmSetMaster races the seat notification; activate() fails; without this fix the compositor floods journald with EPERM at 60fps. Fixes: pop-os#2331, pop-os#2302 |
||
|---|---|---|
| .github | ||
| cosmic-comp-config | ||
| data | ||
| debian | ||
| examples | ||
| resources | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| i18n.toml | ||
| LICENSE | ||
| Makefile | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||