Commit graph

3563 commits

Author SHA1 Message Date
Christian Meissl
f58a259c2b multigpu: clean-up src renderer in finish
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-07-07 16:11:04 +02:00
Christian Meissl
7f403e8e33 drm: clean up renderer texture cache 2024-07-07 16:11:04 +02:00
Christian Meissl
39c63559c0 renderer: explicit texture cache cleanup 2024-07-07 16:11:04 +02:00
Christian Meissl
f208cd7584 wayland: only send dnd_drop_performed for accepted offers
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
2024-07-06 11:27:04 +02:00
Victoria Brekenfeld
e2b233ff58 ci: Fix wayland-protocols doc crate version
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-07-05 17:48:53 +02:00
Victoria Brekenfeld
b64b0fc516 seat/kbd: Allow overriding replace behavior 2024-07-05 17:48:53 +02:00
Ian Douglas Scott
41712470ab shm/pool: Map as writable in nullify_map
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
The actual mapping is mutable, so the placeholder should also be. Or
writes will trigger a `SEGV` due to the page being unmapped when
execution is resumed after the `BUS` handler.

This fixes uses of `with_buffer_contents_mut` if the file provided by
the client isn't large enough. In particular the segfault reported in
https://github.com/pop-os/cosmic-comp/issues/48.
2024-07-03 13:39:56 +02:00
Ian Douglas Scott
c21a84b621 renderer/multigpu: Don't unwrap renderer error in import_shm_buffer
This can error due to the buffer type being something other than an shm
buffer, but it can also error for other reasons, like
`BufferAccessError::BadMap`.

This fixes a panic when a client tries to use a buffer wit a file that
isn't large enough. With this, there's no longer a panic and the client
gets a protocol error as it is supposed to.

Fixes https://github.com/Smithay/smithay/issues/834.
2024-07-03 13:38:47 +02:00
Christian Meissl
3731734d5a pixman: re-map resized shm pool images
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
The actual mmap can change if the shm pool gets
resized. In this case we have to re-map our image
to prevent accessing a unmapped memory region.
2024-07-01 22:58:35 +02:00
Christian Meissl
72b251c20e drm: always submit the complete state
while it should be totally fine to only
update the planes that have actually changed
it seems some drivers might break by doing so.

after some trial and error it seems that it might
be enough to always include the primary plane
in the update to workaround this issues. But
to be safe for now and until this has resolved
we just include all used planes in the update.
2024-07-01 22:36:51 +02:00
Christian Meissl
253e13eee1 drm: pick one primary plane if we have multiple
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
some drivers might offer multiple candidates as the
primary plane for a CRTC. pick one and claim it so that
we do not accidentially select the same plane multiple times.
2024-06-28 12:58:22 +02:00
Victoria Brekenfeld
a1650f8568 multigpu: Clear shadow-copy before updating
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-06-27 21:05:54 +02:00
PapyElGringo
5d3bb4b1b1 make it mutable 2024-06-27 16:42:55 +02:00
PapyElGringo
3a531ac346 fix panic on where value32 is None 2024-06-27 16:42:55 +02:00
PapyElGringo
9ff96ea35f xwayland: expose pid atom
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-06-26 22:22:52 +02:00
Victoria Brekenfeld
adefb0f2e3 renderer/gles: Drop shadow buffer 2024-06-26 22:12:01 +02:00
Victoria Brekenfeld
fa7ae2ab3c egl: Unify feature requirements
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-06-26 21:37:19 +02:00
Victoria Brekenfeld
53b692ae0b wayland/compositor: Drop unused Marker struct 2024-06-26 21:37:19 +02:00
Victoria Brekenfeld
0d78919bd1 cargo: don't use default_features 2024-06-26 21:37:19 +02:00
Christian Meissl
69b379d00a
perf: use WlWeak::is_alive instead of upgrading (#1461)
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
this has been introduced in the latest wayland-rs release
and can safe a few cycles, especially for lists holding a lot
of weak resources.
2024-06-21 23:17:11 +02:00
Victoria Brekenfeld
25ba547aa0 multigpu: Share texture state
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
c30f2ec1d4 element: Make MemoryRenderBuffer threadsafe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
8202a7c795 multigpu: Require texture to be Send for soundness 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
db53c3dec7 gles: Make sharing textures across threads possible 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
265f27ce47 multigpu: Make texture store thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
bdf2905860 desktop/popup: Make accessing the popup-tree thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
9e274f87b6 renderer/gles: Insert RendererId threadsafe
The renderer id itself is valid across threads, as it may be shared by
shared EGLContexts. This doesn't make the renderer `Send` or `Sync`, but
allows multiple renderers on different threads to share textures.
2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
c4ec3fa75f compositor: Make cached_state access thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
06ad2544a0 viewporter: Make surface access thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
d669c91d26 space: Make output operations thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
e1a1768c71 renderer: Make RenderSurfaceState thread-safe 2024-06-21 16:26:59 +02:00
Victoria Brekenfeld
96bd1e160d desktop/layer: Make interactions with LayerShell thread-safe 2024-06-21 16:26:59 +02:00
Christian Meissl
234586dbea drm: keep plane formats in order
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
2024-06-20 22:40:21 +02:00
Christian Meissl
26af6a4921 renderer: use the new FormatSet to keep formats in order 2024-06-20 22:40:21 +02:00
Christian Meissl
b7aebdbaf2 backend: introduce FormatSet 2024-06-20 22:40:21 +02:00
Christian Meissl
22f44c18b6 wayland: keep dmabuf formats in order 2024-06-20 22:40:21 +02:00
Christian Meissl
807fadb298 drm: keep renderer_formats in order of preference 2024-06-20 22:40:21 +02:00
Ian Douglas Scott
ba0c180d5c winit: Require newer wayland-client/wayland-cursor
Fixes `-Z minimial-versions` build.
2024-06-20 21:17:34 +02:00
Ian Douglas Scott
0c36306c1f winit: Mark create_window call as #[allow(deprecated)] for now 2024-06-20 21:17:34 +02:00
Ian Douglas Scott
47fe6f001d winit: Use pump_app_events instead of deprecated pump_events
Not sure if there's a better way to organize this, but this seems
generally reasonable.
2024-06-20 21:17:34 +02:00
Ian Douglas Scott
a4a2539d2a Update winit to 0.30.0 2024-06-20 21:17:34 +02:00
Ian Douglas Scott
98b4279bcb Update ash to 0.38.0 2024-06-20 21:17:34 +02:00
Ian Douglas Scott
f01bc6876f Update calloop to 0.14.0 2024-06-20 21:17:34 +02:00
Christian Meissl
74e8c4f6ce gles: clean-up on unbind
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
this prevents resources from being kept
alive unnecessarily
2024-06-19 13:18:35 +02:00
Christian Meissl
b4f8120be0 gles: disable opaque short-cut for custom shaders
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
our assumption on implicit opaque rendering might
not hold for external shaders. in this case disable the
short-cut and just use the default opaque region
logic to decide of blending should be enabled or not.
2024-06-18 12:53:06 +02:00
Ivan Molodetskikh
68a629d79a Fix new Clippy warnings 2024-06-18 11:01:14 +02:00
Ivan Molodetskikh
fe654453b0 Make input focus store f64 Logical global coords
Some checks are pending
Continuous Integration / format (push) Waiting to run
Continuous Integration / clippy-check (push) Waiting to run
Continuous Integration / check-msrv (push) Blocked by required conditions
Continuous Integration / check-minimal (push) Blocked by required conditions
Continuous Integration / smithay-check-features (push) Waiting to run
Continuous Integration / smithay-tests (push) Blocked by required conditions
Continuous Integration / smallvil-check (push) Blocked by required conditions
Continuous Integration / anvil-check-features (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Blocked by required conditions
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Blocked by required conditions
Continuous Integration / Documentation on Github Pages (push) Blocked by required conditions
Surface position in global compositor space is not required to be
rounded to logical integers. The compositor is free to put surfaces
wherever. So, do not require an integer-logical position.

Not to be confused with:

* A subsurface can only be at an integer-logical offset from its parent
  surface (for now, at least). However, this is unrelated to the
  subsurface position in the global compositor space.
* A surface buffer is (generally expected to be) at an integer
  *physical* pixel position. However, this is unrelated, and frequently
  isn't, an integer *logical* pixel position.
2024-06-17 14:04:40 +02:00
Nicolas Avrutin
cbdb17a99d Add wprs to other compositors section. 2024-06-17 14:01:03 +02:00
Christian Meissl
6169b213fb damage: simplify opaque region handling
this does a few things, first it removes some redundant rectangle subtractions.
it is sufficient to subtract it once from the damage at the end instead of multiple
times on the intermediate results. this might also result in less fragmented damage
for the shaper.

it also gets rid of the vec in vec and instead of doing implicit indexing using explicit
indexing in a (linear) single vec. this makes access a lot cheaper, especially for
subtracting opaque regions above the currently drawn element.
2024-06-11 20:05:07 +02:00
Christian Meissl
4938db810b utils: short cut subtract regions
if we subtract multiple region we might
be able to exit early if nothing is left instead
of keeping iterating unnecessarily
2024-06-11 20:05:07 +02:00