Commit graph

49 commits

Author SHA1 Message Date
Michael Aaron Murphy
2acf6f9f14 chore: apply rustfmt config with module import granulatiry 2026-04-29 21:41:03 +02:00
Ashley Wulber
240bb058a9 chore: update libcosmic after reexports were removed 2026-04-10 11:32:40 -06:00
Ashley Wulber
d4becdd6c5 chore: updates after iced rebase 2026-03-17 16:06:09 -04:00
Ian Douglas Scott
45e01aa6e6 Add log::info!/log::error! for Vulkan issues 2026-03-13 19:43:54 +01:00
Ian Douglas Scott
a990c89758 backend/wayland/vulkan: Fix use of Vulkan (correctly this time)
It seems https://github.com/pop-os/cosmic-workspaces-epoch/pull/280 was
just wrong. I didn't test it correctly, and it actually prevented
crashes simply because the Vulkan instance failed to create.

This failed because it's a device extension, not an instance extension
(and we already check for the device extension).

The *real* issue seems to be simply the fact this was using the
`Instance` after dropping the `Entry`. Which is easy enough to address.
2026-03-13 19:43:54 +01:00
Vukašin Vojinović
5fbbf4ba37 chore: update dependencies 2026-02-20 23:54:21 +01:00
Vukašin Vojinović
e45d2ea694 chore: clippy 2026-02-20 23:54:21 +01:00
Ian Douglas Scott
d31c6dbccb backend/wayland/vulkan: Enable VK_EXT_physical_device_drm extension
Fixes a segfault when run with `--no-default-features` to disable
`wgpu`.
2026-02-12 12:01:05 -08:00
Ian Douglas Scott
cf2bb0205c screencopy: Use info! logging for FailureReason::Stopped
This is an expected case, not an error.
2025-12-08 13:12:02 -08:00
Ian Douglas Scott
9968b0e61f workaround: Force shm on Meteor/Arrow/Lunar Lake 2025-09-22 14:45:40 -07:00
Ian Douglas Scott
85436fa9d6 screencopy: Accumulate buffer damage 2025-09-17 14:30:24 -07:00
Ian Douglas Scott
7670bfb9ff Move swapchain size into a const 2025-09-17 14:30:24 -07:00
Ian Douglas Scott
5193756e4d Update cosmic-client-toolkit 2025-09-17 10:39:50 -07:00
Ian Douglas Scott
3aad95d463 screencopy: Capture with full damage
Should accumulate damage, but this will behave correctly, if not
optimally.

Not yet required with cosmic-comp implementation.
2025-09-16 09:34:56 -07:00
Ian Douglas Scott
7933eef149 screencopy: re-allocate buffers on BufferConstraints error
Doesn't always seem to work immediately. Does compositor need change to
not wait for damage to re-capture after constraint error?
2025-09-16 09:34:56 -07:00
Ian Douglas Scott
a4b1e73a8b screencopy: Only start capture in init_done if not capturing already 2025-09-16 09:34:56 -07:00
Vukašin Vojinović
a939335b9e chore: Rust 2024 and update dependencies 2025-09-11 14:03:30 -07:00
Ian Douglas Scott
0375f28bb2 Fix a few build warnings 2025-08-22 13:11:32 -07:00
Ian Douglas Scott
3519d22dbd Fix building with mock-backend 2025-06-04 10:10:07 -07:00
Ian Douglas Scott
a863e8f7d6 Helper methods on CatpureFilter for matching
Could be prettier, but want some way to check this in multiple places.
2025-06-04 10:10:07 -07:00
Ian Douglas Scott
8a9b9ea614 Use modifiers from image-copy dmabuf_format, ignoring feedback
Default feedback only include primary GPU, so the previous version of
this prevents the use of explicit modifiers from the non-default GPU.

https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/268
or something similar will hopefully improve this at some point...

But we can presumably assume `dmabuf_format` will only include formats
valid to create a dmabuf `wl_buffer` from.
2025-05-19 13:11:30 -07:00
Ian Douglas Scott
509e572e8e Remove currently unused node field of Buffer 2025-05-19 13:11:30 -07:00
Ian Douglas Scott
15e73830fa Use gbm device from image copy protocol instead of default node
This fixes `BufferConstraints` errors for workspace capture on Nvidia
outputs of a Intel+Nvidia system. (That didn't happen on Amd+Nvidia;
maybe a linear stride alignment issue?)
2025-05-19 13:11:30 -07:00
Ian Douglas Scott
3c9a923f41 Add support for workspace pinning and dragging
Workspaces can be pinned, and dragged to reorder or move to a different
output.

These features are enabled only if cosmic-workspace-v2 advertises the
necessary protocol version and capabilities.

The layout of the labels and pin buttons could be tweaked a bit still.
Some hacks and workarounds are needed to get drag and drop working as
desired. Something iced and libcosmic could potentially improve in the
future. But this now seems fairly robust.
2025-04-22 11:43:30 -07:00
Ian Douglas Scott
94ec10686e backend/wayland: Support running without toplevel manager protocol 2025-04-21 14:21:57 -07:00
Ian Douglas Scott
77ff4e62e9 Pass toplevel_capabilities from backend to frontend 2025-04-21 14:02:36 -07:00
Ian Douglas Scott
fc784af1b9 Fix building with mock-backend 2025-04-21 13:49:49 -07:00
Ian Douglas Scott
655621fde0 Fix clippy lints 2025-04-21 11:32:07 -07:00
Ian Douglas Scott
74270a2deb Use ThreadExecutor instead of calloop executor
I thought the calloop executor had been fixed, but it still seems to
have issues that were preventing capture of continuous frames from
working consistently.

Fixes https://github.com/pop-os/cosmic-workspaces-epoch/issues/160.
2025-04-15 12:34:37 -07:00
Ian Douglas Scott
6b6bf454db Update to workspace v2, based on ext-workspace
Requires https://github.com/pop-os/cosmic-protocols/pull/51,
https://github.com/pop-os/cosmic-comp/pull/1225.

The new protocol version is a hard requirement, and this will panic
without it.
2025-03-07 22:24:36 -08:00
Ian Douglas Scott
4acd62abb0 Update for toplevel-info cctk changes 2025-02-13 11:46:45 -08:00
Ian Douglas Scott
e283cfe456 Fix build with mock-backend feature 2025-02-10 14:05:31 -08:00
Ian Douglas Scott
a977667ac5 Use updated screencopy abstraction
Requires https://github.com/pop-os/cosmic-protocols/pull/46.
2025-02-04 13:58:20 -08:00
Ian Douglas Scott
207e7b2ff3 Fix building mock backend 2025-01-24 14:33:04 -08:00
Ian Douglas Scott
b259655839 Address some warnings 2025-01-16 10:19:58 -08:00
Ian Douglas Scott
392adda651 Run cargo clippy --fix 2025-01-15 11:53:59 -08:00
Ian Douglas Scott
764b4ae5f8 Apply screencopy transform to subsurfaces
Fixes https://github.com/pop-os/cosmic-workspaces-epoch/issues/17.
2025-01-15 10:18:50 -08:00
Ian Douglas Scott
e1895ea3d7 Update dependencies 2025-01-13 10:42:44 -08:00
Ian Douglas Scott
b70828e23f Update iced/libcosmic 2025-01-13 10:26:45 -08:00
Ian Douglas Scott
81ea2f20d4 Fix building with mock-backend and no-subsurfaces 2024-12-16 17:00:09 -08:00
Ian Douglas Scott
70d6c415a1 Don't panic if dmabuf global isn't present
Fixes support for cosmic-workspaces with shm capture with no hardware
accelerated graphics present.
2024-08-07 15:01:26 -07:00
Ian Douglas Scott
2de366939b Correctly restrict modifiers in screencopy
Fixes issues for workspace capture in multi-gpu systems. Though I wonder
if the modifiers requested here match the render device...
2024-07-18 13:28:56 -07:00
Ian Douglas Scott
07f7b8f5bd Fix toplevel activation
`new_seat()` is only called when a seat is added after creation of
`SeatState`.
2024-05-01 10:12:00 -07:00
Ian Douglas Scott
bf6acc3f5f Destroy image_source after using it 2024-04-26 15:38:20 -07:00
Ian Douglas Scott
7997d58ce7 Fix clippy lints 2024-04-24 13:51:20 -07:00
Ian Douglas Scott
3dd5a28e28 backend/mock: fill buffer more efficiently 2024-04-24 13:04:23 -07:00
Ian Douglas Scott
ee1d54a12b Format imports 2024-04-24 13:00:40 -07:00
Ian Douglas Scott
ef12588615 mock: Use Format::Argb8888
Allows running on KDE, to compare how another compositor implementation.
2024-04-23 17:25:15 -07:00
Ian Douglas Scott
c75a48535a Add a mock backend for testing (including on other compositors)
Should help determine which issues are cosmic-comp bugs.
2024-04-23 13:44:59 -07:00