Closed Bug 1572421 Opened 5 years ago Closed 4 years ago

Display list dump does not include all items

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- wontfix
firefox78 --- wontfix
firefox79 --- wontfix
firefox80 --- fixed

People

(Reporter: mikokm, Assigned: kats)

References

(Regression)

Details

(Keywords: regression)

Attachments

(4 files)

It seems that the current WR DL dump does not include all the serialized items. I think this might be caused by mBuilderDumpIndex being incremented wrong.

Testcase: data:text/html,test

Attached

  1. current WR DL dump
  2. "raw" WR DL dump (all the serialized items)
  3. patch to dump all serialized items.
Attached file wr-dl-dump.txt
Attached file raw_items.txt
Priority: -- → P3
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → DUPLICATE
See Also: → 1652986

This was never actually fixed; bug 1616335 just added a new dumping mechanism that didn't have this problem. With bug 1652986 fixed this problem comes back for the interleaved dumping mechanism enabled by gfx.webrender.dl.dump-content.

Assignee: nobody → kats
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---

This happens because when the display list is properly finalized, it tacks on a "red zone" at the end of the data buffer, here. But when we make the "fake finalized" display list for printing purposes (here) we don't append the red zone, and so the iterator bails out here until enough stuff has been added to the data buffer. So I guess this was regressed by the switch over to peek-poke.

Regressed by: 1550640

When iterating a "built display list" the iterator expects there to be a red
zone at the end of the data buffer. The incremental display list emitter fakes
having a built display list, but it still needs to tack on the red zone to
satisfy the iterator (and assertions inside peek-poke). However we don't want
to keep this red zone there after we're done, so this patch also adds a new
method to peek-poke that strips away the red zone. The churn caused on the
vector capacity should be negligible because this churn would happen
anyway as new items are added to the display list and when the display list
is actually finalized at the end.

Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/abb94818ea0d Tack on a temporary red zone to the data buffer for iteration. r=miko
Status: REOPENED → RESOLVED
Closed: 5 years ago4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
Regressions: 1735677
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: