2 | | code is reusable |
3 | | Now supports texture tile scrolling in a separate thread |
4 | | We check for each ScrollView whether or not it can run in the scrolling thread |
5 | | Sending approximate positions back to the main thread |
6 | | Creates a disconnect between what we're showing and what WebCore thinks |
7 | | Trying to create something very similar to the RenderLayer tree into the scroll thread |
8 | | The scrolling tree is the data structure that is used by the scrolling thread. We want to add more semantics to the structure to support more cases |
9 | | We're trying to keep GraphicsLayer semantics low-level, and not include scrolling semantics in them. |
10 | | vangelis: suggesting that scrolling is similar to CSS animations; might be wasteful. Maybe add some semantics to layer tree instead of creating new semantics. |
11 | | weining: scrolling is about more than graphics, it's also about event semantics |
12 | | vangelis: this might be core-animation specific. on chromium we run animations and scrolling in the same thread |
| 2 | code is reusable[[BR]] |
| 3 | Now supports texture tile scrolling in a separate thread[[BR]] |
| 4 | We check for each ScrollView whether or not it can run in the scrolling thread[[BR]] |
| 5 | Sending approximate positions back to the main thread[[BR]] |
| 6 | Creates a disconnect between what we're showing and what WebCore thinks[[BR]] |
| 7 | Trying to create something very similar to the RenderLayer tree into the scroll thread[[BR]] |
| 8 | The scrolling tree is the data structure that is used by the scrolling thread. We want to add more semantics to the structure to support more cases[[BR]] |
| 9 | We're trying to keep GraphicsLayer semantics low-level, and not include scrolling semantics in them.[[BR]] |
| 10 | vangelis: suggesting that scrolling is similar to CSS animations; might be wasteful. Maybe add some semantics to layer tree instead of creating new semantics.[[BR]] |
| 11 | weining: scrolling is about more than graphics, it's also about event semantics[[BR]] |
| 12 | vangelis: this might be core-animation specific. on chromium we run animations and scrolling in the same thread[[BR]] |
14 | | for touch events, we'd have to pass them in the same way we pass scroll wheel events. |
15 | | We implement the physics of rubber-banding in the thread. |
16 | | data structure might work cross-process |
17 | | jamesr: using the same sync mechanism as graphics-layers. Qt has the same problem. Glitches if trying to sync graphics-layers and scroll-tree separately. |
18 | | smfr: trying to avoid putting css semantics on GraphicsLayer. |
19 | | jamesr: we're manipulating the platform-layers under the hood. Part of the assumptions of the ScrollingCoordinator is the multithread architecture of CA |
20 | | noamr: some of the RenderLayer/GraphicsLayer semantics make this problem harder. This relates to jcharffaix's presentation. |
21 | | vangelis: seems natural to set the relation in the GraphicsLayer tree. |
22 | | noamr: we're mixing graphics and input events, need separation of concerns |
23 | | jamesr: it's a question of whether or not this is done in GraphicsLayer or in PlatformLayer |
| 14 | for touch events, we'd have to pass them in the same way we pass scroll wheel events.[[BR]] |
| 15 | We implement the physics of rubber-banding in the thread.[[BR]] |
| 16 | data structure might work cross-process[[BR]] |
| 17 | jamesr: using the same sync mechanism as graphics-layers. Qt has the same problem. Glitches if trying to sync graphics-layers and scroll-tree separately.[[BR]] |
| 18 | smfr: trying to avoid putting css semantics on GraphicsLayer.[[BR]] |
| 19 | jamesr: we're manipulating the platform-layers under the hood. Part of the assumptions of the ScrollingCoordinator is the multithread architecture of CA[[BR]] |
| 20 | noamr: some of the RenderLayer/GraphicsLayer semantics make this problem harder. This relates to jchaffraix's presentation.[[BR]] |
| 21 | vangelis: seems natural to set the relation in the GraphicsLayer tree.[[BR]] |
| 22 | noamr: we're mixing graphics and input events, need separation of concerns[[BR]] |
| 23 | jamesr: it's a question of whether or not this is done in GraphicsLayer or in PlatformLayer[[BR]] |
25 | | vangelis: should we try to unify some of the tiling implementations? |
26 | | weinig: is there a unifying piece? TextureMapper, CA and Chromium work completely differently. |
27 | | darin: easier to share when there's not a thick platform to build on top, such as CA |
28 | | weining: might run into the same issues, like CA thread-safety guarantees |
| 25 | vangelis: should we try to unify some of the tiling implementations?[[BR]] |
| 26 | weinig: is there a unifying piece? TextureMapper, CA and Chromium work completely differently.[[BR]] |
| 27 | darin: easier to share when there's not a thick platform to build on top, such as CA[[BR]] |
| 28 | weining: might run into the same issues, like CA thread-safety guarantees[[BR]] |
30 | | ScrollingCoordinator only works in the main thread, the scrolling thread can be spawned from any other thread. |
31 | | We pass scrolling-position messages back to the render thread from the scrolling thread. |
32 | | The interface we're using for tile-cache is reusable by other ports. |
33 | | jcharffaix: we're trying to split the render-layers, it's orthogonal to the scroll discussion. |
34 | | weining: making an effort to make the scrollableAreas smaller, e.g. by only allocating an Animator when it's actually necessary. |
35 | | jcharffaix: it's about separation of concerns as well as memory saving. |
| 30 | ScrollingCoordinator only works in the main thread, the scrolling thread can be spawned from any other thread.[[BR]] |
| 31 | We pass scrolling-position messages back to the render thread from the scrolling thread.[[BR]] |
| 32 | The interface we're using for tile-cache is reusable by other ports.[[BR]] |
| 33 | jchaffraix: we're trying to split the render-layers, it's orthogonal to the scroll discussion.[[BR]] |
| 34 | weining: making an effort to make the scrollableAreas smaller, e.g. by only allocating an Animator when it's actually necessary.[[BR]] |
| 35 | jchaffraix: it's about separation of concerns as well as memory saving.[[BR]] |
39 | | vangelis: what do we do with fixed-position and stacking context. This breaks some popular sites (techcrunch). |
40 | | weining: we want to put enough information into the scrolling tree. |
41 | | smfr: you could also make a stacking context. |
42 | | weinig: fighting in the CSS WG to make stacking-contexts make more sense. |
43 | | jamesr: thinking about separating to 3 planes |
44 | | weinig: if we can think of ways to optimize RenderLayers, we can do that there |
| 39 | vangelis: what do we do with fixed-position and stacking context. This breaks some popular sites (techcrunch).[[BR]] |
| 40 | weining: we want to put enough information into the scrolling tree.[[BR]] |
| 41 | smfr: you could also make a stacking context.[[BR]] |
| 42 | weinig: fighting in the CSS WG to make stacking-contexts make more sense.[[BR]] |
| 43 | jamesr: thinking about separating to 3 planes[[BR]] |
| 44 | weinig: if we can think of ways to optimize RenderLayers, we can do that there[[BR]] |