RESOLVED FIXED 231012
WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays
https://bugs.webkit.org/show_bug.cgi?id=231012
Summary WebGL low-power and high-performance contexts should use different ANGLE Meta...
Kimmo Kinnunen
Reported 2021-09-30 01:34:33 PDT
WebGL low-power and high-performance contexts should use different ANGLE EGLDisplays
Attachments
Patch (27.02 KB, patch)
2021-10-19 05:31 PDT, Kimmo Kinnunen
no flags
Patch (27.07 KB, patch)
2021-10-19 22:30 PDT, Kimmo Kinnunen
no flags
Patch (27.08 KB, patch)
2021-10-20 05:53 PDT, Kimmo Kinnunen
no flags
Patch (27.16 KB, patch)
2021-10-20 10:12 PDT, Kimmo Kinnunen
no flags
Patch for landing (27.20 KB, patch)
2021-10-21 02:02 PDT, Kimmo Kinnunen
no flags
Giuseppe
Comment 1 2021-10-05 04:03:01 PDT
Hello, any updates on the issue? Can I help in some way? I could create a patch if possible, only need a few inputs. This issue is a bit critical for the project I'm currently working on, to be able to give a nice experience to the users using Safari.
Kenneth Russell
Comment 2 2021-10-05 12:36:05 PDT
There's currently a problem inside ANGLE where despite passing different attribute lists to multiple calls to eglGetPlatformDisplay, the same EGLDisplay handle is being returned. This issue is currently being discussed upstream in the ANGLE repository: Reintroduce GPU power preference selection code into Metal backend https://bugs.chromium.org/p/angleproject/issues/detail?id=6143 We're hoping to decide on a fix expediently, and be able to either roll it into WebKit along with an ANGLE update, or cherry-pick it into WebKit and resolve conflicts later during the next ANGLE roll.
Giuseppe
Comment 3 2021-10-06 12:14:24 PDT
Thanks for the explanation Kenneth, I'll follow the ANGLE thread.
Radar WebKit Bug Importer
Comment 4 2021-10-07 01:35:16 PDT
Kimmo Kinnunen
Comment 5 2021-10-19 05:31:03 PDT
Kimmo Kinnunen
Comment 6 2021-10-19 22:30:36 PDT
Kimmo Kinnunen
Comment 7 2021-10-20 05:53:10 PDT
Kimmo Kinnunen
Comment 8 2021-10-20 10:12:21 PDT
Kimmo Kinnunen
Comment 9 2021-10-20 10:14:06 PDT
Alexey, would the TestWebKitAPI related changes look ok?
Alexey Proskuryakov
Comment 10 2021-10-20 10:19:05 PDT
A few comments about TestWebKitAPI: - API tests run in parallel. Is it OK to run this code in parallel with other tests? - Why copyright 2019 for TestGraphicsContextGLOpenGLCocoa.mm. - There is probably a reason, but it seems strange that RuntimeApplicationChecks.h is included WebCoreUtilities.h that doesn't do any runtime application checks.
Kimmo Kinnunen
Comment 11 2021-10-21 02:02:21 PDT
Created attachment 441998 [details] Patch for landing
Kimmo Kinnunen
Comment 12 2021-10-22 00:06:36 PDT
(In reply to Alexey Proskuryakov from comment #10) > A few comments about TestWebKitAPI: > - API tests run in parallel. Is it OK to run this code in parallel with > other tests? Yes, works in parallel when the parallelism means that each TestWebKitAPI process executes only one test at a time, but multiple TestWebKitAPI processes can be running in parallel. > - Why copyright 2019 for TestGraphicsContextGLOpenGLCocoa.mm. Done > - There is probably a reason, but it seems strange that > RuntimeApplicationChecks.h is included WebCoreUtilities.h that doesn't do > any runtime application checks. It contains functionality that modifies the state checked by RuntimeApplicationChecks.
Kimmo Kinnunen
Comment 13 2021-10-22 00:07:38 PDT
This should be compatible but redundant when upstream fix https://chromium-review.googlesource.com/c/angle/angle/+/3231986 is merged back.
Kimmo Kinnunen
Comment 14 2021-10-22 00:08:25 PDT
.. and as such the code portions can be reverted and the test preserved after the merge.
EWS
Comment 15 2021-10-22 00:36:07 PDT
Committed r284669 (243389@main): <https://commits.webkit.org/243389@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 441998 [details].
Giuseppe
Comment 16 2021-10-22 08:53:39 PDT
I see happily that the issue was fixed! Thanks for the work on it. Any idea on when it might land on Safari? As it's a bit critical for WebGL apps.
Note You need to log in before you can comment on or make changes to this bug.