Ian Douglas Scott
Ian Douglas Scott
Still working through issues to use this everywhere. The goal is to prevent things like https://github.com/Smithay/smithay/pull/1748. In particular, `GlesFrame` needs to be updated to hold a `CurrentGlesContext`. Things like `blit_to`/`bllit_from`...
https://docs.rs/smithay/0.6.0/smithay/backend/renderer/trait.Renderer.html#method.cleanup_texture_cache notes that this is done implicitly on finishing a `Frame`. But if a GPU is used to import dmabufs, but not for rendering, things like `cpu_copy()` allocate resources, but...
`has_modifier()` is used in two places. One has a special case for linear modifiers (which could handled specially regardless of what `has_modifier()` returns. The other use doesn't handle linear in...
This issue occurs with XWayland clients that use keyboard grabs, like `virtualbox` (https://github.com/pop-os/cosmic-comp/issues/449). Or a minimal X client like this one: ```rust use x11rb::{ connection::Connection, protocol::{Event, xproto::*}, }; use xkeysym::Keysym;...
This fixes https://github.com/Smithay/smithay/issues/1422. This can be tested by adding `Drop` impls that print to those two types, or using tools that detect leaks. It's probably worth examining more to see...
This can be tested in Anvil using `Super+Shift+R` to rotate the screen, then dragging around a terminal. Maybe `FB_DAMAGE_CLIPS` handling varies by GPU, but I see clearly incorrect results. The...
`GlesRenderer::import_shm_buffer` needs synchronization for shared EGL contexts in different threads
@Drakulix and I noticed some apparent issues here debugging https://github.com/pop-os/cosmic-comp/issues/1078. I'm not sure they fully explain what's going on there, but it does seem like something that needs to be...
For a nested compositor, it's useful to be able to pass through the modifiers state from the parent compositor unchanged. `set_mask` provides a way to do that. Meanwhile `set_update_key()` provides...
`update_from_render_element_states` relies on `strong_count` to determine if `Output` is still valid
https://github.com/Smithay/smithay/blob/28417d22202a10e24de53b8994f5044aa042dcc5/src/backend/renderer/element/mod.rs#L194-L197 `WeakOutput::is_alive()` simply checks if the strong count is `0`. In `cosmic-comp` I seem to be seeing an issue with it. Perhaps a strong reference is being held somewhere it...
Supported on Linux since 6.5. I see `socket_peercred` is only provided on Linux, while OpenBSD (https://man.openbsd.org/getsockopt.2) has some version of `SO_PEERCRED`, and FreeBSD (https://man.freebsd.org/cgi/man.cgi?unix(4)) has a `LOCAL_PEERCRED` (libwayland for instance...