Bug 187385 - [Nicosia] Add a platform layer concept
Summary: [Nicosia] Add a platform layer concept
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Zan Dobersek
URL:
Keywords:
Depends on: 187514 187693 187749 187751 187899 187901 187941 187946 188158 188340 188341 188344 188348 188405 188548 188550 188693 188847 188849 188850 188881
Blocks: 198475 184143
  Show dependency treegraph
 
Reported: 2018-07-06 04:33 PDT by Zan Dobersek
Modified: 2019-08-23 04:02 PDT (History)
6 users (show)

See Also:


Attachments
WIP (116.42 KB, patch)
2018-07-06 04:35 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff
WIP (158.26 KB, patch)
2018-08-03 03:37 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff
WIP (114.88 KB, patch)
2018-08-09 23:23 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff
WIP (110.37 KB, patch)
2018-08-16 10:50 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff
WIP (108.06 KB, patch)
2018-08-22 09:19 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff
WIP (57.01 KB, patch)
2018-10-02 05:54 PDT, Zan Dobersek
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Zan Dobersek 2018-07-06 04:33:41 PDT
Platform layer objects should be used to back GraphicsLayer objects for the ports leveraging the Nicosia facilities. These facilities are currently used exclusively through CoordinatedGraphics, which means CoordinatedGraphicsLayer implementation would start using a platform layer for all its state management before applying it to the rendering pipeline, compared to the current way where all this state is being managed through CoordinatedGraphicsState objects that are then combined-and-applied in CoordinatedGraphicsScene and applied to the rendering pipeline.

When the state mutations are made thread-safe, this can be further extended to integrate with features like asynchronous scrolling or threaded painting.

Regarding applications to the rendering pipeline, while TextureMapper-specific implementations will have to exist, the platform layering work in principle shouldn't be tied to TextureMapper. It's just nothing else exists at the moment.
Comment 1 Zan Dobersek 2018-07-06 04:35:57 PDT
Created attachment 344418 [details]
WIP
Comment 2 Zan Dobersek 2018-08-03 03:37:11 PDT
Created attachment 346471 [details]
WIP
Comment 3 Zan Dobersek 2018-08-09 23:23:52 PDT
Created attachment 346895 [details]
WIP
Comment 4 Zan Dobersek 2018-08-16 10:50:55 PDT
Created attachment 347274 [details]
WIP
Comment 5 Zan Dobersek 2018-08-22 09:19:49 PDT
Created attachment 347805 [details]
WIP

Now with some more code removal.
Comment 6 Zan Dobersek 2018-10-02 05:54:02 PDT
Created attachment 351378 [details]
WIP

Includes the remaining set of changes that enable asynchronous scrolling (modulo bugs). Doesn't yet add kinetic scrolling capabilities.
Comment 7 Jonas 2019-07-05 06:14:30 PDT
Is there any update about this issue ?
Comment 8 Zan Dobersek 2019-08-23 04:02:09 PDT
The platform layer structures are now in use, so this bug can be closed.