Closed Bug 1611372 Opened 6 years ago Closed 5 years ago

nsWindow::OnExposeEvent() does not trigger WR rendering

Categories

(Core :: Graphics: WebRender, defect, P3)

Unspecified
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: sotaro, Assigned: sotaro)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

In nsWindow::OnExposeEvent(), there is a code to trigger schedule composite. But there was a case that scheduling composite was actually not triggered. Then WR rendering did not happen.

https://searchfox.org/mozilla-central/rev/f98dad153b59a985efd4505912588d4651033395/widget/gtk/nsWindow.cpp#2341

Assignee: nobody → sotaro.ikeda.g
OS: Unspecified → Linux

GetLayerManager()->SetNeedsComposite(true) set NeedsComposite flag, but it was cleared during listener->WillPaintWindow(this). It triggered LayerManager transaction. Then GetLayerManager()->ScheduleComposite() was not called.

Recent WebRender does not do composite if there is no update. Then Firefox window was not updated with expose event. Therefore we need to force WR rendering.

Blocks: 1572625
Summary: nsWindow::OnExposeEvent() does not trigger schedule composite → nsWindow::OnExposeEvent() does not trigger WR rendering

Related code was originally added by Bug 926618.

See Also: → 926618

I saw the problem when GPU process existed. But in this case, even when WR rendering happened, Firefox window was still not updated. When I added gdk_window_invalidate_rect(mGdkWindow, nullptr, FALSE) call, the problem did not happen. It seems that there is another problem.

The priority flag is not set for this bug.
:jbonisteel, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jbonisteel)
Flags: needinfo?(jbonisteel)
Priority: -- → P3
Attachment #9140938 - Attachment description: Bug 1611372 - Invalidate WebRender frame on X11 Expose event → Bug 1611372 - Invalidate WebRender frame on nsWindow::OnExposeEvent()
Pushed by sikeda.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ba33a0352ae0 Invalidate WebRender frame on nsWindow::OnExposeEvent() r=nical

Behavior change: I have confirmed that with build from comment 6 I am able to fix bug 1502519 by opening and closing another application to unfocus and focus the affected "About Nightly" window. bug 1502519 happens with and without gpu process.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: