Louvre on a hybrid i915/nouveau system #27
Replies: 3 comments 29 replies
-
Interesting, I tried it on my computer a moment ago, and the same thing happens, but only in Firefox (300 fps avg). From Google Chrome, it shows 60 fps. Could you try it on Google Chrome? Or another browser? I will analyze what might be happening. |
Beta Was this translation helpful? Give feedback.
-
Alright, I've identified the issue. The problem stems from both Firefox and Louvre. The issue lies in the fact that Firefox sends multiple wl_surface::frame requests in succession and before a wl_surface commit, without waiting for a response from the compositor. As a result, Louvre responds to ALL of these frames after rendering the window and then waits for Firefox to send another one. I've made a modification so that Louvre now responds to only one frame at a time, achieving 60 fps. I implemented this partly for security reasons, as if a client generates frames at a rate higher than they are destroyed, it could potentially exhaust the compositor's memory (in an extreme case). Therefore, my solution will be to respond one at a time but impose a limit on how many can live simultaneously. If it exceeds this limit, Louvre will begin to respond/destroy more than one frame at a time. Thank you for noticing btw. I'll upload the corrected version, most likely tomorrow or the day after, in release 1.2.0-1. |
Beta Was this translation helpful? Give feedback.
-
This message is written from two places in SRMBuffer.c, one in Also, when a syscall or a libc function fails, they usually set |
Beta Was this translation helpful? Give feedback.
-
I have built Louvre (d69b475) on Ubuntu 24.04 (development). My laptop has hybrid graphics, integrated Intel GPU (i915 driver) and NVIDIA (nouveau). Intel drives the built-in 3840×2160 panel, and NVIDIA drives an external 5120×2880 monitor over (mini) DisplayPort. (Also has an HDMI output, but I wasn’t able to achieve 5K over that, so not using it.) On X11, both monitors give me 60 FPS.
When I start Firefox and navigate to https://www.testufo.com/, under louvre-views, it displays an exorbitant FPS value fluctuating between 150 and 512. The animation speed also fluctuates.
The expected behavior is a steady 60 FPS animation on both displays. (Frustratingly, other Wayland compositors, including GNOME/Mutter, Sway/wlroots and Hyprland/wlroots, give me 60 FPS on the built-in panel and about 15–20 FPS on the external monitor.)
Does that look like some unimplemented feature or protocol in Louvre, or am I doing something wrong?
Beta Was this translation helpful? Give feedback.
All reactions