servo/components
Martin Robinson 9195344b75
compositor: Create a single cross-process compositor API (#33619) (#33660)
Instead of exposing many different kinds of messages to the compositor
that are routed through the constellation, expose a single message type
which can be sent across IPC channels. In addition, this IPC channel and
the route to the crossbeam channel with the compositor is created along
with the `CompositorProxy`, simplifying what needs to be passed around
during pipeline initialization.

Previously, some image updates (from video) were sent over IPC with a
special serialization routine and some were sent via crossbeam channels
(canvas). Now all updates go over the IPC channel `IpcSharedMemory` is
used to avoid serialization penalties. This should improve performance
and reduce copies for video, but add a memory copy overhead for canvas.
This will improve in the future when canvas renders directly into a
texture.

All-in-all this is a simplification which opens the path toward having a
standard compositor API and reduces the number of duplicate messages and
proxying that had to happen in libservo.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-09 17:30:24 +00:00
..
allocator Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
background_hang_monitor Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
bluetooth Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
canvas compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
compositing compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
config crypto: Begin SubtleCrypto implementation (#33628) 2024-10-08 03:51:08 +00:00
config_plugins Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
constellation compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools DevTools: Fix console in Firefox 131 (#33661) 2024-10-09 12:09:06 +00:00
dom_struct Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
domobject_derive Replace ShouldNotImplDomObject with NoDomObjectInDomObject (#33627) 2024-10-03 12:58:34 +00:00
fonts compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
geometry Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
hyper_serde Stop using time@0.1 in Servo (#33394) 2024-09-11 07:09:56 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout fonts: Make FontKey and FontInstanceKey generation asynchronous (#33600) 2024-10-01 15:31:26 +00:00
layout_2020 Implement keyword sizes on floats (#33666) 2024-10-08 13:07:59 +00:00
layout_thread compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
layout_thread_2020 compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
media Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
metrics Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
net compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
pixels Optimized unmultiply_inplace to remove fp ops (#33582) 2024-09-30 19:39:27 +00:00
profile Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
rand crypto: Begin SubtleCrypto implementation (#33628) 2024-10-08 03:51:08 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
servo compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
shared compositor: Create a single cross-process compositor API (#33619) (#33660) 2024-10-09 17:30:24 +00:00
url Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webdriver_server Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webgpu clippy: Fix warnings in components/script & components/webgpu (#33653) 2024-10-05 14:10:32 +00:00