Bug 224888

Summary: [CMake] Support USE_ANGLE_EGL on additional platforms
Product: WebKit Reporter: Don Olmstead <don.olmstead>
Component: CMakeAssignee: Don Olmstead <don.olmstead>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, aperez, dino, ews-watchlist, graouts, gyuyoung.kim, kbr, kkinnunen, kondapallykalyan, kpiddington, mattst88, mcatanzaro, ryuan.choi, sergio, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
WIP Patch
none
WIP Patch
ews-feeder: commit-queue-
WIP Patch
none
Patch
kbr: review+
WIP Patch
none
WIP Patch
none
WIP Patch
ews-feeder: commit-queue-
WIP Patch
ews-feeder: commit-queue-
Patch
none
Patch for Igalia to get started none

Don Olmstead
Reported 2021-04-21 12:54:24 PDT
...
Attachments
WIP Patch (22.46 KB, patch)
2021-04-21 12:57 PDT, Don Olmstead
no flags
WIP Patch (23.82 KB, patch)
2021-04-21 19:10 PDT, Don Olmstead
ews-feeder: commit-queue-
WIP Patch (32.71 KB, patch)
2021-04-23 14:51 PDT, Don Olmstead
no flags
Patch (35.60 KB, patch)
2021-05-12 13:37 PDT, Don Olmstead
kbr: review+
WIP Patch (34.79 KB, patch)
2021-05-26 11:25 PDT, Don Olmstead
no flags
WIP Patch (35.48 KB, patch)
2021-05-26 12:18 PDT, Don Olmstead
no flags
WIP Patch (36.06 KB, patch)
2021-05-26 12:37 PDT, Don Olmstead
ews-feeder: commit-queue-
WIP Patch (37.04 KB, patch)
2021-05-26 13:03 PDT, Don Olmstead
ews-feeder: commit-queue-
Patch (38.80 KB, patch)
2021-05-26 13:58 PDT, Don Olmstead
no flags
Patch for Igalia to get started (2.29 KB, patch)
2021-05-26 14:06 PDT, Don Olmstead
no flags
Don Olmstead
Comment 1 2021-04-21 12:57:58 PDT Comment hidden (obsolete)
Don Olmstead
Comment 2 2021-04-21 19:10:12 PDT Comment hidden (obsolete)
EWS Watchlist
Comment 3 2021-04-21 19:11:49 PDT Comment hidden (obsolete)
Don Olmstead
Comment 4 2021-04-23 14:51:29 PDT
Created attachment 426951 [details] WIP Patch
Radar WebKit Bug Importer
Comment 5 2021-04-28 12:55:19 PDT
Don Olmstead
Comment 6 2021-05-12 13:37:00 PDT
Kenneth Russell
Comment 7 2021-05-12 15:17:18 PDT
Comment on attachment 428411 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428411&action=review Looks good to me overall - a few small comments. The real proof is whether things build with these changes. r+ > Source/ThirdParty/ANGLE/PlatformGTK.cmake:49 > + list(APPEND ANGLE_DEFINITIONS WL_EGL_PLATFORM) Understanding the comment above, still, won't some Wayland definitions be lost with this if/elseif construction if both X11 and Wayland are defined? Should that be fixed? > Source/ThirdParty/ANGLE/PlatformGTK.cmake:50 > + else () Wondering whether this should be something like if (!ENABLE_X11_TARGET && !ENABLE_WAYLAND_TARGET), and detached from this if/else chain. > Source/WebKit/CMakeLists.txt:320 > + # Prepend to make sure the ANGLE headers are found before system headers This kind of search path manipulation seemed fragile, which is why the code elsewhere in WebKit that calls into ANGLE on macOS uses more explicitly-scoped include paths, and processing is/was done when publishing these headers to the outside world. Not 100% sure if this is exactly the same issue, but something to think about. > Tools/Scripts/update-angle:169 > +./gni-to-cmake.py src/libANGLE/renderer/metal/BUILD.gn Metal.cmake --prepend 'src/libANGLE/renderer/metal/' Great to see these updates.
Michael Catanzaro
Comment 8 2021-05-13 11:31:36 PDT
Comment on attachment 428411 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428411&action=review >> Source/WebKit/CMakeLists.txt:320 >> + # Prepend to make sure the ANGLE headers are found before system headers > > This kind of search path manipulation seemed fragile, which is why the code elsewhere in WebKit that calls into ANGLE on macOS uses more explicitly-scoped include paths, and processing is/was done when publishing these headers to the outside world. Not 100% sure if this is exactly the same issue, but something to think about. Won't this cause the UI process to link to ANGLE? I think the UI process should not be allowed to link to ANGLE? This could cause weird issues in applications that don't expect to wind up using WebKit's special private OpenGL rather than mesa, right? I wonder what Adrian thinks.
Don Olmstead
Comment 9 2021-05-26 11:25:28 PDT Comment hidden (obsolete)
Don Olmstead
Comment 10 2021-05-26 12:18:29 PDT Comment hidden (obsolete)
Don Olmstead
Comment 11 2021-05-26 12:37:56 PDT Comment hidden (obsolete)
Don Olmstead
Comment 12 2021-05-26 13:03:43 PDT Comment hidden (obsolete)
Don Olmstead
Comment 13 2021-05-26 13:58:02 PDT
Don Olmstead
Comment 14 2021-05-26 14:01:18 PDT
Comment on attachment 428411 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428411&action=review >> Source/ThirdParty/ANGLE/PlatformGTK.cmake:50 >> + else () > > Wondering whether this should be something like if (!ENABLE_X11_TARGET && !ENABLE_WAYLAND_TARGET), and detached from this if/else chain. This should be fixed in the patch for landing >>> Source/WebKit/CMakeLists.txt:320 >>> + # Prepend to make sure the ANGLE headers are found before system headers >> >> This kind of search path manipulation seemed fragile, which is why the code elsewhere in WebKit that calls into ANGLE on macOS uses more explicitly-scoped include paths, and processing is/was done when publishing these headers to the outside world. Not 100% sure if this is exactly the same issue, but something to think about. > > Won't this cause the UI process to link to ANGLE? I think the UI process should not be allowed to link to ANGLE? This could cause weird issues in applications that don't expect to wind up using WebKit's special private OpenGL rather than mesa, right? I wonder what Adrian thinks. This is potentially fragile BUT this shouldn't be a problem for GTK Michael. USE_ANGLE_EGL means use ANGLE as the OpenGL ES implementation for everything. So GTK won't hit that because it compiles with USE_ANGLE_WEBGL which just means use ANGLE for WebGL support and that's it.
Don Olmstead
Comment 15 2021-05-26 14:04:59 PDT
Ok so I believe I have addressed all concerns with this patch. The GTK EWS for the last patch ran successfully with USE_ANGLE_WEBGL enabled. It had some local changes that aren't for upstream but were just to get a green build. I'm sure there's probably more changes for GTK but I feel this patch is good to go and anything else with getting GTK working should be done in a follow up.
Don Olmstead
Comment 16 2021-05-26 14:06:25 PDT
Created attachment 429792 [details] Patch for Igalia to get started This contains the local changes to get EWS to complete successfully to continue investigation of turning on ANGLE for WebGL 2 on GTK.
Kenneth Russell
Comment 17 2021-05-26 14:25:28 PDT
Comment on attachment 429791 [details] Patch Latest patch still looks good to me.
Michael Catanzaro
Comment 18 2021-05-26 14:32:59 PDT
(In reply to Don Olmstead from comment #14) > This is potentially fragile BUT this shouldn't be a problem for GTK Michael. > > USE_ANGLE_EGL means use ANGLE as the OpenGL ES implementation for > everything. So GTK won't hit that because it compiles with USE_ANGLE_WEBGL > which just means use ANGLE for WebGL support and that's it. OK, I agree this would only be a problem if USE_ANGLE_EGL were to be turned on.
EWS
Comment 19 2021-05-26 15:49:22 PDT
Committed r278130 (238180@main): <https://commits.webkit.org/238180@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 429791 [details].
Note You need to log in before you can comment on or make changes to this bug.