Title: [264700] trunk

Diff

Modified: trunk/LayoutTests/ChangeLog (264699 => 264700)


--- trunk/LayoutTests/ChangeLog	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/LayoutTests/ChangeLog	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1,3 +1,16 @@
+2020-07-22  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, reverting r264691.
+        https://bugs.webkit.org/show_bug.cgi?id=214642
+
+        Regressed fast/mediastream/captureStream/canvas3d.html
+
+        Reverted changeset:
+
+        "[WebGL2] Implement multiple render target entry points"
+        https://bugs.webkit.org/show_bug.cgi?id=211156
+        https://trac.webkit.org/changeset/264691
+
 2020-07-22  Youenn Fablet  <you...@apple.com>
 
         KeepAlive fetch should not be blocked in pagehide event handlers

Modified: trunk/LayoutTests/fast/canvas/webgl/webgl2/sequences-expected.txt (264699 => 264700)


--- trunk/LayoutTests/fast/canvas/webgl/webgl2/sequences-expected.txt	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/LayoutTests/fast/canvas/webgl/webgl2/sequences-expected.txt	2020-07-22 16:21:15 UTC (rev 264700)
@@ -2,12 +2,6 @@
 CONSOLE MESSAGE: WebGL: INVALID_VALUE: vertexAttribI4iv: array too small
 CONSOLE MESSAGE: WebGL: INVALID_VALUE: vertexAttribI4uiv: array too small
 CONSOLE MESSAGE: WebGL: INVALID_VALUE: vertexAttribI4uiv: array too small
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferiv: invalid array size / srcOffset
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferiv: invalid array size / srcOffset
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferuiv: invalid array size / srcOffset
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferuiv: invalid array size / srcOffset
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferfv: invalid array size / srcOffset
-CONSOLE MESSAGE: WebGL: INVALID_VALUE: clearBufferfv: invalid array size / srcOffset
 
 PASS uniform1uiv data with typed array of type ui 
 PASS uniform1uiv data with sequence of type ui 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt (264699 => 264700)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1,5 +1,200 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/reading/read-pixels-from-fbo-test.html
-[ PASS ] All tests passed
+[ 1: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 2: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 3: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 4: PASS ] Color read back as expected
+[ 5: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 6: PASS ] Color read back as expected
+[ 7: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 8: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 9: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 10: FAIL ] Expected color = 250,0,0,0, was = 0,0,0,1
+[ 11: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 12: FAIL ] Expected color = 250,0,0,0, was = 0
+[ 13: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 14: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 15: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 16: FAIL ] Expected color = -126,0,0,0, was = 0,0,0,1
+[ 17: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 18: FAIL ] Expected color = -126,0,0,0, was = 0
+[ 19: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 20: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 21: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 22: FAIL ] Expected color = 30001,0,0,0, was = 0,0,0,1
+[ 23: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 24: FAIL ] Expected color = 30001,0,0,0, was = 0
+[ 25: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 26: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 27: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 28: FAIL ] Expected color = -14189,0,0,0, was = 0,0,0,1
+[ 29: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 30: FAIL ] Expected color = -14189,0,0,0, was = 0
+[ 31: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 32: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 33: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 34: FAIL ] Expected color = 126726,0,0,0, was = 0,0,0,1
+[ 35: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 36: FAIL ] Expected color = 126726,0,0,0, was = 0
+[ 37: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 38: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 39: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 40: FAIL ] Expected color = -126726,0,0,0, was = 0,0,0,1
+[ 41: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 42: FAIL ] Expected color = -126726,0,0,0, was = 0
+[ 43: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 44: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 45: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 46: PASS ] Color read back as expected
+[ 47: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 48: PASS ] Color read back as expected
+[ 49: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 50: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 51: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 52: PASS ] Color read back as expected
+[ 53: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 54: PASS ] Color read back as expected
+[ 55: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 56: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 57: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 58: PASS ] Color read back as expected
+[ 59: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 60: PASS ] Color read back as expected
+[ 61: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 62: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 63: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 64: PASS ] Color read back as expected
+[ 65: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 66: PASS ] Color read back as expected
+[ 67: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 68: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 69: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 70: PASS ] Color read back as expected
+[ 71: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 72: PASS ] Color read back as expected
+[ 73: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 74: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 75: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 76: PASS ] Color read back as expected
+[ 77: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 78: PASS ] Color read back as expected
+[ 79: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 80: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 81: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 82: PASS ] Color read back as expected
+[ 83: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 84: PASS ] Color read back as expected
+[ 85: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 86: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 87: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 88: PASS ] Color read back as expected
+[ 89: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 90: PASS ] Color read back as expected
+[ 91: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 92: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 93: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 94: PASS ] Color read back as expected
+[ 95: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 96: PASS ] Color read back as expected
+[ 97: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 98: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 99: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 100: PASS ] Color read back as expected
+[ 101: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 102: PASS ] Color read back as expected
+[ 103: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 104: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 105: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 106: PASS ] Color read back as expected
+[ 107: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 108: PASS ] Color read back as expected
+[ 109: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 110: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 111: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 112: PASS ] Color read back as expected
+[ 113: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 114: PASS ] Color read back as expected
+[ 115: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 116: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 117: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 118: PASS ] Color read back as expected
+[ 119: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 120: PASS ] Color read back as expected
+[ 121: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 122: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 123: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 124: PASS ] Color read back as expected
+[ 125: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 126: PASS ] Color read back as expected
+[ 127: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 128: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 129: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 130: PASS ] Color read back as expected
+[ 131: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 132: PASS ] Color read back as expected
+[ 133: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 134: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 135: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 136: PASS ] Color read back as expected
+[ 137: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 138: PASS ] Color read back as expected
+[ 139: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 140: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 141: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 142: PASS ] Color read back as expected
+[ 143: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 144: PASS ] Color read back as expected
+[ 145: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 146: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 147: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 148: FAIL ] Expected color = 127,0,255,178, was = 0,0,0,0
+[ 149: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 150: FAIL ] Expected color = 127,0,255,178, was = 0,0,0,0
+[ 151: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 152: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 153: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 154: FAIL ] Expected color = -55,56,80,127, was = 0,0,0,0
+[ 155: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 156: FAIL ] Expected color = -55,56,80,127, was = 0,0,0,0
+[ 157: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 158: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 159: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 160: FAIL ] Expected color = 178,0,127,3, was = 0,0,0,0
+[ 161: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 162: FAIL ] Expected color = 178,0,127,3, was = 0,0,0,0
+[ 163: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 164: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 165: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 166: FAIL ] Expected color = 14189,6735,0,19, was = 0,0,0,0
+[ 167: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 168: FAIL ] Expected color = 14189,6735,0,19, was = 0,0,0,0
+[ 169: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 170: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 171: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 172: FAIL ] Expected color = 14189,-6735,0,19, was = 0,0,0,0
+[ 173: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 174: FAIL ] Expected color = 14189,-6735,0,19, was = 0,0,0,0
+[ 175: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 176: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 177: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 178: FAIL ] Expected color = 126726,6726,98765,2015, was = 0,0,0,0
+[ 179: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 180: FAIL ] Expected color = 126726,6726,98765,2015, was = 0,0,0,0
+[ 181: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 182: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 183: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 184: FAIL ] Expected color = 126726,-6726,-98765,2015, was = 0,0,0,0
+[ 185: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 186: FAIL ] Expected color = 126726,-6726,-98765,2015, was = 0,0,0,0
+[ 187: PASS ] getError was expected value: NO_ERROR : Setting up fbo should generate no error
+[ 188: PASS ] getError was expected value: NO_ERROR : Clear color should generate no error
+[ 189: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 190: PASS ] Color read back as expected
+[ 191: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 192: PASS ] Color read back as expected
+[ 193: PASS ] getError was expected value: NO_ERROR : readPixels should generate no error
+[ 194: PASS ] Color read back as expected
+[ 195: PASS ] successfullyParsed is true
+[ FAIL ] 26 failures reported
 

Modified: trunk/Source/WebCore/ChangeLog (264699 => 264700)


--- trunk/Source/WebCore/ChangeLog	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/ChangeLog	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1,3 +1,16 @@
+2020-07-22  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, reverting r264691.
+        https://bugs.webkit.org/show_bug.cgi?id=214642
+
+        Regressed fast/mediastream/captureStream/canvas3d.html
+
+        Reverted changeset:
+
+        "[WebGL2] Implement multiple render target entry points"
+        https://bugs.webkit.org/show_bug.cgi?id=211156
+        https://trac.webkit.org/changeset/264691
+
 2020-07-22  Youenn Fablet  <you...@apple.com>
 
         KeepAlive fetch should not be blocked in pagehide event handlers

Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (264699 => 264700)


--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1759,7 +1759,7 @@
         }
         // Because the backbuffer is simulated on all current WebKit ports, we need to change BACK to COLOR_ATTACHMENT0.
         GCGLenum value = (bufs[0] == GraphicsContextGL::BACK) ? GraphicsContextGL::COLOR_ATTACHMENT0 : GraphicsContextGL::NONE;
-        m_context->drawBuffers(1, &value);
+        graphicsContextGL()->getExtensions().drawBuffersEXT(1, &value);
         setBackDrawBuffer(bufs[0]);
     } else {
         if (n > getMaxDrawBuffers()) {
@@ -1776,48 +1776,92 @@
     }
 }
 
-void WebGL2RenderingContext::clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, Int32List&& values, GCGLuint srcOffset)
+void WebGL2RenderingContext::clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, Int32List&&, GCGLuint)
 {
-    if (isContextLostOrPending() || !validateClearBuffer("clearBufferiv", buffer, values.length(), srcOffset))
-        return;
-
-    m_context->clearBufferiv(buffer, drawbuffer, values.data(), srcOffset);
-    updateBuffersToAutoClear(ClearBufferCaller::ClearBufferiv, buffer, drawbuffer);
+    switch (buffer) {
+    case GraphicsContextGL::COLOR:
+        if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferiv", "buffer index out of range");
+            return;
+        }
+        // TODO: Call clearBufferiv, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::STENCIL:
+        if (drawbuffer) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferiv", "buffer index must be 0");
+            return;
+        }
+        // TODO: Call clearBufferiv, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::DEPTH:
+    case GraphicsContextGL::DEPTH_STENCIL:
+    default:
+        synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "clearBufferiv", "buffer argument must be COLOR or STENCIL");
+        break;
+    }
 }
 
-void WebGL2RenderingContext::clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, Uint32List&& values, GCGLuint srcOffset)
+void WebGL2RenderingContext::clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, Uint32List&&, GCGLuint)
 {
-    if (isContextLostOrPending() || !validateClearBuffer("clearBufferuiv", buffer, values.length(), srcOffset))
-        return;
-
-    m_context->clearBufferuiv(buffer, drawbuffer, values.data(), srcOffset);
-    updateBuffersToAutoClear(ClearBufferCaller::ClearBufferuiv, buffer, drawbuffer);
+    switch (buffer) {
+    case GraphicsContextGL::COLOR:
+        if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferuiv", "buffer index out of range");
+            return;
+        }
+        // TODO: Call clearBufferuiv, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::DEPTH:
+    case GraphicsContextGL::STENCIL:
+    case GraphicsContextGL::DEPTH_STENCIL:
+    default:
+        synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "clearBufferuiv", "buffer argument must be COLOR");
+        break;
+    }
 }
 
-void WebGL2RenderingContext::clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, Float32List&& values, GCGLuint srcOffset)
+void WebGL2RenderingContext::clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, Float32List&&, GCGLuint)
 {
-    if (isContextLostOrPending() || !validateClearBuffer("clearBufferfv", buffer, values.length(), srcOffset))
-        return;
-
-    m_context->clearBufferfv(buffer, drawbuffer, values.data(), srcOffset);
-    // clearBufferiv and clearBufferuiv will currently generate an error
-    // if they're called against the default back buffer. If support for
-    // extended canvas color spaces is added, this call might need to be
-    // added to the other versions.
-    markContextChanged();
-    updateBuffersToAutoClear(ClearBufferCaller::ClearBufferfv, buffer, drawbuffer);
+    switch (buffer) {
+    case GraphicsContextGL::COLOR:
+        if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferfv", "buffer index out of range");
+            return;
+        }
+        // TODO: Call clearBufferfv, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::DEPTH:
+        if (drawbuffer) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferfv", "buffer index must be 0");
+            return;
+        }
+        // TODO: Call clearBufferfv, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::STENCIL:
+    case GraphicsContextGL::DEPTH_STENCIL:
+    default:
+        synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "clearBufferfv", "buffer argument must be COLOR OR DEPTH");
+        break;
+    }
 }
 
-void WebGL2RenderingContext::clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat depth, GCGLint stencil)
+void WebGL2RenderingContext::clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat, GCGLint)
 {
-    if (isContextLostOrPending())
-        return;
-
-    m_context->clearBufferfi(buffer, drawbuffer, depth, stencil);
-    // This might have been used to clear the depth and stencil buffers
-    // of the default back buffer.
-    markContextChanged();
-    updateBuffersToAutoClear(ClearBufferCaller::ClearBufferfi, buffer, drawbuffer);
+    switch (buffer) {
+    case GraphicsContextGL::DEPTH_STENCIL:
+        if (drawbuffer) {
+            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "clearBufferfv", "buffer index must be 0");
+            return;
+        }
+        // TODO: Call clearBufferfi, requires gl3.h and ES3/gl.h
+        break;
+    case GraphicsContextGL::COLOR:
+    case GraphicsContextGL::DEPTH:
+    case GraphicsContextGL::STENCIL:
+    default:
+        synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "clearBufferfv", "buffer argument must be DEPTH_STENCIL");
+        break;
+    }
 }
 
 RefPtr<WebGLQuery> WebGL2RenderingContext::createQuery()
@@ -3263,35 +3307,6 @@
     }
 }
 
-bool WebGL2RenderingContext::validateClearBuffer(const char* functionName, GCGLenum buffer, size_t size, GCGLuint srcOffset)
-{
-    Checked<GLsizei, RecordOverflow> checkedSize(size);
-    checkedSize -= srcOffset;
-    if (checkedSize.hasOverflowed()) {
-        synthesizeGLError(GraphicsContextGL::INVALID_VALUE, functionName, "invalid array size / srcOffset");
-        return false;
-    }
-    switch (buffer) {
-    case GraphicsContextGL::COLOR:
-        if (checkedSize.unsafeGet() < 4) {
-            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, functionName, "invalid array size / srcOffset");
-            return false;
-        }
-        break;
-    case GraphicsContextGL::DEPTH:
-    case GraphicsContextGL::STENCIL:
-        if (checkedSize.unsafeGet() < 1) {
-            synthesizeGLError(GraphicsContextGL::INVALID_VALUE, functionName, "invalid array size / srcOffset");
-            return false;
-        }
-        break;
-    default:
-        synthesizeGLError(GraphicsContextGL::INVALID_ENUM, functionName, "invalid buffer");
-        return false;
-    }
-    return true;
-}
-
 void WebGL2RenderingContext::uniform1fv(WebGLUniformLocation* location, Float32List data, GLuint srcOffset, GLuint srcLength)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform1fv", location, data, 1, srcOffset, srcLength))
@@ -3449,74 +3464,6 @@
 
 #undef REMOVE_BUFFER_FROM_BINDING
 
-void WebGL2RenderingContext::updateBuffersToAutoClear(ClearBufferCaller caller, GCGLenum buffer, GCGLint drawbuffer)
-{
-    // This method makes sure that we don't auto-clear any buffers which the
-    // user has manually cleared using the new ES 3.0 clearBuffer* APIs.
-
-    // If the user has a framebuffer bound, don't update the auto-clear
-    // state of the built-in back buffer.
-    if (m_framebufferBinding)
-        return;
-
-    // If the scissor test is on, assume that we can't short-circuit
-    // these clears.
-    if (m_scissorEnabled)
-        return;
-
-    // The default back buffer only has one color attachment.
-    if (drawbuffer)
-        return;
-
-    // If the call to the driver generated an error, don't claim that
-    // we've auto-cleared these buffers. The early returns below are for
-    // cases where errors will be produced.
-
-    // The default back buffer is currently always RGB(A)8, which
-    // restricts the variants which can legally be used to clear the
-    // color buffer. TODO(crbug.com/829632): this needs to be
-    // generalized.
-    switch (caller) {
-    case ClearBufferCaller::ClearBufferiv:
-        if (buffer != GraphicsContextGL::STENCIL)
-            return;
-        break;
-    case ClearBufferCaller::ClearBufferfv:
-        if (buffer != GraphicsContextGL::COLOR && buffer != GraphicsContextGL::DEPTH)
-            return;
-        break;
-    case ClearBufferCaller::ClearBufferuiv:
-        return;
-    case ClearBufferCaller::ClearBufferfi:
-        if (buffer != GraphicsContextGL::DEPTH_STENCIL)
-            return;
-        break;
-    }
-
-    GCGLbitfield buffersToClear = 0;
-
-    // Turn it into a bitfield and mask it off.
-    switch (buffer) {
-    case GraphicsContextGL::COLOR:
-        buffersToClear = GraphicsContextGL::COLOR_BUFFER_BIT;
-        break;
-    case GraphicsContextGL::DEPTH:
-        buffersToClear = GraphicsContextGL::DEPTH_BUFFER_BIT;
-        break;
-    case GraphicsContextGL::STENCIL:
-        buffersToClear = GraphicsContextGL::STENCIL_BUFFER_BIT;
-        break;
-    case GraphicsContextGL::DEPTH_STENCIL:
-        buffersToClear = GraphicsContextGL::DEPTH_BUFFER_BIT | GraphicsContextGL::STENCIL_BUFFER_BIT;
-        break;
-    default:
-        // Illegal value.
-        return;
-    }
-
-    m_context->setBuffersToAutoClear(m_context->getBuffersToAutoClear() & (~buffersToClear));
-}
-
 } // namespace WebCore
 
 #endif // ENABLE(WEBGL)

Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h (264699 => 264700)


--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h	2020-07-22 16:21:15 UTC (rev 264700)
@@ -291,7 +291,6 @@
     bool validateIndexArrayConservative(GCGLenum type, unsigned& numElementsRequired) final;
     bool validateBlendEquation(const char* functionName, GCGLenum mode) final;
     bool validateCapability(const char* functionName, GCGLenum cap) final;
-    bool validateClearBuffer(const char* functionName, GCGLenum buffer, size_t, GCGLuint srcOffset);
     bool validateFramebufferTarget(GCGLenum target) final;
     WebGLFramebuffer* getFramebufferBinding(GCGLenum target) final;
     WebGLFramebuffer* getReadFramebufferBinding() final;
@@ -318,14 +317,6 @@
 
     void uncacheDeletedBuffer(WebGLBuffer*) final;
 
-    enum class ClearBufferCaller : uint8_t {
-        ClearBufferiv,
-        ClearBufferuiv,
-        ClearBufferfv,
-        ClearBufferfi
-    };
-    void updateBuffersToAutoClear(ClearBufferCaller, GCGLenum buffer, GCGLint drawbuffer);
-
     RefPtr<WebGLFramebuffer> m_readFramebufferBinding;
     RefPtr<WebGLTransformFeedback> m_boundTransformFeedback;
     RefPtr<WebGLTransformFeedback> m_defaultTransformFeedback;

Modified: trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp (264699 => 264700)


--- trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -621,32 +621,32 @@
 
 void WebGLFramebuffer::drawBuffersIfNecessary(bool force)
 {
-    if (context()->isWebGL2() || context()->m_webglDrawBuffers) {
-        bool reset = force;
-        // This filtering works around graphics driver bugs on Mac OS X.
-        for (size_t i = 0; i < m_drawBuffers.size(); ++i) {
-            if (m_drawBuffers[i] != GraphicsContextGL::NONE && getAttachment(m_drawBuffers[i])) {
-                if (m_filteredDrawBuffers[i] != m_drawBuffers[i]) {
-                    m_filteredDrawBuffers[i] = m_drawBuffers[i];
-                    reset = true;
-                }
-            } else {
-                if (m_filteredDrawBuffers[i] != GraphicsContextGL::NONE) {
-                    m_filteredDrawBuffers[i] = GraphicsContextGL::NONE;
-                    reset = true;
-                }
+#if ENABLE(WEBGL2)
+    // FIXME: The logic here seems wrong. If we don't have WebGL 2 enabled at all, then
+    // we skip the m_webglDrawBuffers check. But if we do have WebGL 2 enabled, then we
+    // perform this check, for WebGL 1 contexts only.
+    if (!context()->m_webglDrawBuffers && !context()->isWebGL2())
+        return;
+#endif
+    bool reset = force;
+    // This filtering works around graphics driver bugs on Mac OS X.
+    for (size_t i = 0; i < m_drawBuffers.size(); ++i) {
+        if (m_drawBuffers[i] != GraphicsContextGL::NONE && getAttachment(m_drawBuffers[i])) {
+            if (m_filteredDrawBuffers[i] != m_drawBuffers[i]) {
+                m_filteredDrawBuffers[i] = m_drawBuffers[i];
+                reset = true;
             }
-        }
-        if (reset) {
-            if (context()->isWebGL2()) {
-                context()->graphicsContextGL()->drawBuffers(
-                    m_filteredDrawBuffers.size(), m_filteredDrawBuffers.data());
-            } else {
-                context()->graphicsContextGL()->getExtensions().drawBuffersEXT(
-                    m_filteredDrawBuffers.size(), m_filteredDrawBuffers.data());
+        } else {
+            if (m_filteredDrawBuffers[i] != GraphicsContextGL::NONE) {
+                m_filteredDrawBuffers[i] = GraphicsContextGL::NONE;
+                reset = true;
             }
         }
     }
+    if (reset) {
+        context()->graphicsContextGL()->getExtensions().drawBuffersEXT(
+            m_filteredDrawBuffers.size(), m_filteredDrawBuffers.data());
+    }
 }
 
 GCGLenum WebGLFramebuffer::getDrawBuffer(GCGLenum drawBuffer)

Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (264699 => 264700)


--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1100,18 +1100,14 @@
     if (isContextLostOrPending())
         return false;
 
-    if (!m_context->layerComposited() || m_layerCleared || m_preventBufferClearForInspector)
+    if (!m_context->layerComposited() || m_layerCleared
+        || m_attributes.preserveDrawingBuffer || (mask && m_framebufferBinding)
+        || m_preventBufferClearForInspector)
         return false;
 
-    GCGLbitfield buffersNeedingClearing = m_context->getBuffersToAutoClear();
+    auto contextAttributes = getContextAttributes();
+    ASSERT(contextAttributes);
 
-    if (!buffersNeedingClearing || (mask && m_framebufferBinding))
-        return false;
-
-    // Use the underlying GraphicsContext3D's attributes to take into
-    // account (for example) packed depth/stencil buffers.
-    auto contextAttributes = m_context->contextAttributes();
-
     // Determine if it's possible to combine the clear the user asked for and this clear.
     bool combinedClear = mask && !m_scissorEnabled;
 
@@ -1125,13 +1121,13 @@
         m_context->clearColor(0, 0, 0, 0);
     m_context->colorMask(true, true, true, true);
     GCGLbitfield clearMask = GraphicsContextGL::COLOR_BUFFER_BIT;
-    if (contextAttributes.depth) {
+    if (contextAttributes->depth) {
         if (!combinedClear || !m_depthMask || !(mask & GraphicsContextGL::DEPTH_BUFFER_BIT))
             m_context->clearDepth(1.0f);
         clearMask |= GraphicsContextGL::DEPTH_BUFFER_BIT;
         m_context->depthMask(true);
     }
-    if (contextAttributes.stencil) {
+    if (contextAttributes->stencil) {
         if (combinedClear && (mask & GraphicsContextGL::STENCIL_BUFFER_BIT))
             m_context->clearStencil(m_clearStencil & m_stencilMask);
         else
@@ -1139,15 +1135,11 @@
         clearMask |= GraphicsContextGL::STENCIL_BUFFER_BIT;
         m_context->stencilMaskSeparate(GraphicsContextGL::FRONT, 0xFFFFFFFF);
     }
-
+    
     GCGLenum bindingPoint = isWebGL2() ? GraphicsContextGL::DRAW_FRAMEBUFFER : GraphicsContextGL::FRAMEBUFFER;
     if (m_framebufferBinding)
         m_context->bindFramebuffer(bindingPoint, 0);
-    // If the WebGL 2.0 clearBuffer APIs already have been used to
-    // selectively clear some of the buffers, don't destroy those
-    // results.
-    m_context->clear(clearMask & buffersNeedingClearing);
-    m_context->setBuffersToAutoClear(0);
+    m_context->clear(clearMask);
 
     restoreStateAfterClear();
     if (m_framebufferBinding)

Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h (264699 => 264700)


--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1186,7 +1186,7 @@
 
     virtual void drawRangeElements(GCGLenum mode, GCGLuint start, GCGLuint end, GCGLsizei count, GCGLenum type, GCGLintptr offset) = 0;
 
-    virtual void drawBuffers(GCGLsizei n, const GCGLenum* bufs) = 0;
+    virtual void drawBuffers(const Vector<GCGLenum>& buffers) = 0;
     virtual void clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset) = 0;
     virtual void clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset) = 0;
     virtual void clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset) = 0;

Modified: trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp (264699 => 264700)


--- trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -1899,7 +1899,6 @@
 void GraphicsContextGLOpenGL::markLayerComposited()
 {
     m_layerComposited = true;
-    resetBuffersToAutoClear();
 
     for (auto* client : copyToVector(m_clients))
         client->didComposite();
@@ -2308,29 +2307,41 @@
     gl::DrawRangeElements(mode, start, end, count, type, reinterpret_cast<void*>(offset));
 }
 
-void GraphicsContextGLOpenGL::drawBuffers(GCGLsizei n, const GCGLenum* bufs)
+void GraphicsContextGLOpenGL::drawBuffers(const Vector<GCGLenum>& buffers)
 {
-    gl::DrawBuffers(n, bufs);
+    UNUSED_PARAM(buffers);
 }
 
 void GraphicsContextGLOpenGL::clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset)
 {
-    gl::ClearBufferiv(buffer, drawbuffer, values + srcOffset);
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
 }
 
 void GraphicsContextGLOpenGL::clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset)
 {
-    gl::ClearBufferuiv(buffer, drawbuffer, values + srcOffset);
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
 }
 
 void GraphicsContextGLOpenGL::clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset)
 {
-    gl::ClearBufferfv(buffer, drawbuffer, values + srcOffset);
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
 }
 
 void GraphicsContextGLOpenGL::clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat depth, GCGLint stencil)
 {
-    gl::ClearBufferfi(buffer, drawbuffer, depth, stencil);
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(stencil);
 }
 
 void GraphicsContextGLOpenGL::deleteQuery(PlatformGLObject query)

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp (264699 => 264700)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -271,34 +271,6 @@
 
 } // anonymous namespace
 
-void GraphicsContextGLOpenGL::resetBuffersToAutoClear()
-{
-    GCGLuint buffers = GraphicsContextGL::COLOR_BUFFER_BIT;
-    // The GraphicsContextGL's attributes (as opposed to
-    // WebGLRenderingContext's) indicate whether there is an
-    // implicitly-allocated stencil buffer, for example.
-    auto attrs = contextAttributes();
-    if (attrs.depth)
-        buffers |= GraphicsContextGL::DEPTH_BUFFER_BIT;
-    if (attrs.stencil)
-        buffers |= GraphicsContextGL::STENCIL_BUFFER_BIT;
-    setBuffersToAutoClear(buffers);
-}
-
-void GraphicsContextGLOpenGL::setBuffersToAutoClear(GCGLbitfield buffers)
-{
-    auto attrs = contextAttributes();
-    if (!attrs.preserveDrawingBuffer)
-        m_buffersToAutoClear = buffers;
-    else
-        ASSERT(!m_buffersToAutoClear);
-}
-
-GCGLbitfield GraphicsContextGLOpenGL::getBuffersToAutoClear() const
-{
-    return m_buffersToAutoClear;
-}
-
 bool GraphicsContextGLOpenGL::texImage2DResourceSafe(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLint unpackAlignment)
 {
     ASSERT(unpackAlignment == 1 || unpackAlignment == 2 || unpackAlignment == 4 || unpackAlignment == 8);

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h (264699 => 264700)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h	2020-07-22 16:21:15 UTC (rev 264700)
@@ -433,7 +433,7 @@
 
     void drawRangeElements(GCGLenum mode, GCGLuint start, GCGLuint end, GCGLsizei count, GCGLenum type, GCGLintptr offset) final;
 
-    void drawBuffers(GCGLsizei n, const GCGLenum* bufs) final;
+    void drawBuffers(const Vector<GCGLenum>& buffers) final;
     void clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset) final;
     void clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset) final;
     void clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset) final;
@@ -523,13 +523,6 @@
     void forceContextLost();
     void recycleContext();
 
-    // Maintenance of auto-clearing of color/depth/stencil buffers. The
-    // reset method is present to keep calling code simpler, so it
-    // doesn't have to know which buffers were allocated.
-    void resetBuffersToAutoClear();
-    void setBuffersToAutoClear(GCGLbitfield);
-    GCGLbitfield getBuffersToAutoClear() const;
-
     void dispatchContextChangedNotification();
     void simulateContextChanged();
 
@@ -871,11 +864,6 @@
     GCGLuint m_preserveDrawingBufferFBO { 0 };
 #endif
 
-    // A bitmask of GL buffer bits (GL_COLOR_BUFFER_BIT,
-    // GL_DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT) which need to be
-    // auto-cleared.
-    GCGLbitfield m_buffersToAutoClear { 0 };
-
     // Errors raised by synthesizeGLError().
     ListHashSet<GCGLenum> m_syntheticErrors;
 

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp (264699 => 264700)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp	2020-07-22 16:09:52 UTC (rev 264699)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp	2020-07-22 16:21:15 UTC (rev 264700)
@@ -2019,7 +2019,6 @@
 void GraphicsContextGLOpenGL::markLayerComposited()
 {
     m_layerComposited = true;
-    resetBuffersToAutoClear();
 
     for (auto* client : copyToVector(m_clients))
         client->didComposite();
@@ -2425,10 +2424,9 @@
     UNUSED_PARAM(offset);
 }
 
-void GraphicsContextGLOpenGL::drawBuffers(GCGLsizei n, const GCGLenum* bufs)
+void GraphicsContextGLOpenGL::drawBuffers(const Vector<GCGLenum>& buffers)
 {
-    UNUSED_PARAM(n);
-    UNUSED_PARAM(bufs);
+    UNUSED_PARAM(buffers);
 }
 
 void GraphicsContextGLOpenGL::clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to