Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug build WebGL tests are slow because they output a lot of result text #12172

Conversation

kkinnunen-apple
Copy link
Contributor

@kkinnunen-apple kkinnunen-apple commented Mar 30, 2023

138bf28

Debug build WebGL tests are slow because they output a lot of result text
https://bugs.webkit.org/show_bug.cgi?id=254736
rdar://107415745

Reviewed by Alexey Proskuryakov.

Load the WebGL conformance tests in quiet mode. This avoids adding the results
to the DOM inside the iframe. WebKit StringView implementation is slowing the tests
with large amount of result prints on Debug. This causes excessive timeouts.

The results are shown for tests that complete via the wrapping test harness.
The results are not shown if the test has a syntax error. These should be debuggable
simply without test result lines in the bot results. In mysterious cases, the quiet
parameter can be removed from individual test runner wrappers temporarily.

* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/resources/webkit-webgl-test-harness.js:
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
(list): Deleted.
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-aliasing.html:
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-matrix.html:
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-nonexistent-attribute.html:

... a lot of tests omitted ...

* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.stride.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/main.py:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webgl-expectation-template.txt:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webgl-test-driver-template.html:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webkit-webgl-test-harness-template.js:
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
(list): Deleted.

Canonical link: https://commits.webkit.org/262387@main

60ba3bb

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ›  gtk
βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk1 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ›  tv βœ… πŸ§ͺ mac-wk2 ❌ πŸ§ͺ api-gtk
βœ… πŸ›  tv-sim βœ… πŸ§ͺ mac-AS-debug-wk2
βœ… πŸ›  watch βœ… πŸ§ͺ mac-wk2-stress
βœ… πŸ›  πŸ§ͺ merge βœ… πŸ›  watch-sim

@kkinnunen-apple kkinnunen-apple self-assigned this Mar 30, 2023
@kkinnunen-apple kkinnunen-apple force-pushed the webgl-conformance-run-in-quiet-mode-1 branch from ba71ab0 to e333d71 Compare March 30, 2023 13:01
@kkinnunen-apple kkinnunen-apple added the WebGL Bugs in WebKit’s implementation of the WebGL standard. label Mar 30, 2023
Copy link
Contributor

@aproskuryakov aproskuryakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those debug assertions slowing it down, or just lack of optimization? If it's the former, have you considered removing those? They likely make other tests slower, even if not so dramatically.

@kkinnunen-apple
Copy link
Contributor Author

Are those debug assertions slowing it down, or just lack of optimization? If it's the former, have you considered removing those? They likely make other tests slower, even if not so dramatically.

Definitively they should be making other tests slow, too.
I filed:
https://bugs.webkit.org/show_bug.cgi?id=254730

I can fix ~50% of the problem, but to get better perf we'd need a bit of WTF::String/StringImpl fixes.

@kkinnunen-apple kkinnunen-apple added the merge-queue Applied to send a pull request to merge-queue label Mar 31, 2023
…text

https://bugs.webkit.org/show_bug.cgi?id=254736
rdar://107415745

Reviewed by Alexey Proskuryakov.

Load the WebGL conformance tests in quiet mode. This avoids adding the results
to the DOM inside the iframe. WebKit StringView implementation is slowing the tests
with large amount of result prints on Debug. This causes excessive timeouts.

The results are shown for tests that complete via the wrapping test harness.
The results are not shown if the test has a syntax error. These should be debuggable
simply without test result lines in the bot results. In mysterious cases, the quiet
parameter can be removed from individual test runner wrappers temporarily.

* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance.html:
* LayoutTests/http/tests/webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas.html:
* LayoutTests/http/tests/webgl/resources/webkit-webgl-test-harness.js:
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
(list): Deleted.
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-aliasing.html:
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-matrix.html:
* LayoutTests/webgl/1.0.x/conformance/attribs/gl-bindAttribLocation-nonexistent-attribute.html:

... a lot of tests omitted ...

* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.stride.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html:
* LayoutTests/webgl/2.0.y/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/main.py:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webgl-expectation-template.txt:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webgl-test-driver-template.html:
* Tools/Scripts/webkitpy/update_webgl_conformance_tests_lib/webkit-webgl-test-harness-template.js:
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
(list): Deleted.

Canonical link: https://commits.webkit.org/262387@main
@webkit-commit-queue webkit-commit-queue force-pushed the webgl-conformance-run-in-quiet-mode-1 branch from 60ba3bb to 138bf28 Compare March 31, 2023 06:27
@webkit-commit-queue
Copy link
Collaborator

Committed 262387@main (138bf28): https://commits.webkit.org/262387@main

Reviewed commits have been landed. Closing PR #12172 and removing active labels.

@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Mar 31, 2023
@webkit-commit-queue webkit-commit-queue merged commit 138bf28 into WebKit:main Mar 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WebGL Bugs in WebKit’s implementation of the WebGL standard.
Projects
None yet
4 participants