Closed Bug 1616335 Opened 5 years ago Closed 5 years ago

Add a pref to dump serialized WebRender display list in a cleaner format

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: mikokm, Assigned: mikokm)

References

Details

Attachments

(1 file)

This patch adds a pref gfx.webrender.dl.dump-content-serialized that prints the serialized display list for content processes.

Example:

-- WebRender display list: --
PushStackingContext(PushStackingContextDisplayItem { origin: (0.0,0.0), spatial_id: SpatialId(1, PipelineId(1, 10)), prim_flags: IS_BACKFACE_VISIBLE, stacking_context: StackingContext { transform_style: Flat, mix_blend_mode: Normal, clip_id: Some(Clip(0, PipelineId(1, 10))), raster_space: Screen, cache_tiles: true, is_backdrop_root: false } })
Rectangle(RectangleDisplayItem { common: CommonItemProperties { clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_id: Clip(0, PipelineId(1, 10)), spatial_id: SpatialId(1, PipelineId(1, 10)), hit_info: None, flags: IS_BACKFACE_VISIBLE, item_key: None }, color: ColorF { r: 1.0, g: 1.0, b: 1.0, a: 1.0 } })
HitTest(HitTestDisplayItem { common: CommonItemProperties { clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_id: Clip(0, PipelineId(1, 10)), spatial_id: SpatialId(1, PipelineId(1, 10)), hit_info: Some((0, 1)), flags: IS_BACKFACE_VISIBLE, item_key: None } })
ScrollFrame(ScrollFrameDisplayItem { clip_id: Clip(1, PipelineId(1, 10)), scroll_frame_id: SpatialId(2, PipelineId(1, 10)), content_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), parent_space_and_clip: SpaceAndClipInfo { spatial_id: SpatialId(1, PipelineId(1, 10)), clip_id: Clip(0, PipelineId(1, 10)) }, external_id: Some(ExternalScrollId(3, PipelineId(1, 10))), image_mask: None, scroll_sensitivity: Script, external_scroll_offset: (0.0,0.0) })
Clip(ClipDisplayItem { id: Clip(2, PipelineId(1, 10)), parent_space_and_clip: SpaceAndClipInfo { spatial_id: SpatialId(1, PipelineId(1, 10)), clip_id: Clip(0, PipelineId(1, 10)) }, clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), image_mask: None })
ClipChain(ClipChainItem { id: ClipChainId(0, PipelineId(1, 10)), parent: None })
HitTest(HitTestDisplayItem { common: CommonItemProperties { clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_id: ClipChain(ClipChainId(0, PipelineId(1, 10))), spatial_id: SpatialId(2, PipelineId(1, 10)), hit_info: Some((3, 1)), flags: IS_BACKFACE_VISIBLE, item_key: None } })
ClipChain(ClipChainItem { id: ClipChainId(1, PipelineId(1, 10)), parent: None })
HitTest(HitTestDisplayItem { common: CommonItemProperties { clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_id: ClipChain(ClipChainId(1, PipelineId(1, 10))), spatial_id: SpatialId(2, PipelineId(1, 10)), hit_info: Some((3, 1)), flags: IS_BACKFACE_VISIBLE, item_key: None } })
Rectangle(RectangleDisplayItem { common: CommonItemProperties { clip_rect: Rect(960.0×1103.0 at (0.0,0.0)), clip_id: ClipChain(ClipChainId(1, PipelineId(1, 10))), spatial_id: SpatialId(2, PipelineId(1, 10)), hit_info: None, flags: IS_BACKFACE_VISIBLE, item_key: None }, color: ColorF { r: 1.0, g: 1.0, b: 1.0, a: 1.0 } })
Clip(ClipDisplayItem { id: Clip(3, PipelineId(1, 10)), parent_space_and_clip: SpaceAndClipInfo { spatial_id: SpatialId(2, PipelineId(1, 10)), clip_id: Clip(1, PipelineId(1, 10)) }, clip_rect: Rect(100.0×100.0 at (8.0,8.0)), image_mask: None })
ClipChain(ClipChainItem { id: ClipChainId(2, PipelineId(1, 10)), parent: None })
PushStackingContext(PushStackingContextDisplayItem { origin: (8.0,8.0), spatial_id: SpatialId(2, PipelineId(1, 10)), prim_flags: IS_BACKFACE_VISIBLE, stacking_context: StackingContext { transform_style: Flat, mix_blend_mode: Normal, clip_id: Some(ClipChain(ClipChainId(2, PipelineId(1, 10)))), raster_space: Screen, cache_tiles: false, is_backdrop_root: false } })
Image(ImageDisplayItem { common: CommonItemProperties { clip_rect: Rect(100.0×100.0 at (0.0,0.0)), clip_id: Clip(0, PipelineId(1, 10)), spatial_id: SpatialId(2, PipelineId(1, 10)), hit_info: Some((3, 3)), flags: IS_BACKFACE_VISIBLE, item_key: None }, bounds: Rect(100.0×100.0 at (0.0,0.0)), image_key: ImageKey(IdNamespace(5), 3), image_rendering: Auto, alpha_type: PremultipliedAlpha, color: ColorF { r: 1.0, g: 1.0, b: 1.0, a: 1.0 } })
PopStackingContext
PopStackingContext
Assignee: nobody → mikokm
Status: NEW → ASSIGNED
Priority: -- → P3
Pushed by mikokm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/3a8d5795c985
Add a pref to dump the serialized WebRender display list r=kvark

Backed out for tidy bustage on display_list.rs

backout: https://hg.mozilla.org/integration/autoland/rev/6f4560630238502bc8ad26351b65fbb7189a9e96

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=3a8d5795c985cb609bf26c0900e4a9ded3514943&searchStr=linux%2Cx64%2Cquantumrender%2Copt%2Cwebrender%2Cstandalone%2Cwebrender-lint-tidy%2Cwr%28tidy%29&selectedJob=289769695

failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=289769695&repo=autoland

[task 2020-02-20T23:23:44.341Z] Checking files for tidiness...
[task 2020-02-20T23:23:44.341Z]
[task 2020-02-20T23:23:44.342Z] Progress: 0% (2/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (3/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (4/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (5/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (6/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (7/1045)
[task 2020-02-20T23:23:44.342Z] Progress: 0% (8/1045)
[task 2020-02-20T23:23:44.437Z] Progress: 0% (9/1045)
[task 2020-02-20T23:23:44.437Z] Progress: 0% (10/1045)
[task 2020-02-20T23:23:44.460Z] Progress: 1% (11/1045)
[task 2020-02-20T23:23:44.469Z] Progress: 1% (12/1045)
[task 2020-02-20T23:23:44.470Z] Progress: 1% (13/1045)
[task 2020-02-20T23:23:44.483Z] Progress: 1% (14/1045)
[task 2020-02-20T23:23:44.499Z] Progress: 1% (15/1045)
[task 2020-02-20T23:23:44.499Z] Progress: 1% (16/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 1% (17/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 1% (18/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 1% (19/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 1% (20/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 2% (21/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 2% (22/1045)
[task 2020-02-20T23:23:44.500Z] Progress: 2% (23/1045)
[task 2020-02-20T23:23:44.501Z] Progress: 2% (24/1045)
[task 2020-02-20T23:23:44.515Z] Progress: 2% (25/1045)
[task 2020-02-20T23:23:44.548Z] Progress: 2% (26/1045)
[task 2020-02-20T23:23:44.555Z] Progress: 2% (27/1045)
[task 2020-02-20T23:23:44.555Z] ./webrender_api/src/display_list.rs:1765: trailing whitespace
[task 2020-02-20T23:23:44.693Z]
[task 2020-02-20T23:23:44.848Z] Progress: 2% (28/1045)
[task 2020-02-20T23:23:44.853Z] Progress: 2% (29/1045)
[task 2020-02-20T23:23:44.865Z] Progress: 2% (30/1045)

Flags: needinfo?(mikokm)

One (1) trailing space.

Flags: needinfo?(mikokm)
Pushed by mikokm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/cee2ebb35aa7
Add a pref to dump the serialized WebRender display list r=kvark
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75

There was no reason to kill print_display_list

(In reply to Anthony Ramine [:nox] from comment #7)

There was no reason to kill print_display_list

From Gecko developer's perspective there were at least three reasons:

  1. No callers in mozilla-central
  2. It did not work when I tried it (printed literally nothing)
  3. It might not work as expected even if it did, see bug 1572421
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: