Closed Bug 1626666 Opened 4 months ago Closed 4 months ago

Rework the ipc profile counters

Categories

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

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: nical, Assigned: nical)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

Currently IPC profile counters give a mix of useless, useful and ambiguous information:

  • consume time merely the time it takes to push something into a vector (always displays zero)
  • total IPC time contains the time between api.set_display_list and the render backend picking the message up, plus the time it took to build the display list (but doesn't take into account the time it took for actual IPC in between).
  • send time is only the time between api.set_display_list and the render backend picking the message up but doesn't take into account the time it took between the content process and the compositor thread sending the display list.

Before this patch:

  • Consume time merely is the time it takes to push something into a vector (always displays zero).
  • Total IPC time and the DisplayList IPC graph measure the time between api.set_display_list and the render backend picking the message up, plus the time it took to build the display list (but doesn't take into account the time it took for actual IPC in between).
  • Send time is only the time between api.set_display_list and the render backend picking the message up but doesn't take into account the time it took between the content thread sending the DL and the compositor thread forwarding it.

After this patch:

  • Content send time measures the time between the content thread sending the display list and the compositor forwarding it (actual IPC).
  • Api send time measures the time between the compostor thread forwarding the DL and the render backend picking it up.
  • Consume time is removed.
  • Total send time is the sum of content and api times.
  • Display list build times and display list IPC (total send time) are on separate graphs.

Depends on D69227

Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ea22f0b1e2a0
Rework the ipc profile counters. r=Bert,gw

Instead of collecting so-called ipc counters when receving the SetDisplayList on the render backend, pass the information through the scene builder thread and update the profile on the render backend after the scene is swapped. This prevents ipc counters to be displayed while the transaction is still being processed by the scene builder thread.

Few of the counters actually have anything to do with IPC although they all relate to events of layout transactions.

Depends on D69414

Keywords: leave-open
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1a729c8ea631
Ensure ipc profile counters follow transactions through the scene builder thread. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/d2771cdff401
Rename IpcProfileCounters into TransactionProfileCounters. r=jrmuizel
Status: NEW → RESOLVED
Closed: 4 months ago
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.