Bug 202835

Summary: Support eGPUs correctly in ANGLE backend
Product: WebKit Reporter: Kenneth Russell <kbr>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: bfulgham, dino, hypertree, jdarpinian, justin_fan
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 198948    

Kenneth Russell
Reported 2019-10-10 17:47:08 PDT
WebKit's current WebGL implementation supports external GPUs (eGPUs) correctly, specifically when the browser window is moved from one screen to another driven by an eGPU. ANGLE doesn't currently contain the code required to let this work correctly (the associated CGLSetVirtualScreen calls, and others). Investigation will be needed to understand how exactly to make this work. For example, should WebKit's code continue to register a CGDisplayRegisterReconfigurationCallback, and call into ANGLE via some new extension so ANGLE can set the CGL renderer ID of its internal CGLContextObj? This is a blocker to switching to the ANGLE backend - it would be unfortunate to regress support for eGPUs.
Attachments
Sanjay Kumar
Comment 1 2020-05-15 18:52:00 PDT
This seems like biggest blocker in switching to ANGLE. Any update ?
James Darpinian
Comment 2 2020-05-18 12:59:41 PDT
We should test this, but I believe it is fixed already. CGLSetVirtualScreen is called outside of ANGLE, in the same place as in the non-ANGLE path (GraphicsContextGLOpenGLCocoa.mm).
Brent Fulgham
Comment 3 2022-06-30 16:39:24 PDT
We believe this is fixed in modern Apple platforms.
Note You need to log in before you can comment on or make changes to this bug.