Ian Douglas Scott
a3714b036e
Improve mirroring size/scale comparison
...
To determine if `mirroring_state` is needed, we want to compare the
untransformed dimensions of the source output to the target outputs
mode. The fact the mode comparision previously compared refresh rate
(since it compared the whole `Mode`) seems unintended.
We also re-create the `MirroringState` when the source output
dimensions changes.
2025-02-04 20:01:24 +01:00
Ian Douglas Scott
9963887ac5
Fix mirroring with scale on target output
...
The actual render will pass a scale other than 1.0 here, so this needs
to do the same.
2025-02-04 20:01:24 +01:00
Ian Douglas Scott
3f5c64f50f
Use HashMap entry API in a cleaner way
...
Careful use of the right `VacantEntry` and `OccupiedEntry` methods makes
this possible without hacks or lifetime errors.
2025-02-04 20:01:24 +01:00
Ian Douglas Scott
32f9ff3cac
Use untransformed texture in MirroringState::new_with_renderer
...
Apply inverse of output transform to mode to get render size, and apply
no transform during rendering. The transform of the output being
mirrored from shouldn't affect the final render.
Fixes issues when source output for mirroring has a transform, and also
fixes issues in https://github.com/pop-os/cosmic-comp/pull/1058
when this code is used for postprocessing, where this resulted in the
same transform being applied twice.
2025-02-04 20:01:24 +01:00
Victoria Brekenfeld
605bb63a4d
kms: Don't try to render inactive outputs
2025-01-21 13:35:53 +01:00
Ian Douglas Scott
6c7ec54bdb
Add a COSMIC_DISABLE_SYNCOBJ env var to disable syncobj protocol
...
If any issues with the syncobj protocol come up, or any issues we
suspect may be related to it, an env var may be helpful.
2025-01-16 19:43:51 +01:00
Ian Douglas Scott
9dddead15d
Add linux-drm-syncobj-v1 protocol
2025-01-15 20:20:53 +01:00
Victoria Brekenfeld
addcbc5039
kms: Don't try to restore modifiers, if we don't have any surfaces
2025-01-07 17:48:14 +01:00
Ian Douglas Scott
b685512127
Migrate away from Rectangle::from_loc_and_size
...
Deprecated in `smithay` by https://github.com/Smithay/smithay/pull/1621 .
2025-01-07 12:50:35 +01:00
Victoria Brekenfeld
870e5be2a6
kms: Use scaled sizes for placing new outputs
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
bebd7c5c40
kms: Cleanup now that output_elements won't panic for uninitialized outputs
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
db13eea91c
shell: Allow active workspace to be None
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
3926aee5b6
debug: Fixup feature compilation
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
6be5009b37
kms: Allow diverging primary plane formats under certain conditions
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
b5cd62fd7a
kms: skip cursor updates for fullscreen content above the minimum refresh rate
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
adcb81bbe0
deps: Switch from edid-rs to libdisplay-info
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
546966bf15
drm_lease: Disable overlay planes when active
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
8b87d6524e
kms: Use new DrmOutput api
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
f12f4db0e1
chore: Update smithay
2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
9b4127555e
kms/surface: Fix racy output disable
2024-12-12 14:29:50 +01:00
Victoria Brekenfeld
81b9fb179b
output-configuration: Support cosmic-ext v2
2024-11-27 09:37:01 +01:00
Victoria Brekenfeld
80965a61b9
kms: Adaptive VRR support
2024-11-27 09:37:01 +01:00
Victoria Brekenfeld
d72bf54628
deps: Update smithay
2024-11-27 09:37:01 +01:00
Victoria Brekenfeld
dbb51e827d
kms: Fix enabling outputs
2024-11-27 09:37:01 +01:00
Ian Douglas Scott
61692b21ad
Run cargo format
2024-11-18 18:24:53 +01:00
Ashley Wulber
8d5541b27f
fix: apply transform to damage before blitting
2024-11-13 16:33:43 +01:00
Victoria Brekenfeld
5207453157
kms: Don't substract for mirrored outputs
2024-10-25 10:42:38 +02:00
Ian Douglas Scott
ea27ec5e28
DPMS with wlr-output-power-management-unstable-v1 protocol
2024-10-25 10:31:24 +02:00
Ian Douglas Scott
b8c429facb
Add COSMIC_DISABLE_DIRECT_SCANOUT env var
...
Like `anvil`. Useful for testing and working around issues.
2024-10-15 11:45:46 +02:00
Ian Douglas Scott
15a6425836
Set default output transform based on DRM panel orientation ( #901 )
2024-10-07 18:12:40 +02:00
Ian Douglas Scott
a96394f7a6
Update egui, smithay-egui, smithay
2024-10-02 23:55:10 +02:00
Ian Douglas Scott
d7ca0324c5
Remove needs_key_repetition argument
...
Not supressing key repetition in backends seems like it was a bug, and
should be fixed as of https://github.com/Smithay/smithay/pull/1535 .
So an argument for this should be unnecessary now.
2024-09-19 16:23:25 +02:00
Victoria Brekenfeld
07f898590a
kms: Fix rare mirroring crash
2024-09-02 20:44:23 +02:00
julianbraha
52ad30c264
Remove unnecessary lifetimes
2024-08-30 17:53:56 +02:00
julianbraha
2e2356ab5f
Use map.entry().or_insert() instead of map.contains_key() and map.insert()
2024-08-29 16:39:39 +02:00
Jeremy Soller
a3c81119e8
Use fallback scale if size is invalid
2024-08-16 06:59:51 -06:00
Victoria Brekenfeld
8d2cc05f03
kms: Try to calculate dpi and scale factor (Take 2)
...
Co-authored-by: Jeremy Soller <jackpot51@gmail.com>
2024-08-15 15:10:40 -06:00
Ian Douglas Scott
5537fa4822
Use EGL_MESA_device_software as fallback for screen capture
...
Previously, screenshots and screencopy panicked if no DRM render nodes
are present.
Instead, create a `GlowRenderer` using llvmpipe, if available. This
should work as a fallback until pixman is integrated.
2024-08-07 10:49:39 -07:00
Victoria Brekenfeld
2cef99ae78
Revert "kms: Try to calculate dpi and scale factor"
...
This reverts commit 607bd71aeb .
2024-08-01 23:38:11 +02:00
Victoria Brekenfeld
607bd71aeb
kms: Try to calculate dpi and scale factor
2024-07-31 13:02:08 +02:00
Ian Douglas Scott
0e78104477
Fix build with profile-with-tracy feature
2024-07-29 14:49:44 +02:00
Victoria Brekenfeld
8971d8f430
kms: Fix previous commit..
2024-07-26 14:07:21 +02:00
Victoria Brekenfeld
64e03d11d7
kms: Fix potential panic when enumerating connectors
2024-07-26 14:00:16 +02:00
Victoria Brekenfeld
ec5d89eaa9
kms: Make sure edid model doesn't contain 0 byte
2024-07-18 17:31:57 +02:00
Victoria Brekenfeld
4a22724cb8
kms: HACK: avoid crashing on bad edids
2024-07-18 17:31:57 +02:00
Ian Douglas Scott
0636bcdef3
Add workspace_overview_is_open function; put in a utils::quirks mod
...
This is increasingly not just related to screencopy, so it's weird to
add there. I don't see any other module that fits, so add one called
"quirks" (like the Linux kernel uses for device-specific handling in
generic drives).
2024-07-15 17:12:05 +02:00
Ian Douglas Scott
355b142c52
When cosmic-workspaces is shown, render only layer-shell surfaces
...
This allows `cosmic-workspaces` to rely on cosmic-comp for rendering the
background, and just have transparency. This should be a more reliable
and performant way of doing things, at least for now.
Instead of adding another opaque bool argument, this defines an
`ElementFilter` enum, which makes calls more readable.
Window surfaces are still included in screencopy, as needed for the
workspace previews.
2024-07-15 17:12:05 +02:00
Victoria Brekenfeld
2d0f1cbf2b
chore: smithay update
2024-07-02 13:15:30 +02:00
Victoria Brekenfeld
8da3ac6d75
kms: Fix frame scheduling
2024-06-27 18:15:18 +02:00
Victoria Brekenfeld
26ccb653b7
output: Store position as u32 and offset bad configs
2024-06-27 12:34:51 +02:00