ladybird/UI
Luke Wilde 0e958ca8d5 LibWebView+UI/AppKit: Present IOSurfaces directly
Instead of copying the Bitmap that wraps the IOSurface, we can just
present the IOSurface directly. This significantly reduces CPU usage in
the UI process, particularly at high refresh rates such as 120Hz where
it would saturate a full CPU core.

This is done by using CAMetalLayer and blitting the IOSurface to the
next drawable buffer, which handles triple buffering, locking the
IOSurface and vsync automatically. This also allows the Metal HUD to
work, but the only accurate stat is the frame intervals/FPS because
it's in the UI layer, not WebContent. However, that's still useful
to detect frame drops.
2026-02-16 14:57:17 +00:00
..
Android Revert "LibCore: Add thread-safe weak deferred_invoke()" 2026-01-25 12:20:39 +01:00
AppKit LibWebView+UI/AppKit: Present IOSurfaces directly 2026-02-16 14:57:17 +00:00
cmake Base: Use the correct memory unit suffixes in about::processes 2025-12-01 07:30:23 -05:00
Icons Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00
Qt UI/Qt: Request closure instead of always force closing tabs 2026-02-14 23:26:10 +00:00
.gitignore Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00
CMakeLists.txt LibWebView+UI: Move the UI event loops to the UI folder 2025-12-05 14:24:05 -05:00
Info.plist Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00