dawn-cmake/webgpu-cts
Ben Clayton 99796361ad Roll third_party/webgpu-cts/ dac3646b1..d7e8d005d (18 commits)
Update:
 - expectations.txt
 - ts_sources.txt
 - resource_files.txt
 - webtest .html files


dac3646b15..d7e8d005dd
 - d7e8d0 webgpu/shader: Migrate all `f32` expression tests to the CaseCache.
 - ea0cfe Add a DataCache & expression CaseCache
 - c6c3b7 op: Implement 'simple_blend_constant,setting_blend_constant' test in blending.spec.ts (#1984)
 - da9eeb operation,rendering,blending nits (#1986)
 - 9c990c Implement `refract` f32 tests (#1962)
 - 6b5a1f transferControlToOffscreen nits
 - 9eb57d Implement `fma` f32 tests (#1967)
 - aa6489 op: Implement 'default_blend_color,initial_blend_color' test in blending.spec.ts (#1980)
 - 7fbc3b Update rg11b10ufloat_renderable.spec.ts
 - 473ddf Add rg11b10ufloat-renderable validation test plan (#1937)
 - e36d82 Simplify code around ULP calculations and fix subtly wrong tests (#1974)
 - 634afd op: op: Implement 'index_format,setIndexBuffer_different_formats' test in index_format.spec.ts (#1973)
 - 62e3da op: Implement 'index_format,change_pipeline_after_setIndexBuffer' test in index_format.spec.ts (#1969)
 - 60769d Add f16 test ranges to quantizeToF16
 - 02f468 Fix quantizeToF16 tests to not test overflow cases for const input source
 - f5f8fc Implement 'render_bundle_commands' test in encoder_open_state.spec.ts (#1961)
 - f3375a Add support to load cross origin resources (#1951)
 - 85e3b4 Convert asin, acos and atanh to a filtered range when needed. (#1963)

Created with './tools/run cts roll'

Change-Id: I9d5a39fd2b4d951e3b001d7eab656ec20609ab7b
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/+/109765
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2022-11-16 23:09:02 +00:00
..
scripts Don't use incremental build in webgpu-cts/scripts/list.py 2022-05-10 18:17:54 +00:00
webtests Add generated webtest .html files 2022-06-10 22:00:33 +00:00
BUILD.gn Add test list to deps 2022-08-11 15:16:38 +00:00
README.md Update CTS docs 2022-09-14 17:13:17 +00:00
expectations.txt Roll third_party/webgpu-cts/ dac3646b1..d7e8d005d (18 commits) 2022-11-16 23:09:02 +00:00
test_page.html Change base directory for CTS runner, part 2 2022-06-24 18:50:19 +00:00
test_runner.js CTS: set noRaceWithRejectOnTimeout 2022-09-13 22:16:42 +00:00
worker_test_globs.txt Move WebGPU worker globs 2022-07-01 01:20:14 +00:00

README.md

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.

  1. Build the isolate

    vpython3 tools/mb/mb.py isolate out/Release telemetry_gpu_integration_test

  2. 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.

  3. 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.