Bug 202835 - Support eGPUs correctly in ANGLE backend
Summary: Support eGPUs correctly in ANGLE backend
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
Depends on:
Blocks: webglangle
  Show dependency treegraph
Reported: 2019-10-10 17:47 PDT by Kenneth Russell
Modified: 2022-06-30 16:39 PDT (History)
5 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Kenneth Russell 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.
Comment 1 Sanjay Kumar 2020-05-15 18:52:00 PDT
This seems like biggest blocker in switching to ANGLE.
Any update ?
Comment 2 James Darpinian 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).
Comment 3 Brent Fulgham 2022-06-30 16:39:24 PDT
We believe this is fixed in modern Apple platforms.