Update:
- expectations.txt
- ts_sources.txt
- resource_files.txt
- webtest .html files
d8a28755b2..cbd5a50827
- cbd5a5 val: Add 'push_pop_call_count_unbalance,render_compute_pass' test
- 288990 val: Introduce debugMarker.spec.ts to test debug marker
- e520cb Use cast instead of suffix for signed integers in Scalar (#1936)
- b97207 Convert f32 binary expression tests to use pre-generated inputs (#1933)
- 70e87f Convert pack* tests to use generated vectors for inputs (#1932)
- ff9aba Implement `pack4x8unorm` tests (#1923)
- d5c1a9 Implement `pack4x8snorm` tests (#1924)
- 4412a6 Implement `pack2x16snorm` tests (#1922)
- b812e1 Implement `pack2x16unorm` tests (#1920)
- 874525 Implement `faceForward` f32 tests (#1900)
- afb5c8 val: Implement 'call_after_successful_finish' test (#1918)
- 54213a val: Implement 'pass_end_invalid_order' test (#1912)
- 8ced52 val: Implement 'empty_bind_group_layouts_requires_empty_bind_groups,render_pass' test (#1915)
- 9ff9ec Implement `reflect` f32 tests (#1908)
- 2baf7b val: Implement 'empty_bind_group_layouts_requires_empty_bind_groups' test (#1910)
- e6f01e Implement `distance` f32 tests (#1894)
- fbdfd0 Fix pack2x16float tests to correctly handle corner cases (#1911)
- 9c402f Implement `asin` f32 tests (#1898)
- c1164b Implement `acos` f32 tests (#1897)
- eba1a7 Add tests on effective buffer binding size the fix existing tests (#1906)
- 6c61e3 op: Implement 'multiple_pairs_of_draws_in_one_render_bundle' test in multiple_buffers.spec.ts (#1907)
- 74b1f1 op: Implement 'multiple_pairs_of_draws_in_one_render_bundle' test in multiple_buffers.spec.ts (#1901)
- 777f1c Implement 'index_range,auto_layout' test in getBindGroupLayout.spec.ts (#1899)
- f0dacb Implement `pack2x16float` tests (#1890)
- dbbbc8 op: Implement 'two_dispatches_in_the_same_compute_pass' test in multiple_buffers.spec.ts (#1896)
- 2abd75 Implement 'index_range' test in getBindGroupLayout.spec.ts (#1892)
- cbdd47 Roll types to 0.1.22 and test rg11b10ufloat-renderable requestDevice (#1888)
- 723878 op: Implement 'ww' test in multiple_buffers.spec.ts (#1879)
- b411f7 Remove a fallback value in the use of maxBindGroups value (#1895)
- 68e6e0 Update `atan2` F32 tests to account for atan based implementations (#1837)
- 07936b Implement `cross` f32 tests (#1878)
- 5efbf7 compilation_info: Check offset when there is a carriage-return. (#1880)
- 2f74c8 Implement 'timestampWrites,invalid_query_set' test in beginComputePass.spec.ts (#1877)
- a0b0ba op: Implement 'wr' test in multiple_buffers.spec.ts (#1872)
- 427b99 Implement boolean logical equality tests (#1876)
- 115248 Style and bug fixes in device_mismatch tests (#1871)
- 2c53b5 Add a 'sampler,device_mismatch' test to createBindGroup.spec.ts (#1867)
- 291ce4 Implement 'sampler,compare_function_with_binding_type' test in createBindGroup.spec.ts (#1865)
- 497c85 op: Implement test in multiple_buffers.spec.ts (#1857)
- 3eaf0e Add execution tests for logical binary operations (#1870)
- 6f50ab Add execution tests for logical negation (#1869)
Created with './tools/run cts roll'
Change-Id: I1816812c091b0cea298f319fc879ca526648ecd4
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/106900
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Running the WebGPU CTS Locally with Chrome
Running the WebGPU CTS locally with Chrome requires a Chromium checkout.
Follow these instructions for checking out
and building Chrome. You'll also need to build the telemetry_gpu_integration_test
target.
At the root of a Chromium checkout, run:
./content/test/gpu/run_gpu_integration_test.py webgpu_cts --browser=exact --browser-executable=path/to/your/chrome-executable
If you don't want to build Chrome, you can still run the CTS, by passing the path to an existing Chrome executable to the --browser-executable
argument. However, if you would like to use all harness functionality (symbolizing stack dumps, etc.). You will still need to build the telemetry_gpu_integration_test
target.
Useful command-line arguments:
--help
: See more options and argument documentation.-l
: List all tests that would be run.--test-filter
: Filter tests.--passthrough --show-stdout
: Show browser output. See also--browser-logging-verbosity
.--extra-browser-args
: Pass extra args to the browser executable.--jobs=N
: Run with multiple parallel browser instances.--stable-jobs
: Assign tests to each job in a stable order. Used on the bots for consistency and ease of reproduction.--enable-dawn-backend-validation
: Enable Dawn's backend validation.--use-webgpu-adapter=[default,swiftshader,compat]
: Forwarded to the browser to select a particular WebGPU adapter.
Running a local CTS build on Swarming
Often, it's useful to test changes on Chrome's infrastructure if it's difficult to reproduce a bug locally. To do that, we can package our local build as an "isolate" and upload it to Swarming to run there. This is often much faster than uploading your CL to Gerrit and triggering tryjobs.
Note that since you're doing a local build, you need to be on the same type of machine as the job you'd like to trigger in swarming. To run a job on a Windows bot, you need to build the isolate on Windows.
-
Build the isolate
vpython3 tools/mb/mb.py isolate out/Release telemetry_gpu_integration_test
-
Upload the isolate
./tools/luci-go/isolate archive -cas-instance chromium-swarm -i out/Release/telemetry_gpu_integration_test.isolate
This will output a hash like: 95199eb624d8ddb6ffdfe7a2fc41bc08573aebe3d17363a119cb1e9ca45761ae/734
Save this hash for use in the next command.
-
Trigger the swarming job.
The command structure is as follows:
./tools/luci-go/swarming trigger -S https://chromium-swarm.appspot.com <dimensions...> -digest <YOUR_ISOLATE_HASH> -- <command> ...
Say you want to trigger a job on a Linux Intel bot. It's easiest to check an existing task to see the right args you would use. For example: https://chromium-swarm.appspot.com/task?id=5d552b8def31ab11.
In the table on the left hand side, you can see the bot's Dimensions. In the Raw Output on the right or below the table, you can see the commands run on this bot. Copying those, you would use:
./tools/luci-go/swarming trigger -S https://chromium-swarm.appspot.com -d "pool=chromium.tests.gpu" -d "cpu=x86-64" -d "gpu=8086:9bc5-20.0.8" -d "os=Ubuntu-18.04.6" -digest 95199eb624d8ddb6ffdfe7a2fc41bc08573aebe3d17363a119cb1e9ca45761ae/734 -- vpython3 testing/test_env.py testing/scripts/run_gpu_integration_test_as_googletest.py content/test/gpu/run_gpu_integration_test.py --isolated-script-test-output=${ISOLATED_OUTDIR}/output.json webgpu_cts --browser=release --passthrough -v --show-stdout --extra-browser-args="--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan" --total-shards=14 --shard-index=0 --jobs=4 --stable-jobs
The command will output a link to the Swarming task for you to see the results.