* tty: Re-evaluate ignored nodes on udev add events
When a DRM device is removed and rescanned (e.g. during a dGPU
suspend/resume cycle), the kernel may assign it a new device ID.
Re-evaluating the config paths specifically on UdevEvent::Added
ensures that symlinks like /dev/dri/by-path/... are resolved to
their new underlying IDs, preventing niri from accidentally
opening an ignored hotplugged device.
This check is restricted to device additions to avoid unnecessary
filesystem I/O on the hot path during bursts of other udev events.
* fixes
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Output::from_resource() succeeds even after the global has been disabled
and removed from niri. Clients operating on these disabled outputs could
cause panics in several places because niri assumed the output existed.
* fix: no longer input locks when TTY is switched before full compositor
start
* reword
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
* backend/winit: DMA-BUF setup for Nvidia support
Creates a dmabuf global in the same manner as the tty backend. This
fixes applications failing to launch on Nvidia when using the winit
backend.
This code is adapted from Smithay's Anvil compositor.
See smithay/anvil/src/winit.rs
* fixes
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
clean up foreign toplevel destruction: don't `retain` to remove one item
document why we have duplicate destruction logic in foreign toplevel
messy to have two of the same comment but like how else do i make that
information readily available to both
Co-authored-by: HigherOrderLogic <73709188+HigherOrderLogic@users.noreply.github.com>
Height presets aren't frequently needed in my experience, but switching
preset width back is very useful on 21:9 and wider monitors where you
have many more presets.
The damage tracker stores framebuffer effect cache, so we want anything
that renders repeatedly to render through a reused damage tracker. This
way, the cache persists and is reused across renders.
This will be important for the non-xray background effects.