Closed Bug 1348414 Opened 3 years ago Closed 3 years ago
reftest-wait seems to snapshot at the wrong time with WR
I'm getting failures not due to wrong rendering, but seems like it's snapshotting too early or before WR finishes rendering an update after a reftest-wait. See /layout/reftests/bugs/1003425-1.html
Tracked this down. We keep sending an EmptyRect during invalidation detection in . This empty rect is passed onto NotifyPaintEvent, which is fired after we paint. The reftest framework looks for client rects to determine that it should snapshot again. Since we return an empty rect, the reftest doesn't think it needs to snapshot again and dies. I tried caching the display item geometry via a LayerTreeProperty and then call nsDisplayList::ComputeInvalidationRegion. However, the display item's lifetimes are shorter than the Layer trees. Also, since we recycle display item layers, there's no guarantee that the display item in a recycled layer would be the same time and the geometry would apply to check against anyway. Going back through some old comments, I saw . Specifically, I think we'd change the tests to just wait until there are no more scheduled paints.  http://searchfox.org/mozilla-central/source/layout/painting/nsDisplayList.cpp#2281  https://bugzilla.mozilla.org/show_bug.cgi?id=1337130#c14
Fixed a bug where we wouldn't detect if WR was enabled on non-windows platforms.
Attachment #8850194 - Flags: review?(matt.woodrow) → review+
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/projects/graphics/rev/f39045b90aa9 Always snapshot after no more paints are pending if WR is enabled. r=mattwoodrow
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.