Bug 169917 - [GTK] Many WebGL tests fail, are slow or timeout.
Summary: [GTK] Many WebGL tests fail, are slow or timeout.
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
: 188102 206145 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-03-21 07:39 PDT by Carlos Alberto Lopez Perez
Modified: 2022-09-29 12:33 PDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Alberto Lopez Perez 2017-03-21 07:39:36 PDT
After Enabling WebGL, 3D and compositing layout tests in bug 71849 I have observed this WebGL related problems:


# WebGL related failures
webgl/1.0.2/conformance/canvas/drawingbuffer-test.html [ Failure Pass ]
webgl/1.0.2/conformance/extensions/oes-vertex-array-object.html [ Failure Pass ]
webgl/1.0.2/conformance/textures/texture-formats-test.html [ Failure Pass ]
webgl/1.0.3/conformance/context/context-hidden-alpha.html [ Failure Pass ]
compositing/overlap-blending/children-opacity-huge.html [ ImageOnlyFailure Pass ]
compositing/video/video-border-radius.html [ ImageOnlyFailure Pass ]
# WebGL timeouts or slow tests.
fast/canvas/webgl/oes-texture-half-float.html [ Slow ]
webgl/1.0.2/conformance/context/context-creation-and-destruction.html [ Timeout ]
webgl/1.0.2/conformance/extensions/oes-texture-float-with-video.html [ Timeout ]
webgl/1.0.2/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Slow ]
webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html [ Slow ]
webgl/1.0.2/conformance/rendering/multisample-corruption.html [ Timeout ]
webgl/1.0.2/conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html [ Timeout ]
webgl/1.0.2/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html [ Timeout ]
webgl/1.0.2/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html [ Timeout ]
webgl/1.0.2/conformance/textures/tex-image-and-sub-image-2d-with-video.html [ Timeout ]
webgl/1.0.2/conformance/uniforms/gl-uniform-arrays.html [ Slow ]
webgl/1.0.3/conformance/extensions/oes-texture-half-float-with-video.html [ Timeout ]
webgl/1.0.3/conformance/glsl/bugs/complex-glsl-does-not-crash.html [ Slow ]
webgl/1.0.3/conformance/glsl/bugs/temp-expressions-should-not-crash.html [ Slow ]
webgl/1.0.3/conformance/textures/texture-upload-size.html [ Timeout ]
webgl/1.0.2/conformance/uniforms/out-of-bounds-uniform-array-access.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/atan/atan_001_to_008.html [ Slow ]
webgl/1.0.2/conformance/uniforms/uniform-default-values.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/pow/pow_009_to_016.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/pow/pow_017_to_024.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/reflect/reflect_001_to_006.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/refract/refract_001_to_006.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html [ Slow ]
webgl/1.0.2/conformance/ogles/GL/log/log_001_to_008.html [ Slow ]
webgl/1.0.3/conformance/uniforms/uniform-values-per-program.html [ Slow ]
webgl/1.0.3/conformance/context/context-eviction-with-garbage-collection.html [ Slow ]
webgl/1.0.3/conformance/glsl/misc/struct-nesting-of-variable-names.html [ Slow ]
webgl/max-active-contexts-webglcontextlost-prevent-default.html [ Timeout ]
# WebGL crashes
fast/canvas/webgl/webgl-draw-buffers.html [ Failure Crash ]
webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html [ Crash ]
Comment 1 Carlos Alberto Lopez Perez 2017-03-21 07:41:38 PDT
Also this ones:

fast/canvas/webgl/antialiasing-enabled.html [ Failure Pass ]
fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias.html [ Failure ]
fast/canvas/webgl/copyBufferSubData.html [ Failure ]
fast/canvas/webgl/framebuffer-object-attachment.html [ Failure ]
fast/canvas/webgl/getBufferSubData-webgl1.html [ Failure ]
fast/canvas/webgl/glsl-conformance.html [ Failure ]
fast/canvas/webgl/premultiplyalpha-test.html [ Failure ]
fast/canvas/webgl/read-pixels-test.html [ Failure Pass ]
fast/canvas/webgl/oes-vertex-array-object.html [ Failure Pass ]
fast/canvas/webgl/unprefixed-anisotropic-extension.html [ Failure Pass ]
webgl/1.0.2/conformance/canvas/buffer-offscreen-test.html [ Failure ]
webgl/1.0.2/conformance/context/context-attribute-preserve-drawing-buffer.html [ Failure ]
webgl/1.0.2/conformance/context/context-attributes-alpha-depth-stencil-antialias.html [ Failure ]
webgl/1.0.2/conformance/context/premultiplyalpha-test.html [ Failure ]
webgl/1.0.2/conformance/extensions/oes-texture-float.html [ Failure ]
webgl/1.0.2/conformance/reading/read-pixels-test.html [ Failure Pass ]
webgl/1.0.2/conformance/textures/copy-tex-image-2d-formats.html [ Failure ]
webgl/1.0.2/conformance/textures/texture-attachment-formats.html [ Failure ]
webgl/1.0.2/conformance/textures/texture-mips.html [ Failure ]
webgl/1.0.2/conformance/textures/texture-npot.html [ Failure ]
webgl/1.0.2/conformance/textures/texture-size-limit.html [ Failure ]
webgl/1.0.3/conformance/attribs/gl-bindAttribLocation-aliasing.html [ Failure ]
webgl/1.0.3/conformance/attribs/gl-bindAttribLocation-matrix.html [ Failure ]
webgl/1.0.3/conformance/extensions/oes-texture-half-float.html [ Failure ]
webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit.html [ Failure ]
webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance.html [ Failure ]
webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts.html [ Failure ]
webgl/1.0.3/conformance/renderbuffers/feedback-loop.html [ Failure ]
webgl/1.0.3/conformance/rendering/point-no-attributes.html [ Failure ]
webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html [ Failure ]
webgl/many-contexts-access-after-loss.html [ Failure ]
webgl/many-contexts.html [ Failure ]
webgl/max-active-contexts-console-warning.html [ Failure ]
webgl/max-active-contexts-gc.html [ Failure ]
webgl/max-active-contexts-oldest-context-lost.html [ Failure ]
webgl/webgl-vertex-array-object-defined.html [ Failure ]
webgl/webgl-border.html [ ImageOnlyFailure ]
webgl/webgl-box-shadow.html [ ImageOnlyFailure ]
Comment 2 Carlos Alberto Lopez Perez 2017-03-21 08:26:27 PDT
There are some differences on the results of those test if you run then inside xvfb or on the native display (Xorg/X11 in my case with Intel GPU. glxinfo: http://sprunge.us/WBjL ). You can run them on the native display by passing --display-server=xorg to the script run-webkit-tests.


Differences between --display-server=xorg and --display-server=xvfb :

* webgl/1.0.2/conformance/textures/texture-mips.html and  webgl/1.0.2/conformance/textures/texture-npot.html pass on native Xorg but fail on Xvfb.

* webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html crashes on Xvfb (crash log: http://sprunge.us/jTBV ) but fails (without crash) on native Xorg.

* fast/canvas/webgl/drawingbuffer-test.html fast/canvas/webgl/webgl-depth-texture.html pass on Xvfb but fail on native Xorg.

* More tests timeout or are slow on native Xorg.
Comment 3 Carlos Alberto Lopez Perez 2017-03-21 09:05:08 PDT
Marked the test failing (and rebaselined others were the diff looked right) in https://trac.webkit.org/r214223
Comment 4 Carlos Alberto Lopez Perez 2017-03-21 13:54:54 PDT
Marked the diff of failures (and passes) between Xvfb and native Wayland at: https://trac.webkit.org/changeset/214229/trunk/LayoutTests/platform/gtk-wayland/TestExpectations
Comment 5 Michael Catanzaro 2017-11-20 16:03:24 PST
I'm adding a Failure expectation for webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html because it has now (for the first time) run without crashing. (But it prints FAIL instead of PASS.)

I'm concerned by the very high number of failures in this bug. Oh well.
Comment 6 Michael Catanzaro 2018-07-27 13:11:08 PDT
*** Bug 188102 has been marked as a duplicate of this bug. ***
Comment 7 Nikolas Zimmermann 2019-11-27 04:23:24 PST
According to https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/11947/steps/layout-test/logs/stdio these tests actually pass just fine:

  webgl/1.0.3/conformance/extensions/oes-texture-half-float.html
  webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts.html
  webgl/1.0.3/conformance/rendering/point-no-attributes.html
  webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html
  webgl/1.0.3/conformance/textures/texture-size-limit.html


since at least a few builds that I checked.
Updating expectations.
Comment 8 Miguel Gomez 2019-12-11 07:18:48 PST
8 new webgl tests are slow:
webkit.org/b/169917 webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/bugs/long-expressions-should-not-crash.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/constructors/glsl-construct-bvec2.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/constructors/glsl-construct-ivec2.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/constructors/glsl-construct-vec2.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/misc/shader-varying-packing-restrictions.html [ Slow ]
webkit.org/b/169917 webgl/1.0.3/conformance/glsl/misc/struct-nesting-of-variable-names.html [ Slow ]
Comment 9 Diego Pino 2020-01-12 05:14:40 PST
*** Bug 206145 has been marked as a duplicate of this bug. ***
Comment 10 Diego Pino 2020-01-12 05:15:49 PST
Several tests are failing after test suite update in r252121.

3 new tests added in r252121 are failing:

	* webgl/1.0.3/conformance/more/functions/readPixelsBadArgs.html [ Failure ]
	* webgl/1.0.3/conformance/more/functions/texImage2DHTML.html [ Failure ]
	* webgl/1.0.3/conformance/more/functions/texSubImage2DHTML.html [ Failure ]

1 existing test started to fail:

	* webgl/1.0.3/conformance/glsl/misc/shader-struct-scope.html [ Failure ]

2 existing tests started to time out:

	* webgl/1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Timeout ]
	* webgl/1.0.3/conformance/glsl/misc/struct-nesting-of-variable-names.html [ Timeout ]

1 existing test is now flaky:

	* webgl/1.0.3/conformance/textures/texture-size.html [ Timeout Pass ]
Comment 11 Diego Pino 2021-06-09 00:20:40 PDT
The only test filed under this bug was:

  - fast/canvas/webgl/oes-vertex-array-object.html

GTK post-commit test bot reports the test has been failing consistently for the last 4000 revisions.

Diff:

--- /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/fast/canvas/webgl/oes-vertex-array-object-expected.txt
+++ /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/fast/canvas/webgl/oes-vertex-array-object-actual.txt
@@ -1,3 +1,7 @@
+CONSOLE MESSAGE: *** Error loading shader '[object WebGLShader]':INVALID_OPERATION
+CONSOLE MESSAGE: Error in compiling shader
+CONSOLE MESSAGE: *** Error loading shader '[object WebGLShader]':INVALID_OPERATION
+CONSOLE MESSAGE: Error in compiling shader
 This test verifies the functionality of the OES_vertex_array_object extension, if it is available.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -32,20 +36,30 @@
 Testing that attribute values are not attached to bindings
 PASS Vertex attribute values are not attached to bindings
 Testing draws with various VAO bindings
-PASS Draw 0 passed pixel test
+FAIL Draw 0 failed pixel test
 PASS Draw 1 passed pixel test
 PASS Draw 2 passed pixel test
 Testing using deleted buffers referenced by VAOs
-PASS should be 255,0,0,255
-PASS should be 0,255,0,255
-PASS should be 0,0,255,255
-PASS should be 0,255,255,255
+FAIL buffer removed too early
+FAIL buffer removed too early
+FAIL buffer removed too early
+FAIL should be 255,0,0,255
+at (0, 0) expected: 255,0,0,255 was 255,255,255,255
+FAIL should be 0,255,0,255
+at (0, 0) expected: 0,255,0,255 was 255,255,255,255
+FAIL should be 0,0,255,255
+at (0, 0) expected: 0,0,255,255 was 255,255,255,255
+FAIL should be 0,255,255,255
+at (0, 0) expected: 0,255,255,255 was 255,255,255,255
 Testing that VAOs don't effect ARRAY_BUFFER binding.
-PASS should be red
-PASS should be green
-PASS getError was expected value: NO_ERROR : there should be no errors
+FAIL should be red
+at (0, 0) expected: 255,0,0,255 was 255,255,255,255
+FAIL should be green
+at (0, 0) expected: 0,255,0,255 was 255,255,255,255
+FAIL getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no errors
 
 PASS successfullyParsed is true
+Some tests failed.
 
 TEST COMPLETE
Comment 12 Diego Pino 2021-06-09 00:52:31 PDT
Actually there are still many tests filed under this bug.

fast/canvas/webgl/oes-vertex-array-object.html was marked as flaky, but I have changed its status to failure only.
Comment 13 Alejandro G. Castro 2022-09-29 12:33:00 PDT
After replacing the WebGL backend with ANGLE we have a new bug to check the new failures, a lot of failing tests in this bug pass now. The new bug is:

https://bugs.webkit.org/show_bug.cgi?id=245840

The gardening commit is:

https://commits.webkit.org/255008@main