Bug 208188

Summary: [WPE] Many WebGL 2.0.0 conformance tests fail
Product: WebKit Reporter: Chris Lord <clord>
Component: WPE WebKitAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: alex, bugs-noreply, dpino, im, kbr, lmoura
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=208078
https://bugs.webkit.org/show_bug.cgi?id=209722
https://bugs.webkit.org/show_bug.cgi?id=166536
https://bugs.webkit.org/show_bug.cgi?id=229051
Bug Depends on: 198948, 209098    
Bug Blocks:    

Description Chris Lord 2020-02-25 03:05:27 PST
Bug 208078 recently enable a bunch of WebGL 2.0.0 conformance tests that were previously skipped. Many of them fail on WPE. From a local run:

Unexpected flakiness: timeouts (2)
  webgl/2.0.0/conformance2/state/gl-object-get-calls.html [ Failure Timeout Pass ]
  webgl/2.0.0/conformance2/transform_feedback/transform_feedback.html [ Failure Timeout Pass ]


Regressions: Unexpected text-only failures (26)
  webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets.html [ Failure ]
  webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html [ Failure ]
  webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test.html [ Failure ]
  webgl/2.0.0/conformance2/buffers/buffer-copying-contents.html [ Failure ]
  webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html [ Failure ]
  webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters.html [ Failure ]
  webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html [ Failure ]
  webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range.html [ Failure ]
  webgl/2.0.0/conformance2/misc/expando-loss-2.html [ Failure ]
  webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2.html [ Failure ]
  webgl/2.0.0/conformance2/query/occlusion-query.html [ Failure ]
  webgl/2.0.0/conformance2/query/query.html [ Failure ]
  webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test.html [ Failure ]
  webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/clipping-wide-points.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/framebuffer-unsupported.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html [ Failure ]
  webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop.html [ Failure ]
  webgl/2.0.0/conformance2/samplers/sampler-drawing-test.html [ Failure ]
  webgl/2.0.0/conformance2/samplers/samplers.html [ Failure ]
  webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit.html [ Failure ]
  webgl/2.0.0/conformance2/textures/misc/tex-storage-2d.html [ Failure ]
  webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings.html [ Failure ]
  webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html [ Failure ]

Regressions: Unexpected timeouts (1)
  webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html [ Timeout ]


These tests remain disabled on iOS and were already explicitly disabled in GTK (ref bug 166536). Some WebGL 2.0.0 tests have been explicitly disabled in the past on WPE (ref bug 188346). It's unclear what the intention wrt to WebGL 2.0.0 on WPE is - should it work? If that's the case, I would suppose these failures need more thorough investigation. Perhaps they worked previously and the disabling of the tests went unnoticed, so breakage could creep in? If it was never intended to be reliable, then perhaps these should be skipped, as they were previously and are on iOS and GTK.

Feedback appreciated!
Comment 1 Lauro Moura 2020-03-05 20:57:38 PST
Since r257799 / bug208486, the following tests are also failing:

* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html
Comment 2 Lauro Moura 2020-03-05 21:14:29 PST
Gardened these failures (some are not failing anymore) in r257967.
Comment 3 Lauro Moura 2020-03-06 21:08:13 PST
Moved these to bug208696 as they may be fixed separately.

(In reply to Lauro Moura from comment #1)
> Since r257799 / bug208486, the following tests are also failing:
> 
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-
> rgb-float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-
> rgb-half_float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-
> float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-
> half_float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-
> float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-
> unsigned_short_5_6_5.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-
> unsigned_short_5_5_5_1.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-
> float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-
> half_float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-
> float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-
> half_float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-
> float.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-
> unsigned_short_4_4_4_4.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-
> unsigned_byte.html
> *
> webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-
> rgba-unsigned_byte.html
Comment 4 Kenneth Russell 2020-03-25 20:39:45 PDT
WebKit's WebGL implementation is moving to use ANGLE as its backend, and WebGL 2.0 support is going to be gated on using ANGLE, hopefully as of the fix for Bug 209098. Therefore I'm planning to mark all of the WebGL 2.0 tests as skipped for the WPE port.

My recommendation is to switch over the WPE port to ANGLE. The meta-bug for this is Bug 198948. macOS and iOS have already been switched over. ANGLE already runs on Android, iOS, Linux, macOS, Windows, and more platforms, so hopefully this should be fairly simple - change WPE's build process to build ANGLE and the appropriate backend, set USE_ANGLE=1 in Source/WTF/wtf/Platform.h, and go from there.

If the WPE team has any questions I and others will be happy to answer them to the best of our ability.
Comment 5 Kenneth Russell 2020-03-25 20:43:39 PDT
Note that it would be great if WPE would file more bugs about getting ANGLE running on WPE, block Bug 198948 on them, and block this one on them, too.
Comment 6 Kenneth Russell 2020-03-25 20:44:57 PDT
*** Bug 208696 has been marked as a duplicate of this bug. ***
Comment 7 Diego Pino 2021-12-31 03:33:01 PST
*** Bug 208915 has been marked as a duplicate of this bug. ***
Comment 8 Diego Pino 2021-12-31 03:35:23 PST
*** Bug 208914 has been marked as a duplicate of this bug. ***
Comment 9 Diego Pino 2023-01-25 20:43:32 PST
There are no references to this bug in any TestExpectations. It's probable this bug was solved at some point but it wasn't marked as closed. I'm closing this bug now. If you think this bug report is still valid, please reopen it and add an entry to TestExpectations.
Comment 10 Alejandro G. Castro 2023-02-01 05:22:56 PST
WebGL2 support was added and tests results reviewed in commit 259304@main.

Now we can follow the new situation in bug https://bugs.webkit.org/show_bug.cgi?id=251107