Bug 264683

Summary: "context lost" when getting WebGL context
Product: WebKit Reporter: Andre-John Mas <andrejohn.mas>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Blocker CC: ahmad.saleem792, dino, kbr, kkinnunen
Priority: P2    
Version: Safari 17   
Hardware: iPhone / iPad   
OS: iOS 17   

Description Andre-John Mas 2023-11-11 12:29:53 PST
We are no longer able to get the WebGL context on iOS or iPadOS using release 17, with a "context lost" error being logged.

The issues was discovered using Three.JS, but further investigation reveals this impacts all WebGL applications (those I have tested with).

The following code is enough to cause the issue:

```
  function initWebGL () {
	const canvas = document.querySelector('#canvas');
	canvas.width = window.innerWidth;
	canvas.height = window.innerHeight;

	const glOptions = {
	  // antialias: false,
	  // alpha: false,
	  // premultipliedAlpha: false
	};

	const gl = canvas.getContext('webgl2', glOptions)
	  || canvas.getContext('webgl', glOptions)
	  || canvas.getContext('experimental-webgl', glOptions);
  }

  initWebGL();
```

Note, this does not impact Safari (17.0 (19616.1.27.211.1)) on MacOS X 14.

Tested with: iOS 17.0.3, iPadOS 17.0.3 and MacOSX 14 (Safari).

Note, discussion in the Three.JS forum: https://discourse.threejs.org/t/three-js-broken-on-ios-17-with-context-lost/58025
Comment 1 Ahmad Saleem 2023-11-11 14:31:53 PST

*** This bug has been marked as a duplicate of bug 264684 ***