Bug 221310

Summary: [GPUP] Move UseGPUProcessForMediaEnabled from WebPreferencesInternal to WebPreferencesExperimental
Product: WebKit Reporter: Peng Liu <peng.liu6>
Component: MediaAssignee: Peng Liu <peng.liu6>
Status: RESOLVED FIXED    
Severity: Normal CC: eric.carlson, ews-watchlist, glenn, jer.noble, mkwst, philipj, sam, sergio, tsavell, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=221830
https://bugs.webkit.org/show_bug.cgi?id=221920
Attachments:
Description Flags
WIP patch
none
Update test expectations
none
WIP patch
none
WIP patch
none
WIP patch
none
Update some related API tests
none
WIP patch
none
WIP patch
none
WIP patch
none
Patch
none
Revise the patch based on Sam's comment
none
Fix build failures on iOS none

Peng Liu
Reported 2021-02-02 19:47:53 PST
This change will enable "UseGPUProcessForMedia" on WebKitTestRunner by default. So we will need to update TestExpectations.
Attachments
WIP patch (2.54 KB, patch)
2021-02-02 19:50 PST, Peng Liu
no flags
Update test expectations (14.34 KB, patch)
2021-02-10 16:25 PST, Peng Liu
no flags
WIP patch (15.85 KB, patch)
2021-02-11 18:03 PST, Peng Liu
no flags
WIP patch (17.45 KB, patch)
2021-02-11 21:40 PST, Peng Liu
no flags
WIP patch (19.78 KB, patch)
2021-02-12 10:28 PST, Peng Liu
no flags
Update some related API tests (23.64 KB, patch)
2021-02-12 11:21 PST, Peng Liu
no flags
WIP patch (24.06 KB, patch)
2021-02-12 13:58 PST, Peng Liu
no flags
WIP patch (37.81 KB, patch)
2021-02-12 20:17 PST, Peng Liu
no flags
WIP patch (41.13 KB, patch)
2021-02-12 22:27 PST, Peng Liu
no flags
Patch (42.16 KB, patch)
2021-02-13 12:36 PST, Peng Liu
no flags
Revise the patch based on Sam's comment (43.97 KB, patch)
2021-02-13 19:14 PST, Peng Liu
no flags
Fix build failures on iOS (44.00 KB, patch)
2021-02-13 20:59 PST, Peng Liu
no flags
Peng Liu
Comment 1 2021-02-02 19:50:06 PST
Created attachment 419095 [details] WIP patch
Radar WebKit Bug Importer
Comment 2 2021-02-09 19:48:12 PST
Peng Liu
Comment 3 2021-02-10 16:25:54 PST
Created attachment 419918 [details] Update test expectations
Peng Liu
Comment 4 2021-02-11 18:03:03 PST
Created attachment 420075 [details] WIP patch
Peng Liu
Comment 5 2021-02-11 21:40:47 PST
Created attachment 420096 [details] WIP patch
Peng Liu
Comment 6 2021-02-12 10:28:36 PST
Created attachment 420143 [details] WIP patch
Peng Liu
Comment 7 2021-02-12 11:21:13 PST
Created attachment 420153 [details] Update some related API tests
Peng Liu
Comment 8 2021-02-12 13:58:10 PST
Created attachment 420175 [details] WIP patch
Peng Liu
Comment 9 2021-02-12 20:17:15 PST
Created attachment 420205 [details] WIP patch
Peng Liu
Comment 10 2021-02-12 22:27:32 PST
Created attachment 420210 [details] WIP patch
Peng Liu
Comment 11 2021-02-13 12:36:11 PST
Sam Weinig
Comment 12 2021-02-13 15:31:08 PST
Comment on attachment 420225 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=420225&action=review > Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:70 > auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); > - for (_WKInternalDebugFeature *feature in [WKPreferences _internalDebugFeatures]) { > + for (_WKExperimentalFeature *feature in [WKPreferences _experimentalFeatures]) { > if ([feature.key isEqualToString:@"UseGPUProcessForMediaEnabled"]) { > - [[configuration preferences] _setEnabled:YES forInternalDebugFeature:feature]; > + [[configuration preferences] _setEnabled:YES forExperimentalFeature:feature]; > break; > } So you know, there is no need to do this kind of looping for tests. You WKPreferencesSetBoolValueForKeyForTesting([configuration preferences], true, WKStringCreateWithUTF8("UseGPUProcessForMediaEnabled")); (or something like that). It will just ignore it if it doesn't know the string.
Peng Liu
Comment 13 2021-02-13 19:14:47 PST
Created attachment 420232 [details] Revise the patch based on Sam's comment
Peng Liu
Comment 14 2021-02-13 19:18:59 PST
Comment on attachment 420225 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=420225&action=review >> Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:70 >> } > > So you know, there is no need to do this kind of looping for tests. You WKPreferencesSetBoolValueForKeyForTesting([configuration preferences], true, WKStringCreateWithUTF8("UseGPUProcessForMediaEnabled")); (or something like that). It will just ignore it if it doesn't know the string. Good idea! Fixed. Thanks!
Peng Liu
Comment 15 2021-02-13 20:59:35 PST
Created attachment 420235 [details] Fix build failures on iOS
EWS
Comment 16 2021-02-14 18:08:56 PST
Committed r272842: <https://commits.webkit.org/r272842> All reviewed patches have been landed. Closing bug and clearing flags on attachment 420235 [details].
Truitt Savell
Comment 17 2021-02-15 10:33:20 PST
It looks like the changes in https://trac.webkit.org/changeset/272842/webkit caused 30~ test crashes on Mac Debug WK2 Build: https://build.webkit.org/#/builders/23/builds/144 Results: https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/r272842%20(144)/results.html The history of these tests makes it fairly clear this started with r272842
Truitt Savell
Comment 18 2021-02-15 10:34:29 PST
Crash: Application Specific Information: CRASHING TEST: fast/canvas/webgl/texImage2D-mse-flipY-true.html Thread 0 Crashed: 0 com.apple.JavaScriptCore 0x00000007141e538e WTFCrash + 14 (Assertions.cpp:295) 1 com.apple.WebKit 0x00000006e0006e0b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671) 2 com.apple.WebKit 0x00000006e089e3d8 WebKit::GPUProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 232 (GPUProcessConnectionMessageReceiver.cpp:50) 3 com.apple.WebKit 0x00000006e00866c4 IPC::Connection::dispatchMessage(IPC::Decoder&) + 516 (Connection.cpp:1032) 4 com.apple.WebKit 0x00000006e00877e0 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 528 (Connection.cpp:1132) 5 com.apple.WebKit 0x00000006e0087e70 IPC::Connection::dispatchOneIncomingMessage() + 208 (Connection.cpp:1201) 6 com.apple.WebKit 0x00000006e00a8858 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_8::operator()() + 88 (Connection.cpp:1001) 7 com.apple.WebKit 0x00000006e00a876e WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_8, void>::call() + 30 (Function.h:52)
Peng Liu
Comment 19 2021-02-15 13:29:05 PST
Filed bug 221920 for it.
Note You need to log in before you can comment on or make changes to this bug.