ANGLE: Fix last WebGL conformance regressions
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2019 20:04:13 +0000 (20:04 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2019 20:04:13 +0000 (20:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=205306

Fixes the last few WebGL conformance regressions when enabling ANGLE on AMD GPUs on Mac.
The combination of alpha:false and antialias:true was broken, and validation of
non-ascii characters in comments was broken by a recent change to the test.

Patch by James Darpinian <jdarpinian@chromium.org> on 2019-12-19
Reviewed by Dean Jackson.

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::shaderSource):
* platform/graphics/angle/GraphicsContext3DANGLE.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp

index 3384eb3..2a0a35c 100644 (file)
@@ -1,3 +1,19 @@
+2019-12-19  James Darpinian  <jdarpinian@chromium.org>
+
+        ANGLE: Fix last WebGL conformance regressions
+        https://bugs.webkit.org/show_bug.cgi?id=205306
+
+        Fixes the last few WebGL conformance regressions when enabling ANGLE on AMD GPUs on Mac.
+        The combination of alpha:false and antialias:true was broken, and validation of
+        non-ascii characters in comments was broken by a recent change to the test.
+
+        Reviewed by Dean Jackson.
+
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::shaderSource):
+        * platform/graphics/angle/GraphicsContext3DANGLE.cpp:
+        (WebCore::GraphicsContext3D::reshapeFBOs):
+
 2019-12-19  Alan Bujtas  <zalan@apple.com>
 
         Unreviewed, rolling out r253711.
index b21ea8a..e234eb8 100644 (file)
@@ -3648,11 +3648,15 @@ void WebGLRenderingContextBase::shaderSource(WebGLShader* shader, const String&
 {
     if (isContextLostOrPending() || !validateWebGLObject("shaderSource", shader))
         return;
+#if USE(ANGLE)
+    m_context->shaderSource(objectOrZero(shader), string);
+#else
     String stringWithoutComments = StripComments(string).result();
     if (!validateString("shaderSource", stringWithoutComments))
         return;
-    shader->setSource(string);
     m_context->shaderSource(objectOrZero(shader), stringWithoutComments);
+#endif
+    shader->setSource(string);
 }
 
 void WebGLRenderingContextBase::stencilFunc(GC3Denum func, GC3Dint ref, GC3Duint mask)
index 99fc92b..77bb3b2 100644 (file)
@@ -165,7 +165,7 @@ bool GraphicsContext3D::reshapeFBOs(const IntSize& size)
         GLint sampleCount = std::min(4, maxSampleCount);
         gl::BindFramebuffer(GL_FRAMEBUFFER, m_multisampleFBO);
         gl::BindRenderbuffer(GL_RENDERBUFFER, m_multisampleColorBuffer);
-        getExtensions().renderbufferStorageMultisample(GL_RENDERBUFFER, sampleCount, GL_RGBA8, width, height);
+        getExtensions().renderbufferStorageMultisample(GL_RENDERBUFFER, sampleCount, m_internalColorFormat, width, height);
         gl::FramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_multisampleColorBuffer);
         if (m_attrs.stencil || m_attrs.depth) {
             gl::BindRenderbuffer(GL_RENDERBUFFER, m_multisampleDepthStencilBuffer);