dawn-cmake/webgpu-cts
Ben Clayton d0746d75e6 Roll third_party/webgpu-cts/ ad8abf400..631d877e7 (52 commits)
Regenerated:
 - expectations.txt
 - ts_sources.txt
 - test_list.txt
 - cache_list.txt
 - resource_files.txt
 - webtest .html files


ad8abf400d..631d877e75
 - 631d87 Add `f32` matrix subtraction tests (#2279)
 - 07f15b Add f32 matrix addition tests (#2278)
 - 16f862 Add validation tests about feature 'bgra8unorm-storage' (#2275)
 - 5dc0ec Add max vertex / max attribute limit / max stride tests
 - 763d0b Upgrade gpuweb/types to 0.1.27 (#2273)
 - 0dff1a Cleanup Validate maxBindGroups
 - d0b77a Add test for maxBindGroups and maxBindingsPerBindGroup
 - 2be5a7 Add getGPUBindingCommandsMixin to limits_utils
 - 8c190e Split GPUTest into GPUTest and GPUTestBase
 - b365b1 Implement `transpose` f32 tests (#2249)
 - 977a54 Add more tests for end twice (#2251)
 - feb07c Update to use `keysOf` helper. (#2243)
 - 1dee49 [wgsl] Tests `@const` is not allowed to be used as an attribute. (#2246)
 - 432aad [wgsl] Add placement tests for @builtin. (#2248)
 - 363837 Add validation tests for unary not and binary and/or (#2247)
 - 61b6ad Update builtin parse test to not use code as URL. (#2245)
 - 6e62ce Update `align` parsing tests. (#2244)
 - 534fb6 [wgsl] Add validation tests for `break` placement (#2240)
 - 991a57 add maxTextureArrayLayers limit test (#2234)
 - c7293f add maxBufferSize limit test (#2236)
 - 07216f [wgsl] Add validation of `discard` placement. (#2239)
 - cb7d76 [wgsl] Update `static_assert` to `const_assert`. (#2237)
 - d02b86 [wgsl] Add validation tests for pipeline stage attributes. (#2233)
 - 17eafe Add limit tests for maxTextureDimension1/2/3D (#2227)
 - d9199d Avoid writable storage buffer binding aliasing (#2230)
 - 6c7083 [wgsl] Validate expressions passed to attributes. (#2229)
 - 748ec9 Add a few more constant/override tests
 - 9300ec [wgsl] Alignment attribute tests. (#2180)
 - b2f9c2 Remove tests of end pass twice in encoder_state.spec.ts (#2226)
 - 1bf9c3 Test destroying an invalid queryset and an invalid texture (#2223)
 - efcb12 Fix a few spelling errors
 - 221d30 CSS, make button colors match (#2221)
 - 992b58 Culling: Test triangle-strips, depth, and stencil results
 - ae3c5e Add tests for i32 binary scalar-vector ops (#2219)
 - 6afbd0 Implement Matrix type for numeric testing (#2204)
 - e2248b Texture utility refactoring. (#2184)
 - b62579 op,render_pipeline,alpha_to_coverage (#2202)
 - 5a17b9 Add test for u32 scalar-vector remainder (#2216)
 - bd8450 Allow bgra8unorm as storage textures (#2212)
 - 11e6fb Added sourcmaps to webgpu:api,operation,shader_module,compilation_info
 - cf980a Fix package-lock.json (#2214)
 - 19fc83 Add tests for u32 scalar-vector division (#2215)
 - 7fa1d7 Add transferControlToOffscreen cases to colorSpace ref test
 - 458788 Make labels pass new eslint rules
 - 6c8361 Add tests for u32 scalar-vector addition and subtraction (#2208)
 - 7324ba Test labels in descriptors appear on objects created.
 - a0822b Add a few more debug markers (#2197)
 - 2db4fd Adds typescript-eslint/require-await and fixes existing warnings. (#2207)
 - 73a99f Adds val,buffer,create,limit tests (#2192)
 - 454253 Add a `--coverage` flag to cmdline.ts
 - 2cff62 Add tests for binary multiplication of scalars with vectors of type u32 (#2181)
 - a7e54e Implements and updates maxColorAttachmentBytesPerSample tests (#2200)

Created with './tools/run cts roll'

Change-Id: I05e331e2c7f5e2db42f573f14c208ee13fa2fa94
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/+/120201
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-02-18 01:15:46 +00:00
..
scripts Generate and load CTS cache 2022-11-21 15:16:51 +00:00
webtests Roll third_party/webgpu-cts/ 9fbed0099..3f9b09b36 (8 commits) 2023-01-24 20:32:05 +00:00
BUILD.gn Add test list to deps 2022-08-11 15:16:38 +00:00
OWNERS Set OWNERS to * on .txt files needed for CTS rolls 2023-02-13 10:17:04 +00:00
PRESUBMIT.py Reland "Add expectations.txt validation to presubmit" 2022-12-08 21:57:55 +00:00
README.md Update CTS docs 2022-09-14 17:13:17 +00:00
expectations.txt Roll third_party/webgpu-cts/ ad8abf400..631d877e7 (52 commits) 2023-02-18 01:15:46 +00:00
test_page.html Change base directory for CTS runner, part 2 2022-06-24 18:50:19 +00:00
test_runner.js Roll third_party/webgpu-cts/ 0673bb68c..6d3a80420 (1 commit) 2023-01-05 21:44:37 +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.