Disable in-process backbuffer when remote backbuffering is being used
Categories
(Core :: Graphics, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox83 | --- | fixed |
People
(Reporter: cmartin, Assigned: cmartin)
References
Details
(Keywords: perf-alert)
Attachments
(1 file)
Currently, BasicCompositor
draws into a temporary buffer if bufferMode == BufferMode::BUFFERED
here, which is the default unless overridden by the call to StartRemoteDrawingInRegion()
However, when using the "remote backbuffer", we are already rendering into a temporary buffer. So now we pay the cost of copying twice - Once from the "local backbuffer" to the "remote backbuffer", and then from the "remote backbuffer" to the widget surface.
We should probably just render directly to the remote backbuffer; however, IIRC I tried something like this already when I was working on this feature, and I think the issue is that whenever the window changes size, the contents of the remote backbuffer are completely discarded, whereas the expected behaviour is to truncate the contents to the new window size.
Assignee | ||
Comment 1•5 years ago
|
||
BasicCompositor defaults to using BufferMode::BUFFERED, which causes it to draw
into a temporary backbuffer, which it then copies to the widget's surface.
With the addition of the "remote backbuffer" feature, there is now a second
buffering stage. This makes the original backbuffer redundant when
"remote backbuffer" is enabled.
This changes the mode to BufferMode::BUFFER_NONE in that case, and also ensures
that the remote backbuffer preserves contents when resized (which is necessary
because the remote backbuffer needs to be a stand-in for the widget surface)
Comment 3•5 years ago
|
||
bugherder |
Comment 4•5 years ago
|
||
== Change summary for alert #27217 (as of Wed, 14 Oct 2020 11:10:59 GMT) ==
Improvements:
13% Heap Unclassified windows10-64-shippable opt tp6 65,703,292.01 -> 57,411,909.92
7% Heap Unclassified windows10-64-shippable opt tp6 65,829,125.85 -> 61,169,374.13
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=27217
Description
•