| Summary: | WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Kimmo Kinnunen <kkinnunen> | ||||||||||||
| Component: | WebGL | Assignee: | Kimmo Kinnunen <kkinnunen> | ||||||||||||
| Status: | RESOLVED FIXED | ||||||||||||||
| Severity: | Normal | CC: | ap, dino, dustin.kerstein, ews-watchlist, geofflang, giuseppesalvo, gman, jonahr, kbr, kkinnunen, kondapallykalyan, kpiddington, webkit-bug-importer | ||||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||||
| Version: | WebKit Local Build | ||||||||||||||
| Hardware: | Unspecified | ||||||||||||||
| OS: | Unspecified | ||||||||||||||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=227408 https://bugs.webkit.org/show_bug.cgi?id=228298 https://bugs.webkit.org/show_bug.cgi?id=231946 |
||||||||||||||
| Bug Depends on: | 231011 | ||||||||||||||
| Bug Blocks: | |||||||||||||||
| Attachments: |
|
||||||||||||||
|
Description
Kimmo Kinnunen
2021-09-30 01:34:33 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. 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. Thanks for the explanation Kenneth, I'll follow the ANGLE thread. Created attachment 441712 [details]
Patch
Created attachment 441849 [details]
Patch
Created attachment 441873 [details]
Patch
Created attachment 441892 [details]
Patch
Alexey, would the TestWebKitAPI related changes look ok? 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. Created attachment 441998 [details]
Patch for landing
(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. This should be compatible but redundant when upstream fix https://chromium-review.googlesource.com/c/angle/angle/+/3231986 is merged back. .. and as such the code portions can be reverted and the test preserved after the merge. 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]. 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. |