forked from mirrors/gecko-dev
Bug 1868470 - Add new OffscreenCanvas and WebCodecs talos tests. r=perftest-reviewers,sparky
This patch adds new variants of the glvideo/canvas2dvideo talos tests, but this time focused on OffscreenCanvas and WebCodecs. There are test variants for each: - Execution thread (main thread or DOM worker) - Canvas type (WebGL or 2D canvas) - Codec type (H264, VP9 or AV1) They are included as part of the existing webgl talos job. Differential Revision: https://phabricator.services.mozilla.com/D196465
This commit is contained in:
parent
d00fc5db08
commit
816b0b6da1
43 changed files with 5079 additions and 1 deletions
|
|
@ -1187,6 +1187,8 @@ testing/mozbase/mozprofile/tests/files/prefs_with_comments.js
|
||||||
testing/mozharness/configs/test/test_malformed.json
|
testing/mozharness/configs/test/test_malformed.json
|
||||||
testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js
|
testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js
|
||||||
testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js
|
testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js
|
||||||
|
testing/talos/talos/tests/offscreencanvas/benchmarks/video/demuxer_mp4.js
|
||||||
|
testing/talos/talos/tests/offscreencanvas/benchmarks/video/mp4box.all.min.js
|
||||||
# Python json.
|
# Python json.
|
||||||
testing/talos/talos/unittests/test_talosconfig_browser_config.json
|
testing/talos/talos/unittests/test_talosconfig_browser_config.json
|
||||||
testing/talos/talos/unittests/test_talosconfig_test_config.json
|
testing/talos/talos/unittests/test_talosconfig_test_config.json
|
||||||
|
|
|
||||||
|
|
@ -724,6 +724,7 @@ talos-webgl-profiling:
|
||||||
extra-options:
|
extra-options:
|
||||||
- --suite=webgl
|
- --suite=webgl
|
||||||
- --gecko-profile
|
- --gecko-profile
|
||||||
|
- --setpref=dom.media.webcodecs.enabled=true
|
||||||
|
|
||||||
talos-xperf:
|
talos-xperf:
|
||||||
description: Talos xperf
|
description: Talos xperf
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -29,6 +29,9 @@ with Files("talos/tests/dromaeo/**"):
|
||||||
with Files("talos/tests/kraken/**"):
|
with Files("talos/tests/kraken/**"):
|
||||||
BUG_COMPONENT = ("Core", "JavaScript Engine")
|
BUG_COMPONENT = ("Core", "JavaScript Engine")
|
||||||
|
|
||||||
|
with Files("talos/tests/offscreencanvas/**"):
|
||||||
|
BUG_COMPONENT = ("Core", "Graphics: Canvas2D")
|
||||||
|
|
||||||
with Files("talos/tests/scroll/**"):
|
with Files("talos/tests/scroll/**"):
|
||||||
BUG_COMPONENT = ("Core", "Graphics")
|
BUG_COMPONENT = ("Core", "Graphics")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,222 @@ suites:
|
||||||
ticks to measure how much time it will spend for a video texture upload
|
ticks to measure how much time it will spend for a video texture upload
|
||||||
to be a Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore
|
to be a Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore
|
||||||
the first found. Lower results are better.
|
the first found. Lower results are better.
|
||||||
|
offscreencanvas_webcodecs_main_webgl_h264: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_webgl_h264 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p H264 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a H264 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_main_webgl_vp9: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_webgl_vp9 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p VP9 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a VP9 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_main_webgl_av1: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_webgl_av1 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p AV1 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a AV1 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_webgl_h264: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_webgl_h264 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p H264 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a H264 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on a DOM worker. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_webgl_vp9: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_webgl_vp9 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p VP9 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a VP9 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on a DOM worker. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_webgl_av1: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_webgl_av1 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas WebGL video texture update with WebCodecs and 1080p AV1 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a AV1 video file using WebCodecs and ask WebGL to draw video
|
||||||
|
frames as WebGL textures for 100 frames on a DOM worker. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_main_2d_h264: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_2d_h264 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p H264 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a H264 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_main_2d_vp9: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_2d_vp9 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p VP9 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l819>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a VP9 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_main_2d_av1: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_main_2d_av1 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p AV1 video on the main thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l843>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a AV1 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on the main thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_2d_h264: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_2d_h264 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p H264 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a H264 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on a DOM worker thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_2d_vp9: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_2d_vp9 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p VP9 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a VP9 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on a DOM worker thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
|
offscreencanvas_webcodecs_worker_2d_av1: >
|
||||||
|
- contact: :aosmond and gfx
|
||||||
|
- source: `offscreencanvas_webcodecs_worker_2d_av1 <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/offscreencanvas/benchmarks/video>`__
|
||||||
|
- type: `Page load`_
|
||||||
|
- data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)
|
||||||
|
- summarization: OffscreenCanvas 2D video texture update with WebCodecs and 1080p AV1 video on a DOM worker thread. Measures mean frame time across 100 frames.
|
||||||
|
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 4; `source:
|
||||||
|
test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l795>`__
|
||||||
|
* suite: `geometric mean`_ of the 4 subtest results.
|
||||||
|
- **Lower is better**
|
||||||
|
- **Example Data**
|
||||||
|
* 0;Mean frame time across 100 frames: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295
|
||||||
|
- description:
|
||||||
|
| This test extracts frames from a AV1 video file using WebCodecs and ask Canvas2D to draw video
|
||||||
|
frames as Canvas2D textures for 100 frames on a DOM worker thread. It collects the mean frame time
|
||||||
|
across 100 frames to measure how much time it will spend for a video texture upload to be a
|
||||||
|
Canvas2D texture (ctx.drawImage). We run it for 5 times and ignore the first found. Lower
|
||||||
|
results are better.
|
||||||
cpstartup: >
|
cpstartup: >
|
||||||
- contact: :mconley, Firefox Desktop Front-end team, Gijs, fqueze, and dthayer
|
- contact: :mconley, Firefox Desktop Front-end team, Gijs, fqueze, and dthayer
|
||||||
- measuring: Time from opening a new tab (which creates a new content process) to having that new content process be ready to load URLs.
|
- measuring: Time from opening a new tab (which creates a new content process) to having that new content process be ready to load URLs.
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,24 @@
|
||||||
"pagesets_name": "tp5n.zip"
|
"pagesets_name": "tp5n.zip"
|
||||||
},
|
},
|
||||||
"webgl": {
|
"webgl": {
|
||||||
"tests": ["canvas2dvideo", "glterrain", "glvideo", "motionmark_webgl"]
|
"tests": [
|
||||||
|
"canvas2dvideo",
|
||||||
|
"glterrain",
|
||||||
|
"glvideo",
|
||||||
|
"motionmark_webgl",
|
||||||
|
"offscreencanvas_webcodecs_main_webgl_h264",
|
||||||
|
"offscreencanvas_webcodecs_main_webgl_vp9",
|
||||||
|
"offscreencanvas_webcodecs_main_webgl_av1",
|
||||||
|
"offscreencanvas_webcodecs_worker_webgl_h264",
|
||||||
|
"offscreencanvas_webcodecs_worker_webgl_vp9",
|
||||||
|
"offscreencanvas_webcodecs_worker_webgl_av1",
|
||||||
|
"offscreencanvas_webcodecs_main_2d_h264",
|
||||||
|
"offscreencanvas_webcodecs_main_2d_vp9",
|
||||||
|
"offscreencanvas_webcodecs_main_2d_av1",
|
||||||
|
"offscreencanvas_webcodecs_worker_2d_h264",
|
||||||
|
"offscreencanvas_webcodecs_worker_2d_vp9",
|
||||||
|
"offscreencanvas_webcodecs_worker_2d_av1"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"xperf": {
|
"xperf": {
|
||||||
"tests": ["tp5n"],
|
"tests": ["tp5n"],
|
||||||
|
|
|
||||||
|
|
@ -659,6 +659,330 @@ class canvas2dvideo(PageloaderTest):
|
||||||
unit = "ms"
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_webgl_h264(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on the main thread with WebCodecs and 1080p H264 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_h264.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_webgl_vp9(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on the main thread with WebCodecs and 1080p VP9 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_vp9.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_webgl_av1(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on the main thread with WebCodecs and 1080p AV1 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_av1.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_webgl_h264(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on a DOM worker thread with WebCodecs and 1080p H264 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_h264.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "DOM Worker,CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_webgl_vp9(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on a DOM worker thread with WebCodecs and 1080p VP9 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_vp9.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "DOM Worker,CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_webgl_av1(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas WebGL video texture update on a DOM worker thread with WebCodecs and 1080p AV1 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs texImage2D(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_av1.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "DOM Worker,CanvasRenderer,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_2d_h264(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on the main thread with WebCodecs and 1080p H264 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = (
|
||||||
|
"${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_h264.manifest"
|
||||||
|
)
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_2d_vp9(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on the main thread with WebCodecs and 1080p VP9 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = (
|
||||||
|
"${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_vp9.manifest"
|
||||||
|
)
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_main_2d_av1(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on the main thread with WebCodecs and 1080p AV1 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = (
|
||||||
|
"${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_av1.manifest"
|
||||||
|
)
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = "CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_2d_h264(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on a DOM worker thread with WebCodecs and 1080p H264 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_h264.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = (
|
||||||
|
"DOM Worker,CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
)
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_2d_vp9(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on a DOM worker thread with WebCodecs and 1080p VP9 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_vp9.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = (
|
||||||
|
"DOM Worker,CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
)
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
|
@register_test()
|
||||||
|
class offscreencanvas_webcodecs_worker_2d_av1(PageloaderTest):
|
||||||
|
"""
|
||||||
|
OffscreenCanvas 2D video texture update on a DOM worker thread with WebCodecs and 1080p AV1 video.
|
||||||
|
Measures mean frame time across 100 frames.
|
||||||
|
(decodes each frame and performs drawImage(<videoFrame>))
|
||||||
|
"""
|
||||||
|
|
||||||
|
tpmanifest = "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_av1.manifest"
|
||||||
|
tpcycles = 1
|
||||||
|
tppagecycles = 5
|
||||||
|
tploadnocache = True
|
||||||
|
tpmozafterpaint = False
|
||||||
|
tpchrome = False
|
||||||
|
timeout = 600
|
||||||
|
gecko_profile_interval = 2
|
||||||
|
gecko_profile_extra_threads = (
|
||||||
|
"DOM Worker,CanvasRenderer,CanvasWorker,MediaSupervisor"
|
||||||
|
)
|
||||||
|
win_counters = w7_counters = linux_counters = mac_counters = None
|
||||||
|
preferences = {
|
||||||
|
"dom.media.webcodecs.enabled": True,
|
||||||
|
"dom.media.webcodecs.force-osx-h264-enabled": True,
|
||||||
|
}
|
||||||
|
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
|
||||||
|
unit = "ms"
|
||||||
|
|
||||||
|
|
||||||
@register_test()
|
@register_test()
|
||||||
class tp5n(PageloaderTest):
|
class tp5n(PageloaderTest):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.av1.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_2d_av1", "2d", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.av1.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_2d_av1", "2d", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.h264.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_2d_h264", "2d", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.h264.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_2d_h264", "2d", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.vp9.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_2d_vp9", "2d", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.vp9.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_2d_vp9", "2d", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,113 @@
|
||||||
|
/**
|
||||||
|
* This software or document includes material copied from or derived from:
|
||||||
|
* https://github.com/w3c/webcodecs/blob/main/samples/video-decode-display/demuxer_mp4.js
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022-2023 World Wide Web Consortium.
|
||||||
|
* https://www.w3.org/copyright/software-license-2023/
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Wraps an MP4Box File as a WritableStream underlying sink.
|
||||||
|
class MP4FileSink {
|
||||||
|
#setStatus = null;
|
||||||
|
#file = null;
|
||||||
|
#offset = 0;
|
||||||
|
|
||||||
|
constructor(file, setStatus) {
|
||||||
|
this.#file = file;
|
||||||
|
this.#setStatus = setStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
write(chunk) {
|
||||||
|
// MP4Box.js requires buffers to be ArrayBuffers, but we have a Uint8Array.
|
||||||
|
const buffer = new ArrayBuffer(chunk.byteLength);
|
||||||
|
new Uint8Array(buffer).set(chunk);
|
||||||
|
|
||||||
|
// Inform MP4Box where in the file this chunk is from.
|
||||||
|
buffer.fileStart = this.#offset;
|
||||||
|
this.#offset += buffer.byteLength;
|
||||||
|
|
||||||
|
// Append chunk.
|
||||||
|
this.#setStatus("fetch", (this.#offset / (1024 ** 2)).toFixed(1) + " MiB");
|
||||||
|
this.#file.appendBuffer(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
close() {
|
||||||
|
this.#setStatus("fetch", "Done");
|
||||||
|
this.#file.flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Demuxes the first video track of an MP4 file using MP4Box, calling
|
||||||
|
// `onConfig()` and `onChunk()` with appropriate WebCodecs objects.
|
||||||
|
class MP4Demuxer {
|
||||||
|
#onConfig = null;
|
||||||
|
#onChunk = null;
|
||||||
|
#setStatus = null;
|
||||||
|
#file = null;
|
||||||
|
|
||||||
|
constructor(uri, {onConfig, onChunk, setStatus}) {
|
||||||
|
this.#onConfig = onConfig;
|
||||||
|
this.#onChunk = onChunk;
|
||||||
|
this.#setStatus = setStatus;
|
||||||
|
|
||||||
|
// Configure an MP4Box File for demuxing.
|
||||||
|
this.#file = MP4Box.createFile();
|
||||||
|
this.#file.onError = error => setStatus("demux", error);
|
||||||
|
this.#file.onReady = this.#onReady.bind(this);
|
||||||
|
this.#file.onSamples = this.#onSamples.bind(this);
|
||||||
|
|
||||||
|
// Fetch the file and pipe the data through.
|
||||||
|
const fileSink = new MP4FileSink(this.#file, setStatus);
|
||||||
|
fetch(uri).then(response => {
|
||||||
|
// highWaterMark should be large enough for smooth streaming, but lower is
|
||||||
|
// better for memory usage.
|
||||||
|
response.body.pipeTo(new WritableStream(fileSink, {highWaterMark: 2}));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the appropriate `description` for a specific track. Assumes that the
|
||||||
|
// track is H.264, H.265, VP8, VP9, or AV1.
|
||||||
|
#description(track) {
|
||||||
|
const trak = this.#file.getTrackById(track.id);
|
||||||
|
for (const entry of trak.mdia.minf.stbl.stsd.entries) {
|
||||||
|
const box = entry.avcC || entry.hvcC || entry.vpcC || entry.av1C;
|
||||||
|
if (box) {
|
||||||
|
const stream = new DataStream(undefined, 0, DataStream.BIG_ENDIAN);
|
||||||
|
box.write(stream);
|
||||||
|
return new Uint8Array(stream.buffer, 8); // Remove the box header.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error("avcC, hvcC, vpcC, or av1C box not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
#onReady(info) {
|
||||||
|
this.#setStatus("demux", "Ready");
|
||||||
|
const track = info.videoTracks[0];
|
||||||
|
|
||||||
|
// Generate and emit an appropriate VideoDecoderConfig.
|
||||||
|
this.#onConfig({
|
||||||
|
// Browser doesn't support parsing full vp8 codec (eg: `vp08.00.41.08`),
|
||||||
|
// they only support `vp8`.
|
||||||
|
codec: track.codec.startsWith('vp08') ? 'vp8' : track.codec,
|
||||||
|
codedHeight: track.video.height,
|
||||||
|
codedWidth: track.video.width,
|
||||||
|
description: this.#description(track),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Start demuxing.
|
||||||
|
this.#file.setExtractionOptions(track.id);
|
||||||
|
this.#file.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
#onSamples(track_id, ref, samples) {
|
||||||
|
// Generate and emit an EncodedVideoChunk for each demuxed sample.
|
||||||
|
for (const sample of samples) {
|
||||||
|
this.#onChunk(new EncodedVideoChunk({
|
||||||
|
type: sample.is_sync ? "key" : "delta",
|
||||||
|
timestamp: 1e6 * sample.cts / sample.timescale,
|
||||||
|
duration: 1e6 * sample.duration / sample.timescale,
|
||||||
|
data: sample.data
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
/*global runTestInternal b:true*/
|
||||||
|
|
||||||
|
function runTest(testName, canvasType, videoUri) {
|
||||||
|
const canvas = document.createElement("canvas");
|
||||||
|
canvas.width = 1920;
|
||||||
|
canvas.height = 1080;
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
|
||||||
|
const offscreenCanvas = canvas.transferControlToOffscreen();
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
runTestInternal(
|
||||||
|
testName,
|
||||||
|
canvasType,
|
||||||
|
offscreenCanvas,
|
||||||
|
/* isWorker */ false,
|
||||||
|
videoUri,
|
||||||
|
resolve,
|
||||||
|
reject
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
reject(e);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(result => {
|
||||||
|
let name =
|
||||||
|
result.testName +
|
||||||
|
" Mean time across " +
|
||||||
|
result.totalFrames +
|
||||||
|
" frames: ";
|
||||||
|
let value = result.elapsed / result.totalFrames;
|
||||||
|
let msg = name + value + "\n";
|
||||||
|
dump("[talos offscreen-canvas-webcodecs result] " + msg);
|
||||||
|
|
||||||
|
if (window.tpRecordTime) {
|
||||||
|
// Within talos - report the results
|
||||||
|
tpRecordTime(value, 0, name);
|
||||||
|
} else {
|
||||||
|
alert(msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
let msg = "caught error " + e;
|
||||||
|
dump("[talos offscreen-canvas-webcodecs result] " + msg);
|
||||||
|
if (window.tpRecordTime) {
|
||||||
|
// Within talos - report the results
|
||||||
|
tpRecordTime("", 0, "");
|
||||||
|
} else {
|
||||||
|
alert(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
function runTest(testName, canvasType, worker, videoUri) {
|
||||||
|
const canvas = document.createElement("canvas");
|
||||||
|
canvas.width = 1920;
|
||||||
|
canvas.height = 1080;
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
|
||||||
|
const offscreenCanvas = canvas.transferControlToOffscreen();
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
worker.onmessage = e => {
|
||||||
|
if (e.data.errorMessage) {
|
||||||
|
reject(e.data.errorMessage);
|
||||||
|
} else {
|
||||||
|
resolve(e.data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
worker.postMessage({ offscreenCanvas, testName, canvasType, videoUri }, [
|
||||||
|
offscreenCanvas,
|
||||||
|
]);
|
||||||
|
})
|
||||||
|
.then(result => {
|
||||||
|
let name =
|
||||||
|
result.testName +
|
||||||
|
" Mean time across " +
|
||||||
|
result.totalFrames +
|
||||||
|
" frames: ";
|
||||||
|
let value = result.elapsed / result.totalFrames;
|
||||||
|
let msg = name + value + "\n";
|
||||||
|
dump("[talos offscreen-canvas-webcodecs result] " + msg);
|
||||||
|
|
||||||
|
if (window.tpRecordTime) {
|
||||||
|
// Within talos - report the results
|
||||||
|
tpRecordTime(value, 0, name);
|
||||||
|
} else {
|
||||||
|
alert(msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
let msg = "caught error " + e;
|
||||||
|
dump("[talos offscreen-canvas-webcodecs result] " + msg);
|
||||||
|
if (window.tpRecordTime) {
|
||||||
|
// Within talos - report the results
|
||||||
|
tpRecordTime("", 0, "");
|
||||||
|
} else {
|
||||||
|
alert(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
4
testing/talos/talos/tests/offscreencanvas/benchmarks/video/mp4box.all.min.js
vendored
Normal file
4
testing/talos/talos/tests/offscreencanvas/benchmarks/video/mp4box.all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,24 @@
|
||||||
|
Copyright (c) 2012. Telecom ParisTech/TSI/MM/GPAC Cyril Concolato
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the copyright holder nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
@ -0,0 +1,128 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
/*global MP4Demuxer b:true*/
|
||||||
|
|
||||||
|
const kTotalFrames = 100;
|
||||||
|
|
||||||
|
let start;
|
||||||
|
let frameCount;
|
||||||
|
|
||||||
|
function runTestInternal(
|
||||||
|
testName,
|
||||||
|
canvasType,
|
||||||
|
canvas,
|
||||||
|
isWorker,
|
||||||
|
videoUri,
|
||||||
|
resolve,
|
||||||
|
reject
|
||||||
|
) {
|
||||||
|
const runContext = isWorker ? "worker" : "main";
|
||||||
|
dump(
|
||||||
|
"[" +
|
||||||
|
canvasType +
|
||||||
|
" webcodecs " +
|
||||||
|
runContext +
|
||||||
|
"] load video '" +
|
||||||
|
videoUri +
|
||||||
|
"'\n"
|
||||||
|
);
|
||||||
|
|
||||||
|
let drawImage;
|
||||||
|
if (canvasType == "2d") {
|
||||||
|
const ctx = canvas.getContext("2d");
|
||||||
|
drawImage = function (frame) {
|
||||||
|
ctx.drawImage(frame, 0, 0);
|
||||||
|
};
|
||||||
|
} else if (canvasType == "webgl") {
|
||||||
|
const gl = canvas.getContext("webgl");
|
||||||
|
gl.bindTexture(gl.TEXTURE_2D, gl.createTexture());
|
||||||
|
drawImage = function (frame) {
|
||||||
|
gl.texImage2D(
|
||||||
|
gl.TEXTURE_2D,
|
||||||
|
0,
|
||||||
|
gl.RGBA,
|
||||||
|
gl.RGBA,
|
||||||
|
gl.UNSIGNED_BYTE,
|
||||||
|
frame
|
||||||
|
);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
dump("[" + canvasType + " webcodecs " + runContext + "] unknown type\n");
|
||||||
|
reject("unknown type " + canvasType);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
frameCount = 0;
|
||||||
|
|
||||||
|
const decoder = new VideoDecoder({
|
||||||
|
output(frame) {
|
||||||
|
if (frameCount == 0) {
|
||||||
|
start = performance.now();
|
||||||
|
}
|
||||||
|
++frameCount;
|
||||||
|
|
||||||
|
dump(
|
||||||
|
"[" +
|
||||||
|
canvasType +
|
||||||
|
" webcodecs " +
|
||||||
|
runContext +
|
||||||
|
"] draw frame " +
|
||||||
|
frameCount +
|
||||||
|
"\n"
|
||||||
|
);
|
||||||
|
drawImage(frame);
|
||||||
|
frame.close();
|
||||||
|
|
||||||
|
if (frameCount == kTotalFrames) {
|
||||||
|
var elapsed = performance.now() - start;
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve({ testName, elapsed, totalFrames: kTotalFrames });
|
||||||
|
}, 0);
|
||||||
|
|
||||||
|
dump(
|
||||||
|
"[" + canvasType + " webcodecs " + runContext + "] close decoder\n"
|
||||||
|
);
|
||||||
|
decoder.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error(e) {
|
||||||
|
dump(
|
||||||
|
"[" +
|
||||||
|
canvasType +
|
||||||
|
" webcodecs " +
|
||||||
|
runContext +
|
||||||
|
"] decoder error " +
|
||||||
|
e +
|
||||||
|
"\n"
|
||||||
|
);
|
||||||
|
decoder.close();
|
||||||
|
reject(e);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
new MP4Demuxer(videoUri, {
|
||||||
|
onConfig(config) {
|
||||||
|
dump(
|
||||||
|
"[" + canvasType + " webcodecs " + runContext + "] demuxer config\n"
|
||||||
|
);
|
||||||
|
decoder.configure(config);
|
||||||
|
},
|
||||||
|
onChunk(chunk) {
|
||||||
|
dump("[" + canvasType + " webcodecs " + runContext + "] demuxer chunk\n");
|
||||||
|
decoder.decode(chunk);
|
||||||
|
},
|
||||||
|
setStatus(msg) {
|
||||||
|
dump(
|
||||||
|
"[" +
|
||||||
|
canvasType +
|
||||||
|
" webcodecs " +
|
||||||
|
runContext +
|
||||||
|
"] demuxer status - " +
|
||||||
|
msg +
|
||||||
|
"\n"
|
||||||
|
);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.av1.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_av1_webgl", "webgl", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.av1.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_webgl_av1", "webgl", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.h264.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_webgl_h264", "webgl", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.h264.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_webgl_h264", "webgl", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="mp4box.all.min.js" type="text/javascript"></script>
|
||||||
|
<script src="demuxer_mp4.js" type="text/javascript"></script>
|
||||||
|
<script src="shared.js" type="text/javascript"></script>
|
||||||
|
<script src="helper_main.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.vp9.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_main_webgl_vp9", "webgl", videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
- You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="helper_worker.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
const worker = new Worker("worker.js");
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
const videoUri = "../../../video/clips/testsrc.1080p.60fps.vp9.short.mp4";
|
||||||
|
runTest("offscreencanvas_webcodecs_worker_webgl_vp9", "webgl", worker, videoUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body id="body" onload="init();">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
importScripts("mp4box.all.min.js");
|
||||||
|
importScripts("demuxer_mp4.js");
|
||||||
|
importScripts("shared.js");
|
||||||
|
|
||||||
|
self.onmessage = e => {
|
||||||
|
const resolve = result => {
|
||||||
|
self.postMessage(result);
|
||||||
|
};
|
||||||
|
const reject = errorMessage => {
|
||||||
|
self.postMessage({ errorMessage });
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
runTestInternal(
|
||||||
|
e.data.testName,
|
||||||
|
e.data.canvasType,
|
||||||
|
e.data.offscreenCanvas,
|
||||||
|
/* isWorker */ true,
|
||||||
|
e.data.videoUri,
|
||||||
|
resolve,
|
||||||
|
reject
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
reject(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_av1_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_h264_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_vp9_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_av1_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_h264_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_vp9_main.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_av1_worker.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_h264_worker.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/2d_vp9_worker.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_av1_worker.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_h264_worker.html
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
% http://localhost/tests/offscreencanvas/benchmarks/video/webgl_vp9_worker.html
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -273,6 +273,18 @@ class Test_get_config(object):
|
||||||
cls.argv_canvas2dvideo = (
|
cls.argv_canvas2dvideo = (
|
||||||
"--activeTests canvas2dvideo -e /some/random/path".split()
|
"--activeTests canvas2dvideo -e /some/random/path".split()
|
||||||
)
|
)
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_webgl_h264 = "--activeTests offscreencanvas_webcodecs_main_webgl_h264 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_webgl_vp9 = "--activeTests offscreencanvas_webcodecs_main_webgl_vp9 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_webgl_av1 = "--activeTests offscreencanvas_webcodecs_main_webgl_av1 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_webgl_h264 = "--activeTests offscreencanvas_webcodecs_worker_webgl_h264 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_webgl_vp9 = "--activeTests offscreencanvas_webcodecs_worker_webgl_vp9 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_webgl_av1 = "--activeTests offscreencanvas_webcodecs_worker_webgl_av1 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_2d_h264 = "--activeTests offscreencanvas_webcodecs_main_2d_h264 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_2d_vp9 = "--activeTests offscreencanvas_webcodecs_main_2d_vp9 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_main_2d_av1 = "--activeTests offscreencanvas_webcodecs_main_2d_av1 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_2d_h264 = "--activeTests offscreencanvas_webcodecs_worker_2d_h264 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_2d_vp9 = "--activeTests offscreencanvas_webcodecs_worker_2d_vp9 -e /some/random/path".split()
|
||||||
|
cls.argv_offscreencanvas_webcodecs_worker_2d_av1 = "--activeTests offscreencanvas_webcodecs_worker_2d_av1 -e /some/random/path".split()
|
||||||
cls.argv_tp5n = "--activeTests tp5n -e /some/random/path".split()
|
cls.argv_tp5n = "--activeTests tp5n -e /some/random/path".split()
|
||||||
cls.argv_tp5o = "--activeTests tp5o -e /some/random/path".split()
|
cls.argv_tp5o = "--activeTests tp5o -e /some/random/path".split()
|
||||||
cls.argv_tp5o_webext = "--activeTests tp5o_webext -e /some/random/path".split()
|
cls.argv_tp5o_webext = "--activeTests tp5o_webext -e /some/random/path".split()
|
||||||
|
|
@ -641,6 +653,282 @@ class Test_get_config(object):
|
||||||
assert test_config["filters"] is not None
|
assert test_config["filters"] is not None
|
||||||
assert test_config["unit"] == "ms"
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_webgl_h264_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_webgl_h264)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_webgl_h264"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_h264.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_webgl_vp9_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_webgl_vp9)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_webgl_vp9"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_vp9.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_webgl_av1_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_webgl_av1)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_webgl_av1"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_webgl_av1.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_webgl_h264_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_webgl_h264)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_webgl_h264"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_h264.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_webgl_vp9_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_webgl_vp9)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_webgl_vp9"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_vp9.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_webgl_av1_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_webgl_av1)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_webgl_av1"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_webgl_av1.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_2d_h264_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_2d_h264)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_2d_h264"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_h264.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_2d_vp9_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_2d_vp9)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_2d_vp9"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_vp9.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_main_2d_av1_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_main_2d_av1)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_main_2d_av1"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_main_2d_av1.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_2d_h264_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_2d_h264)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_2d_h264"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_h264.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_2d_vp9_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_2d_vp9)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_2d_vp9"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_vp9.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
|
def test_offscreencanvas_webcodecs_worker_2d_av1_has_expected_attributes(self):
|
||||||
|
config = get_config(self.argv_offscreencanvas_webcodecs_worker_2d_av1)
|
||||||
|
test_config = config["tests"][0]
|
||||||
|
|
||||||
|
assert test_config["name"] == "offscreencanvas_webcodecs_worker_2d_av1"
|
||||||
|
assert (
|
||||||
|
test_config["tpmanifest"]
|
||||||
|
!= "${talos}/tests/offscreencanvas/offscreencanvas_webcodecs_worker_2d_av1.manifest"
|
||||||
|
)
|
||||||
|
assert test_config["tpcycles"] == 1
|
||||||
|
assert test_config["tppagecycles"] == 5
|
||||||
|
assert test_config["tploadnocache"] is True
|
||||||
|
assert test_config["tpmozafterpaint"] is False
|
||||||
|
assert test_config["tpchrome"] is False
|
||||||
|
assert test_config["gecko_profile_interval"] == 2
|
||||||
|
assert test_config["gecko_profile_entries"] == 2000000
|
||||||
|
assert "win_counters" not in test_config
|
||||||
|
assert "w7_counters" not in test_config
|
||||||
|
assert "linux_counters" not in test_config
|
||||||
|
assert "mac_counters" not in test_config
|
||||||
|
assert test_config["filters"] is not None
|
||||||
|
assert test_config["unit"] == "ms"
|
||||||
|
|
||||||
@mock.patch("talos.config.build_manifest", conftest.patched_build_manifest)
|
@mock.patch("talos.config.build_manifest", conftest.patched_build_manifest)
|
||||||
def test_tp5n_has_expected_attributes(self):
|
def test_tp5n_has_expected_attributes(self):
|
||||||
config = get_config(self.argv_tp5n)
|
config = get_config(self.argv_tp5n)
|
||||||
|
|
|
||||||
|
|
@ -165,6 +165,8 @@ testing/mozbase/mozproxy/mozproxy/backends/mitm/scripts/catapult/
|
||||||
testing/talos/talos/tests/devtools/addon/content/pages/
|
testing/talos/talos/tests/devtools/addon/content/pages/
|
||||||
testing/talos/talos/tests/dromaeo/
|
testing/talos/talos/tests/dromaeo/
|
||||||
testing/talos/talos/tests/kraken/
|
testing/talos/talos/tests/kraken/
|
||||||
|
testing/talos/talos/tests/offscreencanvas/benchmarks/video/demuxer_mp4.js
|
||||||
|
testing/talos/talos/tests/offscreencanvas/benchmarks/video/mp4box.all.min.js
|
||||||
testing/talos/talos/tests/v8_7/
|
testing/talos/talos/tests/v8_7/
|
||||||
testing/web-platform/tests/resources/webidl2/
|
testing/web-platform/tests/resources/webidl2/
|
||||||
testing/web-platform/tests/tools/third_party/
|
testing/web-platform/tests/tools/third_party/
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue