Improve WebGL IpdlQueue Performance
Categories
(Core :: Graphics: CanvasWebGL, enhancement, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: handyman, Assigned: handyman)
References
Details
Attachments
(2 files)
IpdlQueue can batch at least most async WebGL messages to the compositor process. This will lead to far fewer IPDL Send calls and improve latency is many cases. The async buffer should be flushed on (1) a synchronous call or (2) on demand. We'll need something like a recurring task that flushes to make sure that we don't starve the buffer.
Assignee | ||
Comment 1•5 years ago
|
||
IpdlQueue currently sends an async Ipdl message for every async WebGL call. This is a lot of overhead. This patch buffers those calls so that they can be send in large batches when either a synchronous call happens or the client calls FlushAsyncCache. The commands are then sent and processed in-order.
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
When an async message is buffered, we need to make sure that the message is eventually sent to avoid starvation. This patch queues a future task to do this (currently, randomly, 4 milliseconds in the future) unless one is already queued. The task may get scooped by a sync message or user call to FlushAsyncCache, in which case the task will have no effect.
Depends on D72047
Comment 4•4 years ago
|
||
Backed out for build bustages on IpdlQueue.h
Backout link: https://hg.mozilla.org/integration/autoland/rev/e622ef3ca2a23a18b624b8dc253be5e8d64e9b8b
Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=304204222&repo=autoland&lineNumber=23016
Comment 7•4 years ago
|
||
Backed out for build bustages on IpdlQueue.h.
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=304590709&repo=autoland&lineNumber=35535
Backout: https://hg.mozilla.org/integration/autoland/rev/24a7fdfc9c9426481aaa4898c2949b4c7338aa07
Assignee | ||
Comment 8•4 years ago
|
||
Comment 10•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/813b662b4ded
https://hg.mozilla.org/mozilla-central/rev/6b31077ebd14
Description
•