I'm running a desktop Linux Firefox build with acceleration layers and OMTC on an nvidia card. I've always had problems where Firefox would not always update quickly enough when the window manager told it to. For example, if I switch to a workspace with Firefox in it, but FF is in the background, the FF window won't be drawn for maybe 1-2 seconds. This isn't just jank, since it happens always. Lately, though, the problem has gotten a lot worse. Sometimes Firefox won't draw at all if it's not the foreground window. A more annoying issue is that the area damaged by a tooltip that has disappeared won't be redrawn unless I scroll. Here's a simple STR: 1. Open a splinter review. 2. Mouse over the diff until the "Double click the line to add a review comment" tooltip appears. 3. Now move the mouse, which is supposed to make the tooltip disappear. It won't disappear though, since the area under it isn't redrawn. 4. You can keep doing this until you have 3 or 4 tooltips visible at once. Scrolling solves the problem. Overall, OMTC on Linux has gotten a lot better for me over the last few months. This issue is pretty annoying though.
I can reproduce this among other problems. Tackling the foreground issue first. It looks like when GTK sends an expose event, we ask the compositor to flush rendering, but we don't actually tell it to draw anything, so nothing happens. Matt explained that this is because compositing has to be synchronous there, but since expose events also come from resizes, we don't want to do two synchronous composites in a row.
Assignee: nobody → dvander
Status: NEW → ASSIGNED
Created attachment 806370 [details] [diff] [review] refresh.patch Same thing that Windows does. This could hurt resize performance with the basic compositor, so we'll have to see what happens there.
Attachment #806370 - Flags: review?(matt.woodrow)
Attachment #806370 - Flags: review?(matt.woodrow) → review+
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in before you can comment on or make changes to this bug.