WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
147256
[CoordinatedGraphics] Rearrange uses of USE_COORDINATED_GRAPHICS_MULTIPROCESS
https://bugs.webkit.org/show_bug.cgi?id=147256
Summary
[CoordinatedGraphics] Rearrange uses of USE_COORDINATED_GRAPHICS_MULTIPROCESS
Gyuyoung Kim
Reported
2015-07-24 00:54:50 PDT
CoordinatedGraphics can work only when COORDINATED_GRAPHICS_MULTIPROCESS is enabled because the codes are already too coupled with whole WK2's coordinated graphics implementation. Even it is almost impossible to build WebKit EFL with disabling the COORDINATED_GRAPHICS_MULTIPROCESS guard. So I would recommend to remove this guard and let's only support COORDINATED_GRAPHICS_THREADED guard for EFL and GTK ports.
Attachments
Patch
(18.80 KB, patch)
2015-07-24 01:01 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(22.22 KB, patch)
2015-07-25 18:18 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(21.77 KB, patch)
2015-07-27 01:40 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(19.84 KB, patch)
2015-07-29 01:09 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(19.69 KB, patch)
2015-07-29 06:22 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(21.67 KB, patch)
2015-07-30 01:22 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Patch
(21.06 KB, patch)
2015-07-30 09:36 PDT
,
Gyuyoung Kim
no flags
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
Gyuyoung Kim
Comment 1
2015-07-24 01:01:09 PDT
Created
attachment 257445
[details]
Patch
Gwang Yoon Hwang
Comment 2
2015-07-24 01:18:28 PDT
Comment on
attachment 257445
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257445&action=review
> Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:42 > #include "CoordinatedDrawingArea.h"
If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we cannot separate MULTIPROCESS specific part of codes from THREADED mode. For instance, the threaded mode do not uses CoordinatedDrawingArea.
Gyuyoung Kim
Comment 3
2015-07-24 01:40:17 PDT
(In reply to
comment #2
)
> Comment on
attachment 257445
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=257445&action=review
> > > Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:42 > > #include "CoordinatedDrawingArea.h" > > If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we cannot separate > MULTIPROCESS specific part of codes from THREADED mode. > For instance, the threaded mode do not uses CoordinatedDrawingArea.
Can't we use COORDINATED_GRAPHICS_THREADED guard for the specific part ?
Gyuyoung Kim
Comment 4
2015-07-24 01:49:01 PDT
(In reply to
comment #3
)
> (In reply to
comment #2
) > > Comment on
attachment 257445
[details]
> > Patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=257445&action=review
> > > > > Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:42 > > > #include "CoordinatedDrawingArea.h" > > > > If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we cannot separate > > MULTIPROCESS specific part of codes from THREADED mode. > > For instance, the threaded mode do not uses CoordinatedDrawingArea. > > Can't we use COORDINATED_GRAPHICS_THREADED guard for the specific part ?
Many codes are related with COORDINATED_GRAPHICS_MULTIPROCESS guard though, it didn't use it. So now we can't build WebKit, and even if we succeed to build WebKit disabled COORDINATED_GRAPHICS_MULTIPROCESS, I guess it doesn't work. That's why I suggest to use COORDINATED_GRAPHICS_MULTIPROCESS by default.
Gwang Yoon Hwang
Comment 5
2015-07-24 05:09:24 PDT
(In reply to
comment #4
)
> (In reply to
comment #3
) > > (In reply to
comment #2
) > > > Comment on
attachment 257445
[details]
> > > Patch > > > > > > View in context: > > >
https://bugs.webkit.org/attachment.cgi?id=257445&action=review
> > > > > > > Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:42 > > > > #include "CoordinatedDrawingArea.h" > > > > > > If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we cannot separate > > > MULTIPROCESS specific part of codes from THREADED mode. > > > For instance, the threaded mode do not uses CoordinatedDrawingArea. > > > > Can't we use COORDINATED_GRAPHICS_THREADED guard for the specific part ? > > Many codes are related with COORDINATED_GRAPHICS_MULTIPROCESS guard though, > it didn't use it. So now we can't build WebKit, and even if we succeed to > build WebKit disabled COORDINATED_GRAPHICS_MULTIPROCESS, I guess it doesn't > work. That's why I suggest to use COORDINATED_GRAPHICS_MULTIPROCESS by > default.
COORDINATED_GRAPHICS_MULTIPROCESS is stands for to distinguish codes which are specific to process mode. If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we need to use !USE(COORDINATED_GRAPHICS_THREADED). However, I don't like it: I'll interpret this as a single thread mode instead of process mode.
Gyuyoung Kim
Comment 6
2015-07-25 18:18:59 PDT
Created
attachment 257524
[details]
Patch
Gyuyoung Kim
Comment 7
2015-07-25 18:29:04 PDT
(In reply to
comment #5
)
> (In reply to
comment #4
) > > (In reply to
comment #3
) > > > (In reply to
comment #2
) > > > > Comment on
attachment 257445
[details]
> > > > Patch > > > > > > > > View in context: > > > >
https://bugs.webkit.org/attachment.cgi?id=257445&action=review
> > > > > > > > > Source/WebKit2/WebProcess/WebPage/DrawingArea.cpp:42 > > > > > #include "CoordinatedDrawingArea.h" > > > > > > > > If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we cannot separate > > > > MULTIPROCESS specific part of codes from THREADED mode. > > > > For instance, the threaded mode do not uses CoordinatedDrawingArea. > > > > > > Can't we use COORDINATED_GRAPHICS_THREADED guard for the specific part ? > > > > Many codes are related with COORDINATED_GRAPHICS_MULTIPROCESS guard though, > > it didn't use it. So now we can't build WebKit, and even if we succeed to > > build WebKit disabled COORDINATED_GRAPHICS_MULTIPROCESS, I guess it doesn't > > work. That's why I suggest to use COORDINATED_GRAPHICS_MULTIPROCESS by > > default. > > COORDINATED_GRAPHICS_MULTIPROCESS is stands for to distinguish codes which > are specific to process mode. > If we remove COORDINATED_GRAPHICS_MULTIPROCESS, we need to use > !USE(COORDINATED_GRAPHICS_THREADED). However, I don't like it: I'll > interpret this as a single thread mode instead of process mode.
I see. However I still think that we need to re-arrange use of COORDINATED_GRAPHICS_MULTIPROCESS and COORDINATED_GRAPHICS_THREADED because those things have not been maintained so far. (Even I fail to build latest WebKit GTK with "--threaded-compositor".) This patch is probably first movement to maintain coordinated graphics from my side. Anyway I keep COORDINATED_GRAPHICS_MULTIPROCESS to distinguish between process model and threaded model. However I'd like to remove COORDINATED_GRAPHICS_MULTIPROCESS and COORDINATED_GRAPHICS_THREADED in future, then we will use one of those features using a setting flag.
Gwang Yoon Hwang
Comment 8
2015-07-26 23:37:10 PDT
Comment on
attachment 257524
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257524&action=review
I'm agree to clean up multiprocess part of coordinated graphics, because it is too coupled with webview and webkit2 api, which makes complicated code structure. However, I'm not sure to switch threaded / process model in runtime. Because it looks too complicated. Maybe clean up UI Process part first would be preferable.
> Source/WebKit2/UIProcess/WebPageProxy.cpp:125 > #include "CoordinatedLayerTreeHostProxyMessages.h"
I'm not sure whether we should include CoordinaedLayerTreeHostProxy in the threaded mode.
> Source/WebKit2/WebProcess/WebPage/WebPage.h:1079 > void findZoomableAreaForPoint(const WebCore::IntPoint&, const WebCore::IntSize& area);
This message is specific to MULTIPROCESS, do you want to implement in the threaded compositor, too?
Gyuyoung Kim
Comment 9
2015-07-27 01:40:33 PDT
Created
attachment 257553
[details]
Patch
Gyuyoung Kim
Comment 10
2015-07-27 01:41:47 PDT
Comment on
attachment 257524
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257524&action=review
>> Source/WebKit2/UIProcess/WebPageProxy.cpp:125 >> #include "CoordinatedLayerTreeHostProxyMessages.h" > > I'm not sure whether we should include CoordinaedLayerTreeHostProxy in the threaded mode.
Done.
>> Source/WebKit2/WebProcess/WebPage/WebPage.h:1079 >> void findZoomableAreaForPoint(const WebCore::IntPoint&, const WebCore::IntSize& area); > > This message is specific to MULTIPROCESS, do you want to implement in the threaded compositor, too?
Ok. I continue to use COORDINATED_GRAPHICS_MULTIPROCESS for findZoomableAreaForPoint().
Gwang Yoon Hwang
Comment 11
2015-07-27 06:42:10 PDT
Comment on
attachment 257553
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257553&action=review
> Source/WebKit2/WebProcess/WebPage/DrawingArea.h:-115 > -#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
In threaded mode, we are not using CoordinatedLayerTreeHostMessage, so it should not be added.
> Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h:77 > +#if USE(COORDINATED_GRAPHICS)
Ditto.
> Source/WebKit2/WebProcess/WebPage/WebPage.cpp:-215 > -#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
Because in threaded mode we are not using CoordinatedLayerTreeHostMessages, It would be remained as _MULTIPROCESS
> Source/WebKit2/WebProcess/WebPage/WebPage.cpp:-494 > -#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
Ditto
> Source/WebKit2/WebProcess/WebPage/WebPage.cpp:-589 > -#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
Ditto
> Source/WebKit2/WebProcess/WebPage/WebPage.cpp:-3615 > -#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
Ditto.
Gyuyoung Kim
Comment 12
2015-07-29 01:09:25 PDT
Created
attachment 257741
[details]
Patch
Gyuyoung Kim
Comment 13
2015-07-29 06:22:05 PDT
Created
attachment 257746
[details]
Patch
Gyuyoung Kim
Comment 14
2015-07-29 06:24:08 PDT
Yoon, for your information I succeed to build WebKit GTK with --threaded-compositor option.
Gwang Yoon Hwang
Comment 15
2015-07-29 23:33:36 PDT
Comment on
attachment 257746
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257746&action=review
except some nitpik, I like this first step.
> Source/WebKit2/ChangeLog:9 > + breaks when USE_COORDINATED_GRAPHICS_MULTIPROCESS is off.
I think this patch is a first step to enable COORDINATED_GRAPHICS_MULTIPROCESS and COORDINATED_GRAPHICS_THREADED in EFL and GTK port.
> Source/WebKit2/UIProcess/CoordinatedGraphics/WebPageProxyCoordinatedGraphics.cpp:53 > +#endif
I like this approach to mark coordinated graphics specific part in UI Process.
> Source/WebKit2/UIProcess/WebPageProxy.h:532 > #endif
WebPageProxy::didRenderFrame is only used in multiprocess mode, As you guard it explicitly at above modification: CoordinatedLayerTreeHostProxy.cpp.
> Source/WebKit2/UIProcess/WebPageProxy.h:615 > #endif
WebPageProxy::commitPageTransitionViewport is also used in multiprocess mode. I think we don't have to handle this in WebPage in threaded mode, too.
Gyuyoung Kim
Comment 16
2015-07-30 01:22:44 PDT
Created
attachment 257823
[details]
Patch
Gyuyoung Kim
Comment 17
2015-07-30 01:23:47 PDT
(In reply to
comment #15
)
> Comment on
attachment 257746
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=257746&action=review
> > except some nitpik, I like this first step.
Thanks !
> > > Source/WebKit2/ChangeLog:9 > > + breaks when USE_COORDINATED_GRAPHICS_MULTIPROCESS is off. > > I think this patch is a first step to enable > COORDINATED_GRAPHICS_MULTIPROCESS and COORDINATED_GRAPHICS_THREADED in EFL > and GTK port. > > > Source/WebKit2/UIProcess/CoordinatedGraphics/WebPageProxyCoordinatedGraphics.cpp:53 > > +#endif > > I like this approach to mark coordinated graphics specific part in UI > Process. > > > Source/WebKit2/UIProcess/WebPageProxy.h:532 > > #endif > > WebPageProxy::didRenderFrame is only used in multiprocess mode, > As you guard it explicitly at above modification: > CoordinatedLayerTreeHostProxy.cpp. > > > Source/WebKit2/UIProcess/WebPageProxy.h:615 > > #endif > > WebPageProxy::commitPageTransitionViewport is also used in multiprocess mode. > I think we don't have to handle this in WebPage in threaded mode, too.
Ok, all done.
Gyuyoung Kim
Comment 18
2015-07-30 09:36:21 PDT
Created
attachment 257837
[details]
Patch
Gwang Yoon Hwang
Comment 19
2015-07-30 23:06:58 PDT
Comment on
attachment 257837
[details]
Patch Looks good to me!
Gyuyoung Kim
Comment 20
2015-08-03 07:20:47 PDT
(In reply to
comment #19
)
> Comment on
attachment 257837
[details]
> Patch > > Looks good to me!
Ossy, could you take a look this ?
Benjamin Poulain
Comment 21
2015-08-03 15:29:30 PDT
Comment on
attachment 257837
[details]
Patch rs=me. I am not really familiar with that code but I don't see anything wrong with this.
WebKit Commit Bot
Comment 22
2015-08-03 18:17:10 PDT
Comment on
attachment 257837
[details]
Patch Clearing flags on attachment: 257837 Committed
r187795
: <
http://trac.webkit.org/changeset/187795
>
WebKit Commit Bot
Comment 23
2015-08-03 18:17:16 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug