Implement GraphicsContextGLOpenGL::checkGPUStatus() for ANGLE backend GLES/GL implementation: #if USE(OPENGL) - CGLContextObj cglContext = static_cast<CGLContextObj>(platformGraphicsContextGL()); - CGLGetParameter(cglContext, kCGLCPGPURestartStatus, &restartStatus); - if (restartStatus == kCGLCPGPURestartStatusBlacklisted) { - LOG(WebGL, "The GPU has blocklisted us (%p). Terminating.", this); - exit(EX_OSERR); - } - if (restartStatus == kCGLCPGPURestartStatusCaused) { - LOG(WebGL, "The GPU has reset us (%p). Lose the context.", this); - forceContextLost(); - CGLSetCurrentContext(0); - } -#elif USE(OPENGL_ES) - EAGLContext* currentContext = static_cast<EAGLContext*>(PlatformGraphicsContextGL()); - [currentContext getParameter:kEAGLCPGPURestartStatus to:&restartStatus]; - if (restartStatus == kEAGLCPGPURestartStatusCaused || restartStatus == kEAGLCPGPURestartStatusBlacklisted) { - LOG(WebGL, "The GPU has either reset or blocklisted us (%p). Lose the context.", this); - forceContextLost(); - [EAGLContext setCurrentContext:0]; - }
<rdar://problem/70288090>