|
|
Allow layers to signal that additional sequences are needed before surface destruction
A single surface can be referenced by multiple layers in separate compositors, so we need to be able to have every layer individually signal the manager that the Surface shouldn't be released until it's done with it.
When a SurfaceLayer's added to a LayerTreeHost, a new SurfaceSequence is created for that compositor and sent to the SurfaceManager for it to wait on before the Surface is destroyed. When the Surface is destroyed, that set of sequences is waited for. When the SurfaceLayer is removed from a compositor, a SwapPromise is created on that compositor that will satisfy its SurfaceSequence in the next frame (which won't reference the Surface).
BUG= 411118
Committed: https://crrev.com/dbccae1ab081972ddee790058d817721d94d55dd
Cr-Commit-Position: refs/heads/master@{#303119}
Total comments: 2
Total comments: 6
Total comments: 5
Total comments: 1
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+477 lines, -125 lines) |
Patch |
 |
M |
cc/BUILD.gn
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
cc/cc_tests.gyp
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
cc/layers/surface_layer.h
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+21 lines, -2 lines |
0 comments
|
Download
|
 |
M |
cc/layers/surface_layer.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
3 chunks |
+72 lines, -4 lines |
0 comments
|
Download
|
 |
A |
cc/layers/surface_layer_unittest.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+206 lines, -0 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface.h
|
View
|
1
2
3
4
5
6
7
8
9
|
3 chunks |
+14 lines, -0 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+16 lines, -1 line |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_factory.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_factory.cc
|
View
|
1
2
3
4
5
6
|
2 chunks |
+3 lines, -13 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_factory_unittest.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_manager.h
|
View
|
1
2
3
4
5
6
7
8
9
|
4 chunks |
+7 lines, -8 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_manager.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
3 chunks |
+11 lines, -24 lines |
0 comments
|
Download
|
 |
M |
cc/surfaces/surface_sequence.h
|
View
|
1
2
3
4
5
6
7
|
3 chunks |
+12 lines, -0 lines |
0 comments
|
Download
|
 |
M |
cc/trees/layer_tree_host.h
|
View
|
1
2
|
3 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
cc/trees/layer_tree_host.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
content/browser/compositor/delegated_frame_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
5 chunks |
+40 lines, -17 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura.h
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+30 lines, -0 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/compositor.h
|
View
|
1
2
|
2 chunks |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/compositor.cc
|
View
|
1
|
4 chunks |
+1 line, -34 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer.h
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+5 lines, -1 line |
0 comments
|
Download
|
 |
M |
ui/compositor/layer.cc
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+8 lines, -3 lines |
0 comments
|
Download
|
Total messages: 23 (4 generated)
|