RESOLVED FIXED 233676
[WinCairo] Tiling scroll support
https://bugs.webkit.org/show_bug.cgi?id=233676
Summary [WinCairo] Tiling scroll support
Fujii Hironori
Reported 2021-11-30 19:30:49 PST
[WinCairo] Tiling scroll support
Attachments
WIP patch (6.92 KB, patch)
2021-11-30 19:31 PST, Fujii Hironori
no flags
WIP patch (35.05 KB, patch)
2021-12-13 17:54 PST, Fujii Hironori
no flags
WIP patch (41.54 KB, patch)
2022-01-10 23:27 PST, Fujii Hironori
no flags
Patch (46.41 KB, patch)
2022-01-11 20:25 PST, Fujii Hironori
no flags
Patch for landing (47.34 KB, patch)
2022-01-12 18:07 PST, Fujii Hironori
no flags
Fujii Hironori
Comment 1 2021-11-30 19:31:15 PST
Created attachment 445503 [details] WIP patch
Fujii Hironori
Comment 2 2021-12-13 17:54:42 PST
Created attachment 447091 [details] WIP patch
Fujii Hironori
Comment 3 2022-01-10 23:27:22 PST
Created attachment 448832 [details] WIP patch
Fujii Hironori
Comment 4 2022-01-11 16:15:00 PST
This WIP patch doesn't render video frames in AC mode. Filed: Bug 235088 – [MediaFoundation] Invalidate only the videa area using MediaPlayer::repaint(), not the whole FrameView
Fujii Hironori
Comment 5 2022-01-11 20:25:50 PST
Don Olmstead
Comment 6 2022-01-12 17:27:48 PST
Comment on attachment 448901 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=448901&action=review LGTM. Just some minor questions and nits. > Source/WebCore/platform/graphics/texmap/TextureMapperSparseBackingStore.cpp:8 > + * This library is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. I don't think this should count as a derivative work because the debug drawing requires the same calls. To me this seems like you've done a lot more than just copy paste code here. > Source/WebCore/platform/graphics/texmap/TextureMapperSparseBackingStore.h:8 > + * This library is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. Ditto > Source/WebKit/GPUProcess/graphics/wc/WCScene.cpp:55 > + std::optional<WebCore::TextureMapperSparseBackingStore> backingStore; Any particular reason you're preferring std::optional here? I'm not saying its the wrong choice just curious. > Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:558 > + update.hasBackingStore = false; Any additional updates need to happen here to remove the store? > Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:631 > + TransformationMatrix currentTransform; > + if (customTransform) > + currentTransform = *customTransform; > + else if (m_transform) > + currentTransform = *m_transform; > + > + transform.multiply(transformByApplyingAnchorPoint(currentTransform)); Is it worth doing any optimization here for the else case where currentTransform would be the identity?
Fujii Hironori
Comment 7 2022-01-12 17:54:12 PST
Comment on attachment 448901 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=448901&action=review Thank you for the review. >> Source/WebCore/platform/graphics/texmap/TextureMapperSparseBackingStore.cpp:8 >> + * version 2.1 of the License, or (at your option) any later version. > > I don't think this should count as a derivative work because the debug drawing requires the same calls. To me this seems like you've done a lot more than just copy paste code here. Will fix. >> Source/WebKit/GPUProcess/graphics/wc/WCScene.cpp:55 >> + std::optional<WebCore::TextureMapperSparseBackingStore> backingStore; > > Any particular reason you're preferring std::optional here? I'm not saying its the wrong choice just curious. TextureMapperTiledBackingStore is a RefCounted class, but TextureMapperSparseBackingStore isn't because it doesn't need to be ref-counted. >> Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:558 >> + update.hasBackingStore = false; > > Any additional updates need to happen here to remove the store? I don't think so. >> Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:631 >> + transform.multiply(transformByApplyingAnchorPoint(currentTransform)); > > Is it worth doing any optimization here for the else case where currentTransform would be the identity? I just copied the code from GraphicsLayerCA::layerTransform. I haven't benchmarked it yet. I don't know how hot this part is. BTW, TransformState::applyTransform has isIntegerTranslation fast path.
Fujii Hironori
Comment 8 2022-01-12 18:07:14 PST
Created attachment 449017 [details] Patch for landing
Fujii Hironori
Comment 9 2022-01-12 18:17:27 PST
Comment on attachment 449017 [details] Patch for landing Clearing flags on attachment: 449017 Committed r287967 (245996@trunk): <https://commits.webkit.org/245996@trunk>
Fujii Hironori
Comment 10 2022-01-12 18:17:32 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 11 2022-01-12 18:18:17 PST
Note You need to log in before you can comment on or make changes to this bug.