WR tile splitting heuristics have oscillating behavior when invalidation areas are narrow
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox73 | --- | verified |
People
(Reporter: mstange, Assigned: gw)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
Steps to reproduce:
- Turn on WebRender and
gfx.webrender.debug.picture-caching
. - 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.
Comment 1•5 years ago
|
||
The priority flag is not set for this bug.
:jbonisteel, could you have a look please?
For more information, please visit auto_nag documentation.
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
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.
Comment 4•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Comment 5•5 years ago
|
||
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.
Description
•