ladybird/Services/Compositor
Aliaksandr Kalenik a08734ecbc LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically
2D canvas contexts started publishing partial frames after canvas
rasterization moved into the Compositor. WebContent still splits large
recorded command lists after 64 commands, but every split batch was sent
through the same compositor path as the end-of-frame flush. The
compositor replayed each batch into the DrawCanvas source surface,
so a pending present could sample a canvas after clear and before the
rest of the next frame had been drawn. Canvas-heavy pages such as
slither.com then flickered between partial and complete frames.

Carry an explicit commit bit with 2D canvas command updates. Non-commit
batches now update a hidden working canvas in the Compositor, while the
display-list-visible surface keeps the last committed canvas contents.
The end-of-frame canvas preparation sends the commit boundary, including
the empty-commit case needed when the auto-flush consumed all recorded
commands before prepare_for_compositing() runs.
2026-06-19 00:01:26 +02:00
..
BackingStoreManager.cpp LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
BackingStoreManager.h LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
CanvasHost.cpp LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
CanvasHost.h LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
CMakeLists.txt LibWeb+Compositor: Move OpenGLContext in Compositor namespace 2026-06-17 19:07:32 +02:00
CompositorControlClient.ipc Compositor+WebContent+LibWebView: Implement service-side compositor IPC 2026-05-22 19:50:42 +01:00
CompositorControlServer.ipc Compositor: Handle pinch zoom asynchronously 2026-06-16 02:03:59 +02:00
CompositorState.cpp LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
CompositorState.h LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
CompositorWebContentClient.ipc Compositor+WebContent+LibWebView: Implement service-side compositor IPC 2026-05-22 19:50:42 +01:00
CompositorWebContentServer.ipc LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
ConnectionFromClient.cpp Compositor: Handle pinch zoom asynchronously 2026-06-16 02:03:59 +02:00
ConnectionFromClient.h Compositor: Handle pinch zoom asynchronously 2026-06-16 02:03:59 +02:00
ConnectionFromWebContent.cpp LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
ConnectionFromWebContent.h LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
ContextState.cpp LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
ContextState.h LibWeb+Compositor+WebContent: Simplify nested context composition 2026-06-18 07:08:34 +02:00
Forward.h Compositor+WebContent+LibWebView: Implement service-side compositor IPC 2026-05-22 19:50:42 +01:00
HostWebGLContext.cpp LibWeb+Compositor: Move OpenGLContext in Compositor namespace 2026-06-17 19:07:32 +02:00
HostWebGLContext.h LibWeb+Compositor: Move OpenGLContext in Compositor namespace 2026-06-17 19:07:32 +02:00
main.cpp LibWebView: Make helper sandboxing opt-out 2026-06-16 19:02:54 +02:00
OpenGLContext.cpp LibWeb+Compositor: Move OpenGLContext in Compositor namespace 2026-06-17 19:07:32 +02:00
OpenGLContext.h LibWeb+Compositor: Move OpenGLContext in Compositor namespace 2026-06-17 19:07:32 +02:00
Sandbox.h Compositor: Sandbox the process on Linux 2026-06-09 19:35:09 +02:00
SandboxLinux.cpp Services: Move GPU runtime access to Compositor 2026-06-18 08:22:09 +02:00
SandboxMacOS.cpp LibSandbox: Add macOS service sandboxing 2026-06-10 21:16:41 +02:00
SandboxUnimplemented.cpp Compositor: Sandbox the process on Linux 2026-06-09 19:35:09 +02:00
ViewportScrollbarController.cpp Compositor: Tighten internal state invariants 2026-05-30 21:52:17 +01:00
ViewportScrollbarController.h Compositor: Extract viewport scrollbar controller 2026-05-30 19:03:03 +01:00
VSyncScheduler.cpp Services: Use direct references to main event loops 2026-06-05 09:18:39 +02:00
VSyncScheduler.h Compositor: Schedule presents with a timer-backed vsync source 2026-05-28 23:12:35 +01:00
WebGLObjectMap.cpp Meta+LibWeb+Compositor: Add remote canvas transports 2026-06-17 19:07:32 +02:00
WebGLObjectMap.h Meta+LibWeb+Compositor: Add remote canvas transports 2026-06-17 19:07:32 +02:00