[WebGL2] Support compilation of GLSL ES version 300 shaders
<rdar://problem/42564229>
Created attachment 345732 [details] patch Preliminary patch to see if this breaks anything
Comment on attachment 345732 [details] patch Attachment 345732 [details] did not pass mac-ews (mac): Output: https://webkit-queues.webkit.org/results/8644919 Number of test failures exceeded the failure limit.
Created attachment 345736 [details] Archive of layout-test-results from ews103 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
Comment on attachment 345732 [details] patch Attachment 345732 [details] did not pass mac-wk2-ews (mac-wk2): Output: https://webkit-queues.webkit.org/results/8644939 Number of test failures exceeded the failure limit.
Created attachment 345738 [details] Archive of layout-test-results from ews105 for mac-sierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews105 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
Comment on attachment 345732 [details] patch Attachment 345732 [details] did not pass mac-debug-ews (mac): Output: https://webkit-queues.webkit.org/results/8645024 Number of test failures exceeded the failure limit.
Created attachment 345740 [details] Archive of layout-test-results from ews113 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews113 Port: mac-sierra Platform: Mac OS X 10.12.6
Comment on attachment 345732 [details] patch Attachment 345732 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/8645046 New failing tests: webgl/2.0.0/conformance2/glsl3/array-as-return-value.html webgl/2.0.0/conformance2/glsl3/array-assign.html webgl/2.0.0/conformance2/glsl3/valid-invariant.html webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html webgl/2.0.0/conformance2/glsl3/array-equality.html webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions.html webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing.html webgl/2.0.0/conformance2/glsl3/loops-with-side-effects.html webgl/2.0.0/conformance2/glsl3/shader-linking.html webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays.html webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html webgl/2.0.0/conformance2/glsl3/array-in-complex-expression.html webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html webgl/2.0.0/conformance2/glsl3/array-assign-constructor.html webgl/2.0.0/conformance2/glsl3/array-element-increment.html webgl/2.0.0/conformance2/glsl3/frag-depth.html webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition.html webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html webgl/2.0.0/conformance2/glsl3/const-array-init.html webgl/2.0.0/conformance2/glsl3/array-complex-indexing.html
Created attachment 345741 [details] Archive of layout-test-results from ews121 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews121 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
The iOS tests are failing because we're only accepting GLSL3 for macOS. We either need to fix this for iOS, or check in different expected results in the platform/ios directory.
Comment on attachment 345732 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=345732&action=review > Source/WebCore/platform/graphics/GraphicsContext3DAttributes.h:51 > - bool useGLES3 { false }; > + bool isWebGL2 { false }; This change is missing from the ChangeLog. You should explain it there. e.g. "We were using 'useGLES3' to mean WebGL2. Rename it to make more sense' > Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm:200 > + m_compiler = ANGLEWebKitBridge(SH_ESSL_OUTPUT, SH_WEBGL2_SPEC); Interesting. I thought the iOS results were failing because this was missing, but it's here. We'll have to either skip for now (and open a followup bug) or work out what's wrong with iOS. > Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:403 > + ::glGetIntegerv(GL_MAX_VARYING_VECTORS, &maxVaryingVectors); I'm happy to see that this isn't causing any other failures. I wonder why we implemented this way.
Created attachment 345805 [details] Patch
Fixes should fix mac and wpe, but iOS is probably still expecting GLSL 3 tests to pass for the expected results that were updated.
Comment on attachment 345805 [details] Patch Attachment 345805 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/8656391 New failing tests: webgl/2.0.0/conformance2/glsl3/array-as-return-value.html webgl/2.0.0/conformance2/glsl3/array-assign.html webgl/2.0.0/conformance2/glsl3/valid-invariant.html webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html webgl/2.0.0/conformance2/glsl3/array-equality.html webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions.html webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing.html webgl/2.0.0/conformance2/glsl3/loops-with-side-effects.html webgl/2.0.0/conformance2/glsl3/shader-linking.html webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays.html webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html webgl/2.0.0/conformance2/glsl3/array-in-complex-expression.html webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html webgl/2.0.0/conformance2/glsl3/array-assign-constructor.html webgl/2.0.0/conformance2/glsl3/array-element-increment.html webgl/2.0.0/conformance2/glsl3/frag-depth.html webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition.html webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html webgl/2.0.0/conformance2/glsl3/const-array-init.html webgl/2.0.0/conformance2/glsl3/array-complex-indexing.html
Created attachment 345811 [details] Archive of layout-test-results from ews125 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.4
For the iOS tests that are failing, the expected.txt files expect a FAIL so they might actually be passing (or some other output). The glsl3 tests that are not on that list of failures for the iOS bot were changed to expect a PASS in this patch.
Comment on attachment 345805 [details] Patch Attachment 345805 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8670500 New failing tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
Created attachment 345907 [details] Archive of layout-test-results from ews200 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 345942 [details] Patch
Comment on attachment 345942 [details] Patch Attachment 345942 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8677754 New failing tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
Created attachment 345973 [details] Archive of layout-test-results from ews200 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 345987 [details] Patch
Comment on attachment 345987 [details] Patch Attachment 345987 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8686441 New failing tests: http/tests/security/canvas-remote-read-remote-video-hls.html
Created attachment 346005 [details] Archive of layout-test-results from ews200 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Comment on attachment 345987 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=345987&action=review > LayoutTests/platform/ios-simulator-wk2/TestExpectations:49 > +# We are only accepting GLSL3 for macOS. > +webkit.org/b/187982 webgl/2.0.0/conformance2/glsl3 [ Skip ] This should be in platform/ios/TestExpectations not just ios-simulator-wk2
Created attachment 346084 [details] Patch
Comment on attachment 346084 [details] Patch Clearing flags on attachment: 346084 Committed r234380: <https://trac.webkit.org/changeset/234380>
All reviewed patches have been landed. Closing bug.