Title: [258880] trunk
Revision
258880
Author
[email protected]
Date
2020-03-23 15:44:54 -0700 (Mon, 23 Mar 2020)

Log Message

Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724

Patch by James Darpinian <[email protected]> on 2020-03-06
Reviewed by Dean Jackson.

Re-landing after r258875.

These EGL context attributes are important to make ANGLE's validation correct for
WebGL contexts. ROBUST_RESOURCE_INITIALIZATION is especially important; the lack
of it may be a root cause of some of the test flakiness we have seen. With this
change WebKit's EGL context attributes now match Chromium's for ANGLE/WebGL
contexts.

* platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

Modified Paths

Diff

Modified: trunk/LayoutTests/platform/ios/TestExpectations (258879 => 258880)


--- trunk/LayoutTests/platform/ios/TestExpectations	2020-03-23 22:14:38 UTC (rev 258879)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2020-03-23 22:44:54 UTC (rev 258880)
@@ -3509,3 +3509,5 @@
 # The line breaking rules changed in ICU 66. We've updated the tests to match, but old platforms won't get updated line breaking rules.
 webkit.org/b/209250 imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-015.xht [ ImageOnlyFailure ]
 webkit.org/b/209250 imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-015.xht [ ImageOnlyFailure ]
+
+webkit.org/b/207858 fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html [ Skip ]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (258879 => 258880)


--- trunk/LayoutTests/platform/mac/TestExpectations	2020-03-23 22:14:38 UTC (rev 258879)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2020-03-23 22:44:54 UTC (rev 258880)
@@ -2032,3 +2032,5 @@
 # The line breaking rules changed in ICU 66. We've updated the tests to match, but old platforms won't get updated line breaking rules.
 webkit.org/b/209250 [ Sierra+ ] imported/w3c/web-platform-tests/css/css-text/line-break/line-break-normal-015.xht [ ImageOnlyFailure ]
 webkit.org/b/209250 [ Sierra+ ] imported/w3c/web-platform-tests/css/css-text/line-break/line-break-strict-015.xht [ ImageOnlyFailure ]
+
+webkit.org/b/207858 fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (258879 => 258880)


--- trunk/Source/WebCore/ChangeLog	2020-03-23 22:14:38 UTC (rev 258879)
+++ trunk/Source/WebCore/ChangeLog	2020-03-23 22:44:54 UTC (rev 258880)
@@ -1,3 +1,21 @@
+2020-03-24  James Darpinian  <[email protected]>
+
+        Set important EGL context attributes
+        https://bugs.webkit.org/show_bug.cgi?id=208724
+
+        Reviewed by Dean Jackson.
+
+        Re-landing this change after r258875.
+
+        These EGL context attributes are important to make ANGLE's validation correct for
+        WebGL contexts. ROBUST_RESOURCE_INITIALIZATION is especially important; the lack
+        of it may be a root cause of some of the test flakiness we have seen. With this
+        change WebKit's EGL context attributes now match Chromium's for ANGLE/WebGL
+        contexts.
+
+        * platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
+        (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
+
 2020-03-23  Michael Catanzaro  <[email protected]>
 
         [GTK] Allow distributors to brand user agent

Modified: trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm (258879 => 258880)


--- trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm	2020-03-23 22:14:38 UTC (rev 258879)
+++ trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm	2020-03-23 22:44:54 UTC (rev 258880)
@@ -347,6 +347,15 @@
     }
     eglContextAttributes.append(EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE);
     eglContextAttributes.append(EGL_TRUE);
+    // WebGL requires that all resources are cleared at creation.
+    eglContextAttributes.append(EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE);
+    eglContextAttributes.append(EGL_TRUE);
+    // WebGL doesn't allow client arrays.
+    eglContextAttributes.append(EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE);
+    eglContextAttributes.append(EGL_FALSE);
+    // WebGL doesn't allow implicit creation of objects on bind.
+    eglContextAttributes.append(EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM);
+    eglContextAttributes.append(EGL_FALSE);
 
     if (strstr(displayExtensions, "EGL_ANGLE_power_preference")) {
         eglContextAttributes.append(EGL_POWER_PREFERENCE_ANGLE);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to