Closed Bug 1353399 Opened 3 years ago Closed 2 years ago

Intermittent reftest failure 1298742-1.html with webrender enabled

Categories

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

53 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox56 --- unaffected
firefox57 --- unaffected
firefox58 --- fixed

People

(Reporter: mchang, Assigned: kats)

References

(Blocks 1 open bug)

Details

No description provided.
Mason, please put a link to failure log here. I'd like to see the result difference. Thanks!
Is there a reason you didn't make the animation times the same or figure out why it was intermittent on try per https://bugzilla.mozilla.org/show_bug.cgi?id=1298742#c24 ?
Flags: needinfo?(boris.chiou)
Thank you Mason.
I did not actually check the failure on try at that time, so I have no idea about its reason.
What I can tell about the failure diff in comment 4 is that we failed to pull (had no chance?) the animation from the compositor before we got MozAfterPaint event.  It reminds me bug 1341294 again.
I think this is a problem with the test. It has two animations. Once the animations are paused and ready, we remove one of the animations. The first animation is then queued and can start at anytime, which races with the removal of reftest-wait and snapshotting I think. But it seems also like this test is fundamentally flawed if the original test had intermittents.
Sorry, I'm not familiar with the potential race problem of the removal of reftest-wait and snapshotting. I think hiro/Brian has more ideas about this intermittent failure.
Flags: needinfo?(boris.chiou)
Boris, is the problem here the following:

    animB.effect = null;
    requestAnimationFrame(function() {
      document.documentElement.classList.remove("reftest-wait");
    });

i.e. we have animB on the compositor and we might snapshot before the compositor has been updated?
Flags: needinfo?(boris.chiou)
(In reply to Brian Birtles (:birtles, away until 19 Sep) from comment #8)
> Boris, is the problem here the following:
> 
>     animB.effect = null;
>     requestAnimationFrame(function() {
>       document.documentElement.classList.remove("reftest-wait");
>     });
> 
> i.e. we have animB on the compositor and we might snapshot before the
> compositor has been updated?

This test wants to test if we set the keyframe effect of animB to null, animB will have no effect on this element, but I'm not sure what happen on compositor thread. If it is on the main thread, everything seems OK. However, if animB is on the compositor thread, and we set its keyframe effect to null, then we should remove it from the compositor thread, so the visual result of this element becomes animA, which is 'translate(0px)'. i.e. I thought we need to snapshot after animB is updated on the compositor thread? Maybe we forget do something so this may break the test after enabling webrender.
Flags: needinfo?(boris.chiou)
I wonder if bug 1397057 fixes this.
Assignee: mchang → nobody
This was fixed by bug 1404091. But there's a stale comment in the reftest.list that needs removing.
Depends on: 1404091
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1477d8efa569
Remove stale comment. r=me and DONTBUILD
https://hg.mozilla.org/mozilla-central/rev/1477d8efa569
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Assignee: nobody → bugmail
You need to log in before you can comment on or make changes to this bug.