Title: [256076] trunk/Source/ThirdParty/ANGLE
Revision
256076
Author
commit-qu...@webkit.org
Date
2020-02-07 16:03:28 -0800 (Fri, 07 Feb 2020)

Log Message

Try adding glBindFramebuffer flush workaround to ANGLE as remedy for flaky WebGL tests
https://bugs.webkit.org/show_bug.cgi?id=206625

Patch by Kenneth Russell <k...@chromium.org> on 2020-02-07
Reviewed by Dean Jackson.

* include/platform/FeaturesGL.h:
* src/libANGLE/renderer/gl/StateManagerGL.cpp:
(rx::StateManagerGL::bindFramebuffer):
* src/libANGLE/renderer/gl/renderergl_utils.cpp:
(rx::nativegl_gl::InitializeFeatures):

Modified Paths

Diff

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (256075 => 256076)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-02-07 23:39:01 UTC (rev 256075)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-02-08 00:03:28 UTC (rev 256076)
@@ -1,3 +1,16 @@
+2020-02-07  Kenneth Russell  <k...@chromium.org>
+
+        Try adding glBindFramebuffer flush workaround to ANGLE as remedy for flaky WebGL tests
+        https://bugs.webkit.org/show_bug.cgi?id=206625
+
+        Reviewed by Dean Jackson.
+
+        * include/platform/FeaturesGL.h:
+        * src/libANGLE/renderer/gl/StateManagerGL.cpp:
+        (rx::StateManagerGL::bindFramebuffer):
+        * src/libANGLE/renderer/gl/renderergl_utils.cpp:
+        (rx::nativegl_gl::InitializeFeatures):
+
 2020-02-05  Dean Jackson  <d...@apple.com>
 
         Fix MacCatalyst build.

Modified: trunk/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h (256075 => 256076)


--- trunk/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h	2020-02-07 23:39:01 UTC (rev 256075)
+++ trunk/Source/ThirdParty/ANGLE/include/platform/FeaturesGL.h	2020-02-08 00:03:28 UTC (rev 256076)
@@ -411,6 +411,12 @@
         "rewrite_row_major_matrices", FeatureCategory::OpenGLWorkarounds,
         "Rewrite row major matrices in shaders as column major as a driver bug workaround",
         &members, "http://anglebug.com/2273"};
+
+    // Flush before glBindFramebuffer as a driver bug workaround if necessary.
+    Feature flushBeforeBindFramebuffer = {
+        "flush_before_bindframebuffer", FeatureCategory::OpenGLWorkarounds,
+        "Flush before glBindFramebuffer as a driver bug workaround",
+        &members, "https://bugs.webkit.org/show_bug.cgi?id=206625"};
 };
 
 inline FeaturesGL::FeaturesGL()  = default;

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp (256075 => 256076)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp	2020-02-07 23:39:01 UTC (rev 256075)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp	2020-02-08 00:03:28 UTC (rev 256076)
@@ -586,6 +586,9 @@
 
 void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer)
 {
+    if (mFeatures.flushBeforeBindFramebuffer.enabled)
+        mFunctions->flush();
+
     switch (type)
     {
         case GL_FRAMEBUFFER:

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp (256075 => 256076)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp	2020-02-07 23:39:01 UTC (rev 256075)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp	2020-02-08 00:03:28 UTC (rev 256076)
@@ -1649,6 +1649,9 @@
                             // IsApple() && functions->standard == STANDARD_GL_DESKTOP);
                             // TODO(anglebug.com/2273): diagnose crashes with this workaround.
                             false);
+
+    // bugs.webkit.org/show_bug.cgi?id=206625
+    ANGLE_FEATURE_CONDITION(features, flushBeforeBindFramebuffer, IsApple() && isIntel);
 }
 
 void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFeatures *features)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to