Closed Bug 1595165 Opened 4 months ago Closed 3 months ago

WR tile splitting heuristics have oscillating behavior when invalidation areas are narrow

Categories

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

defect

Tracking

()

VERIFIED FIXED
mozilla73
Tracking Status
firefox73 --- verified

People

(Reporter: mstange, Assigned: gw)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

Attached file testcase

Steps to reproduce:

  1. Turn on WebRender and gfx.webrender.debug.picture-caching.
  2. Open the testcase and let it run for a bit.

Expected results:
Only the changing parts of the tiles should get invalidated.

Actual results:
Invalidation oscillates between invalidating 2x and 4x of the necessary area.

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) → needinfo?(gwatson)
Priority: -- → P3
Assignee: nobody → gwatson
Flags: needinfo?(gwatson)

The implementation for identifying which nodes in the dirty tracker
tree to merge was incorrect. Each leaf node identifies if it is
static (hasn't invalidated for some time), regularly invalidating,
or somewhere in between.

The previous logic would merge the nodes if all of the children
were (static OR invalidating). The original intent of the algorithm
is to merge the nodes if (all static) OR (all invalidating).

This patch fixes the implementation, which fixes the oscillating
behavior in some cases, and describes in more detail the reasoning
for the heuristic.

Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c3f7af3894df
Fix tile merging heuristic for picture caching. r=mstange
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73
Flags: qe-verify+

I have reproduced this issue using Firefox 72.0a1 (2019.11.08) on Win 10 x64 with WebRender enabled and gfx.webrender.debug.picture-caching pref on true, run testcase from description.
I can confirm this issue is fixed, I verified using Firefox 73.0 on Win 10 x64 with WebRender enabled, observe that only the changing parts of the tiles are invalidated.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.