Implement Draw / partial present compositor in terms of native compositor interface
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox84 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
Details
Attachments
(2 files)
Assignee | ||
Comment 1•4 years ago
|
||
This will simplify much of the picture cache code, and is also a way to expose partial present dirty rects to the native compositor interface (e.g. for swgl)
Assignee | ||
Comment 2•4 years ago
|
||
This is the ordering of relevant parts of the draw / native compositor code paths in the current implementation (reference for porting draw -> native):
new:
get_capabilities
render_impl:
(if compositor changed)
destroy_surface
enable_native_compositor
update_native_surfaces
create_external_surface
attach_external_image
create_surface
destroy_surface
create_tile
destroy_tile
begin_frame
draw_frame
invalidate_tile
composite_native
add_surface[]
start_compositing
passes[]
main
composite_simple
get_buffer_age
set_buffer_damage_region
offscreen
bind
unbind
bind_debug_overlay
unbind_debug_overlay
end_frame
deinit:
destroy_surface
deinit
Assignee | ||
Comment 3•4 years ago
|
||
Implementing the Draw compositor via the native compositor interface
is simpler if the buffer age is passed into the top level render method.
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
Move the calculation of the dirty rects array earlier in frame
drawing, and supply that to the start_compositing
method of
the compositor trait.
For now, it's assumed that the native compositor wants a single
dirty rect, and doesn't use buffer-age functionality. These
params will be configurable as part of the compositor capabilities
struct in follow up patches.
Comment 6•4 years ago
|
||
Backed out changeset 644505d8afbb (bug 1675159) for Browser-chrome failures in browser/base/content/test/general/browser_save_video_frame.js. CLOSED TREE
Log:
https://treeherder.mozilla.org/logviewer?job_id=320752832&repo=autoland&lineNumber=2334
Push with failures:
https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&revision=644505d8afbb7e297270d186a2cc5e37488be3f5
Backout:
https://hg.mozilla.org/integration/autoland/rev/a86eb22de44a700456acd86b74e539ec0c4230df
Assignee | ||
Comment 7•4 years ago
|
||
Discussed in the sheriffs channel that I think these are unrelated, so will try to reland. Looks similar to a preexisting https://bugzilla.mozilla.org/show_bug.cgi?id=1673742, perhaps random timing changes make it more likely with this patch.
Comment 9•4 years ago
|
||
Dave: Can you please take a look at the failures in comment 6 and 7?
Comment 10•4 years ago
|
||
bugherder |
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
bugherder |
Description
•