Add WebGPU CTS dep and build files

These build files are not yet used, but intended to be included by a
build file in Chromium. The test expectations file will move here too,
allowing Dawn/Tint changes to adjust test expectations in the same CL.

Bug: chromium:1306640
Change-Id: Id0be5c155ec7c79252e724cd64e54d1ea9f3dbda
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/83761
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
Kai Ninomiya 2022-03-17 21:43:17 +00:00 committed by Dawn LUCI CQ
parent 28a3c8947e
commit 5c780d784c
10 changed files with 653 additions and 0 deletions

1
.gitignore vendored
View File

@ -14,6 +14,7 @@
/third_party/glfw /third_party/glfw
/third_party/googletest /third_party/googletest
/third_party/gpuweb /third_party/gpuweb
/third_party/webgpu-cts
/third_party/jinja2 /third_party/jinja2
/third_party/jsoncpp /third_party/jsoncpp
/third_party/llvm-build /third_party/llvm-build

6
DEPS
View File

@ -152,6 +152,12 @@ deps = {
'condition': 'dawn_standalone', 'condition': 'dawn_standalone',
}, },
# WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
'third_party/webgpu-cts': {
'url': '{chromium_git}/external/github.com/gpuweb/cts@90654f28f4092a4993e91726cb18f697aefb201f',
'condition': 'build_with_chromium',
},
# Dependencies required to build Dawn NodeJS bindings # Dependencies required to build Dawn NodeJS bindings
'third_party/node-api-headers': { 'third_party/node-api-headers': {
'url': '{github_git}/nodejs/node-api-headers.git@d68505e4055ecb630e14c26c32e5c2c65e179bba', 'url': '{github_git}/nodejs/node-api-headers.git@d68505e4055ecb630e14c26c32e5c2c65e179bba',

87
third_party/gn/webgpu-cts/BUILD.gn vendored Normal file
View File

@ -0,0 +1,87 @@
# Copyright 2022 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Note: This file is intentionally not used by any other BUILD.gn in Dawn.
# Instead, Chromium depends directly on this file to build the WebGPU CTS.
# Scripts called from this file assume Dawn is checked out inside Chromium.
group("webgpu-cts") {
public_deps = [
":compile_src",
":copy_resources",
":verify_gen_ts_dep_list",
]
}
list_from_ts_sources_txt = read_file("ts_sources.txt", "list lines")
ts_source_inputs = [ "../../webgpu-cts/tsconfig.json" ]
foreach(file, list_from_ts_sources_txt) {
ts_source_inputs += [ "../../webgpu-cts/$file" ]
}
js_outputs = []
foreach(ts_file, list_from_ts_sources_txt) {
js_file = string_replace(ts_file, ".ts", ".js")
js_node_file = string_replace(js_file, "src/", "src-node/")
js_outputs += [ "$target_gen_dir/../../webgpu-cts/$js_file" ]
if (js_node_file != "src-node/common/runtime/wpt.js" &&
js_node_file != "src-node/common/runtime/standalone.js" &&
js_node_file != "src-node/common/runtime/helper/test_worker.js") {
js_outputs += [ "$target_gen_dir/../../webgpu-cts/$js_node_file" ]
}
}
action("compile_src") {
script = "scripts/compile_src.py"
inputs = [
"//third_party/node/node_modules/typescript/lib/tsc.js",
"//third_party/node/node.py",
"scripts/tsc_ignore_errors.py",
] + ts_source_inputs
outputs = js_outputs
data = js_outputs
args = [ rebase_path("$target_gen_dir/../../webgpu-cts", root_build_dir) ]
}
list_from_resource_files_txt = read_file("resource_files.txt", "list lines")
resource_file_inputs = []
foreach(file, list_from_resource_files_txt) {
resource_file_inputs += [ "$file" ]
}
copy("copy_resources") {
sources = []
data = []
foreach(resource_file, resource_file_inputs) {
sources += [ "../../webgpu-cts/src/resources/$resource_file" ]
# Copy into resources/, instead of src/resources/, because compile_src
# wipes src/ before running.
data += [ "$target_gen_dir/../../webgpu-cts/resources/$resource_file" ]
}
outputs =
[ "$target_gen_dir/../../webgpu-cts/resources/{{source_file_part}}" ]
}
action("verify_gen_ts_dep_list") {
script = "scripts/gen_ts_dep_lists.py"
inputs = [
# TODO(kainino): Make sure this gets retriggered when the CTS dep changes.
"resource_files.txt",
"ts_sources.txt",
]
outputs = [ "$target_out_dir/run_$target_name.stamp" ]
args = [
"--check",
"--stamp",
rebase_path(outputs[0], root_build_dir),
]
}

View File

@ -0,0 +1,14 @@
Name: WebGPU Conformance Test Suite
Short Name: webgpu-cts
Version: unknown
Revision: latest
URL: https://gpuweb.github.io/cts/
SOURCE CODE: git clone https://github.com/gpuweb/cts.git
Security Critical: no
License: BSD-3-Clause
License File: NOT_SHIPPED
Description:
(This README is for ../../webgpu-cts/. This directory is part of dawn.)
The WebGPU conformance test suite. Not used directly by Dawn, only transitively
by Chromium. There, it is run under Chromium's GPU testing infrastructure.

View File

@ -0,0 +1,6 @@
Di-3d.png
README.md
red-green.bt601.vp9.webm
red-green.mp4
red-green.theora.ogv
red-green.webmvp8.webm

View File

@ -0,0 +1,90 @@
#!/usr/bin/env python
# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import shutil
import sys
from dir_paths import webgpu_cts_root_dir, node_dir
from tsc_ignore_errors import run_tsc_ignore_errors
try:
old_sys_path = sys.path
sys.path = [node_dir] + sys.path
from node import RunNode
finally:
sys.path = old_sys_path
def compile_src(out_dir):
# First, clean the output directory so deleted files are pruned from old builds.
shutil.rmtree(out_dir)
run_tsc_ignore_errors([
'--project',
os.path.join(webgpu_cts_root_dir, 'tsconfig.json'),
'--outDir',
out_dir,
'--noEmit',
'false',
'--noEmitOnError',
'false',
'--declaration',
'false',
'--sourceMap',
'false',
'--target',
'ES2017',
])
def compile_src_for_node(out_dir, additional_args=None, clean=True):
additional_args = additional_args or []
if clean:
# First, clean the output directory so deleted files are pruned from old builds.
shutil.rmtree(out_dir)
args = [
'--project',
os.path.join(webgpu_cts_root_dir, 'node.tsconfig.json'),
'--outDir',
out_dir,
'--noEmit',
'false',
'--noEmitOnError',
'false',
'--declaration',
'false',
'--sourceMap',
'false',
'--target',
'ES6',
]
args.extend(additional_args)
run_tsc_ignore_errors(args)
if __name__ == '__main__':
if len(sys.argv) != 2:
print('Usage: compile_src.py GEN_DIR')
sys.exit(1)
gen_dir = sys.argv[1]
# Compile the CTS src.
compile_src(os.path.join(gen_dir, 'src'))
compile_src_for_node(os.path.join(gen_dir, 'src-node'))
# Run gen_listings.js to overwrite the dummy src/webgpu/listings.js created
# from transpiling src/
RunNode([
os.path.join(gen_dir, 'src-node', 'common', 'tools',
'gen_listings.js'),
'--no-validate',
os.path.join(gen_dir, 'src'),
os.path.join(gen_dir, 'src-node', 'webgpu'),
])

View File

@ -0,0 +1,17 @@
#!/usr/bin/env python
# Copyright 2022 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
gn_webgpu_cts_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
dawn_third_party_dir = os.path.dirname(os.path.dirname(gn_webgpu_cts_dir))
webgpu_cts_root_dir = os.path.join(dawn_third_party_dir, 'webgpu-cts')
_possible_chromium_third_party_dir = os.path.dirname(
os.path.dirname(dawn_third_party_dir))
_possible_node_dir = os.path.join(_possible_chromium_third_party_dir, 'node')
if os.path.exists(_possible_node_dir):
chromium_third_party_dir = _possible_chromium_third_party_dir
node_dir = _possible_node_dir

View File

@ -0,0 +1,75 @@
#!/usr/bin/env python
# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import os
import sys
from dir_paths import gn_webgpu_cts_dir, webgpu_cts_root_dir
from tsc_ignore_errors import run_tsc_ignore_errors
src_prefix = webgpu_cts_root_dir.replace('\\', '/') + '/'
def get_ts_sources():
# This will output all the source files in the form:
# "/absolute/path/to/file.ts"
# The path is always Unix-style.
# It will also output many Typescript errors since the build doesn't download the .d.ts
# dependencies.
stdout = run_tsc_ignore_errors([
'--project',
os.path.join(webgpu_cts_root_dir, 'tsconfig.json'), '--listFiles',
'--declaration', 'false', '--sourceMap', 'false'
])
lines = [l.decode() for l in stdout.splitlines()]
return [
line[len(src_prefix):] for line in lines
if line.startswith(src_prefix + 'src/')
]
def get_resource_files():
files = os.listdir(os.path.join(webgpu_cts_root_dir, 'src', 'resources'))
files.sort()
return files
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--check',
action='store_true',
help='Check that the output file is up to date.')
parser.add_argument('--stamp', help='Stamp file to write after success.')
args = parser.parse_args()
ts_sources = [x + '\n' for x in get_ts_sources()]
ts_sources_txt = os.path.join(gn_webgpu_cts_dir, 'ts_sources.txt')
resource_files = [x + '\n' for x in get_resource_files()]
resource_files_txt = os.path.join(gn_webgpu_cts_dir, 'resource_files.txt')
if args.check:
with open(ts_sources_txt, 'r') as f:
txt = f.readlines()
if (txt != ts_sources):
raise RuntimeError(
'%s is out of date. Please re-run //third_party/dawn/third_party/webgpu-cts/scripts/gen_ts_dep_lists.py\n'
% ts_sources_txt)
with open(resource_files_txt, 'r') as f:
if (f.readlines() != resource_files):
raise RuntimeError(
'%s is out of date. Please re-run //third_party/dawn/third_party/webgpu-cts/scripts/gen_ts_dep_lists.py\n'
% resource_files_txt)
else:
with open(ts_sources_txt, 'w') as f:
f.writelines(ts_sources)
with open(resource_files_txt, 'w') as f:
f.writelines(resource_files)
if args.stamp:
with open(args.stamp, 'w') as f:
f.write('')

View File

@ -0,0 +1,40 @@
#!/usr/bin/env python
# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import subprocess
import sys
import os
from dir_paths import node_dir
try:
old_sys_path = sys.path
sys.path = [node_dir] + sys.path
from node import GetBinaryPath as get_node_binary_path
finally:
sys.path = old_sys_path
tsc = os.path.join(node_dir, 'node_modules', 'typescript', 'lib', 'tsc.js')
def run_tsc_ignore_errors(args):
cmd = [get_node_binary_path(), tsc] + args
process = subprocess.Popen(cmd,
cwd=os.getcwd(),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
# Typecheck errors go in stdout, not stderr. If we see something in stderr, raise an error.
if len(stderr):
raise RuntimeError('tsc \'%s\' failed\n%s' % (' '.join(cmd), stderr))
return stdout
if __name__ == '__main__':
run_tsc_ignore_errors(sys.argv[1:])

317
third_party/gn/webgpu-cts/ts_sources.txt vendored Normal file
View File

@ -0,0 +1,317 @@
src/common/internal/version.ts
src/common/internal/stack.ts
src/common/internal/logging/log_message.ts
src/common/internal/logging/result.ts
src/common/internal/logging/logger.ts
src/common/util/timeout.ts
src/common/util/util.ts
src/common/internal/logging/test_case_recorder.ts
src/common/util/types.ts
src/common/runtime/helper/options.ts
src/common/internal/query/encode_selectively.ts
src/common/internal/query/json_param_value.ts
src/common/internal/query/separators.ts
src/common/internal/query/validQueryPart.ts
src/common/internal/query/parseQuery.ts
src/common/internal/query/stringify_params.ts
src/common/internal/query/query.ts
src/common/internal/query/compare.ts
src/common/internal/params_utils.ts
src/common/framework/fixture.ts
src/common/framework/params_builder.ts
src/common/framework/resources.ts
src/common/internal/test_group.ts
src/common/framework/test_group.ts
src/common/internal/test_suite_listing.ts
src/common/internal/util.ts
src/common/internal/tree.ts
src/common/internal/file_loader.ts
src/common/util/navigator_gpu.ts
src/common/runtime/helper/sys.ts
src/common/runtime/cmdline.ts
src/common/runtime/server.ts
src/common/runtime/helper/test_worker.ts
src/common/runtime/standalone.ts
src/common/runtime/wpt.ts
src/common/runtime/helper/test_worker-worker.ts
src/common/tools/checklist.ts
src/common/tools/crawl.ts
src/common/tools/dev_server.ts
src/common/tools/gen_listings.ts
src/common/tools/gen_wpt_cts_html.ts
src/common/tools/version.ts
src/common/util/collect_garbage.ts
src/common/util/colors.ts
src/common/util/data_tables.ts
src/common/util/preprocessor.ts
src/unittests/unit_test.ts
src/demo/a.spec.ts
src/demo/json.spec.ts
src/demo/a/b.spec.ts
src/demo/a/b/c.spec.ts
src/demo/a/b/d.spec.ts
src/demo/file_depth_2/in_single_child_dir/r.spec.ts
src/stress/listing.ts
src/webgpu/constants.ts
src/stress/adapter/device_allocation.spec.ts
src/webgpu/util/constants.ts
src/webgpu/util/conversion.ts
src/webgpu/util/math.ts
src/webgpu/util/unions.ts
src/webgpu/util/texture/base.ts
src/webgpu/util/texture/layout.ts
src/webgpu/capability_info.ts
src/webgpu/util/buffer.ts
src/webgpu/util/check_contents.ts
src/webgpu/util/command_buffer_maker.ts
src/webgpu/util/device_pool.ts
src/webgpu/util/texture/texel_data.ts
src/webgpu/gpu_test.ts
src/stress/compute/compute_pass.spec.ts
src/stress/device/bind_group_allocation.spec.ts
src/stress/device/bind_group_layout_allocation.spec.ts
src/stress/device/buffer_allocation.spec.ts
src/stress/device/command_encoder_allocation.spec.ts
src/stress/device/compute_pipeline_allocation.spec.ts
src/stress/device/pipeline_layout_allocation.spec.ts
src/stress/device/query_set_allocation.spec.ts
src/stress/device/render_bundle_allocation.spec.ts
src/stress/device/render_pipeline_allocation.spec.ts
src/stress/device/sampler_allocation.spec.ts
src/stress/device/shader_module_allocation.spec.ts
src/stress/device/texture_allocation.spec.ts
src/stress/memory/churn.spec.ts
src/webgpu/util/memory.ts
src/stress/memory/oom.spec.ts
src/stress/queries/occlusion.spec.ts
src/stress/queries/pipeline_statistics.spec.ts
src/stress/queries/resolve.spec.ts
src/stress/queries/timestamps.spec.ts
src/stress/queue/submit.spec.ts
src/stress/render/render_pass.spec.ts
src/stress/render/vertex_buffers.spec.ts
src/stress/shaders/entry_points.spec.ts
src/stress/shaders/non_halting.spec.ts
src/stress/shaders/slow.spec.ts
src/stress/texture/large.spec.ts
src/unittests/test_group_test.ts
src/unittests/async_expectations.spec.ts
src/unittests/basic.spec.ts
src/unittests/check_contents.spec.ts
src/unittests/conversion.spec.ts
src/unittests/getStackTrace.spec.ts
src/unittests/listing.ts
src/unittests/loaders_and_trees.spec.ts
src/unittests/logger.spec.ts
src/unittests/maths.spec.ts
src/unittests/params_builder_and_utils.spec.ts
src/unittests/params_builder_toplevel.spec.ts
src/unittests/preprocessor.spec.ts
src/unittests/query_compare.spec.ts
src/unittests/query_string.spec.ts
src/unittests/test_group.spec.ts
src/unittests/test_query.spec.ts
src/webgpu/examples.spec.ts
src/webgpu/listing.ts
src/webgpu/api/operation/labels.spec.ts
src/webgpu/api/operation/onSubmittedWorkDone.spec.ts
src/webgpu/api/operation/uncapturederror.spec.ts
src/webgpu/api/operation/adapter/requestDevice.spec.ts
src/webgpu/api/operation/adapter/requestDevice_limits.spec.ts
src/webgpu/api/operation/buffers/mapping_test.ts
src/webgpu/api/operation/buffers/map.spec.ts
src/webgpu/api/operation/buffers/map_ArrayBuffer.spec.ts
src/webgpu/api/operation/buffers/map_detach.spec.ts
src/webgpu/api/operation/buffers/map_oom.spec.ts
src/webgpu/api/operation/buffers/threading.spec.ts
src/webgpu/api/operation/command_buffer/basic.spec.ts
src/webgpu/api/operation/command_buffer/clearBuffer.spec.ts
src/webgpu/api/operation/command_buffer/copyBufferToBuffer.spec.ts
src/webgpu/api/operation/command_buffer/copyTextureToTexture.spec.ts
src/webgpu/api/operation/command_buffer/image_copy.spec.ts
src/webgpu/api/operation/command_buffer/programmable/programmable_state_test.ts
src/webgpu/api/operation/command_buffer/programmable/state_tracking.spec.ts
src/webgpu/api/operation/command_buffer/render/dynamic_state.spec.ts
src/webgpu/api/operation/command_buffer/render/state_tracking.spec.ts
src/webgpu/api/operation/compute/basic.spec.ts
src/webgpu/api/operation/compute_pipeline/entry_point_name.spec.ts
src/webgpu/api/operation/device/lost.spec.ts
src/webgpu/api/operation/memory_sync/buffer/buffer_sync_test.ts
src/webgpu/api/operation/memory_sync/buffer/rw_and_wr.spec.ts
src/webgpu/api/operation/memory_sync/buffer/ww.spec.ts
src/webgpu/api/operation/memory_sync/texture/texture_sync_test.ts
src/webgpu/api/operation/memory_sync/texture/same_subresource.spec.ts
src/webgpu/api/operation/pipeline/default_layout.spec.ts
src/webgpu/api/operation/queue/writeBuffer.spec.ts
src/webgpu/api/operation/render_pass/clear_value.spec.ts
src/webgpu/api/operation/render_pass/resolve.spec.ts
src/webgpu/api/operation/render_pass/storeOp.spec.ts
src/webgpu/api/operation/render_pass/storeop2.spec.ts
src/webgpu/api/operation/render_pipeline/alpha_to_coverage.spec.ts
src/webgpu/api/operation/render_pipeline/culling_tests.spec.ts
src/webgpu/api/operation/render_pipeline/entry_point_name.spec.ts
src/webgpu/api/operation/render_pipeline/pipeline_output_targets.spec.ts
src/webgpu/api/operation/render_pipeline/primitive_topology.spec.ts
src/webgpu/api/operation/render_pipeline/sample_mask.spec.ts
src/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.spec.ts
src/webgpu/api/operation/rendering/basic.spec.ts
src/webgpu/api/operation/rendering/blending.spec.ts
src/webgpu/api/operation/rendering/depth.spec.ts
src/webgpu/api/operation/rendering/depth_clip_clamp.spec.ts
src/webgpu/api/operation/rendering/draw.spec.ts
src/webgpu/api/operation/rendering/indirect_draw.spec.ts
src/webgpu/api/operation/rendering/robust_access_index.spec.ts
src/webgpu/api/operation/resource_init/buffer.spec.ts
src/webgpu/util/texture/subresource.ts
src/webgpu/api/operation/resource_init/check_texture/by_copy.ts
src/webgpu/api/operation/resource_init/check_texture/by_ds_test.ts
src/webgpu/api/operation/resource_init/check_texture/by_sampling.ts
src/webgpu/api/operation/resource_init/texture_zero.spec.ts
src/webgpu/api/operation/sampling/anisotropy.spec.ts
src/webgpu/api/operation/sampling/filter_mode.spec.ts
src/webgpu/api/operation/sampling/lod_clamp.spec.ts
src/webgpu/api/operation/shader_module/compilation_info.spec.ts
src/webgpu/api/operation/texture_view/read.spec.ts
src/webgpu/api/operation/texture_view/write.spec.ts
src/webgpu/api/operation/vertex_state/correctness.spec.ts
src/webgpu/api/operation/vertex_state/index_format.spec.ts
src/webgpu/api/validation/validation_test.ts
src/webgpu/api/validation/attachment_compatibility.spec.ts
src/webgpu/api/validation/createBindGroup.spec.ts
src/webgpu/api/validation/createBindGroupLayout.spec.ts
src/webgpu/api/validation/createComputePipeline.spec.ts
src/webgpu/api/validation/createPipelineLayout.spec.ts
src/webgpu/api/validation/createRenderPipeline.spec.ts
src/webgpu/api/validation/createSampler.spec.ts
src/webgpu/api/validation/createTexture.spec.ts
src/webgpu/api/validation/createView.spec.ts
src/webgpu/api/validation/create_pipeline.spec.ts
src/webgpu/api/validation/error_scope.spec.ts
src/webgpu/api/validation/layout_shader_compat.spec.ts
src/webgpu/api/validation/render_pass_descriptor.spec.ts
src/webgpu/api/validation/vertex_state.spec.ts
src/webgpu/api/validation/buffer/create.spec.ts
src/webgpu/api/validation/buffer/destroy.spec.ts
src/webgpu/api/validation/buffer/mapping.spec.ts
src/webgpu/api/validation/buffer/threading.spec.ts
src/webgpu/api/validation/capability_checks/features/depth_clip_control.spec.ts
src/webgpu/api/validation/capability_checks/features/query_types.spec.ts
src/webgpu/api/validation/capability_checks/features/texture_formats.spec.ts
src/webgpu/api/validation/encoding/beginRenderPass.spec.ts
src/webgpu/api/validation/encoding/encoder_state.spec.ts
src/webgpu/api/validation/encoding/render_bundle.spec.ts
src/webgpu/api/validation/encoding/cmds/buffer_texture_copies.spec.ts
src/webgpu/api/validation/encoding/cmds/clearBuffer.spec.ts
src/webgpu/api/validation/encoding/cmds/compute_pass.spec.ts
src/webgpu/api/validation/encoding/cmds/copyBufferToBuffer.spec.ts
src/webgpu/api/validation/encoding/cmds/copyTextureToTexture.spec.ts
src/webgpu/api/validation/encoding/cmds/debug.spec.ts
src/webgpu/api/validation/encoding/cmds/index_access.spec.ts
src/webgpu/api/validation/encoding/cmds/render_pass.spec.ts
src/webgpu/api/validation/encoding/cmds/setBindGroup.spec.ts
src/webgpu/api/validation/encoding/cmds/render/draw.spec.ts
src/webgpu/api/validation/encoding/cmds/render/dynamic_state.spec.ts
src/webgpu/api/validation/encoding/cmds/render/render.ts
src/webgpu/api/validation/encoding/cmds/render/indirect_draw.spec.ts
src/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.spec.ts
src/webgpu/api/validation/encoding/cmds/render/setPipeline.spec.ts
src/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.spec.ts
src/webgpu/api/validation/encoding/cmds/render/state_tracking.spec.ts
src/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.spec.ts
src/webgpu/api/validation/encoding/queries/common.ts
src/webgpu/api/validation/encoding/queries/begin_end.spec.ts
src/webgpu/api/validation/encoding/queries/general.spec.ts
src/webgpu/api/validation/encoding/queries/pipeline_statistics.spec.ts
src/webgpu/api/validation/encoding/queries/resolveQuerySet.spec.ts
src/webgpu/api/validation/image_copy/image_copy.ts
src/webgpu/api/validation/image_copy/buffer_related.spec.ts
src/webgpu/api/validation/image_copy/layout_related.spec.ts
src/webgpu/api/validation/image_copy/texture_related.spec.ts
src/webgpu/api/validation/initialization/requestDevice.spec.ts
src/webgpu/api/validation/query_set/create.spec.ts
src/webgpu/api/validation/query_set/destroy.spec.ts
src/webgpu/api/validation/queue/buffer_mapped.spec.ts
src/webgpu/api/validation/queue/submit.spec.ts
src/webgpu/api/validation/queue/writeBuffer.spec.ts
src/webgpu/util/create_elements.ts
src/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.spec.ts
src/webgpu/api/validation/queue/destroyed/buffer.spec.ts
src/webgpu/api/validation/queue/destroyed/query_set.spec.ts
src/webgpu/api/validation/render_pass/resolve.spec.ts
src/webgpu/api/validation/render_pass/storeOp.spec.ts
src/webgpu/api/validation/resource_usages/texture/in_pass_encoder.spec.ts
src/webgpu/api/validation/resource_usages/texture/in_render_common.spec.ts
src/webgpu/api/validation/resource_usages/texture/in_render_misc.spec.ts
src/webgpu/api/validation/texture/destroy.spec.ts
src/webgpu/idl/exposed.html.ts
src/webgpu/idl/idl_test.ts
src/webgpu/idl/constants/flags.spec.ts
src/webgpu/shader/types.ts
src/webgpu/shader/values.ts
src/webgpu/util/compare.ts
src/webgpu/shader/execution/expression.ts
src/webgpu/shader/execution/robust_access.spec.ts
src/webgpu/shader/execution/robust_access_vertex.spec.ts
src/webgpu/shader/execution/zero_init.spec.ts
src/webgpu/shader/execution/builtin/abs.spec.ts
src/webgpu/shader/execution/builtin/all.spec.ts
src/webgpu/shader/execution/builtin/any.spec.ts
src/webgpu/shader/execution/builtin/atan.spec.ts
src/webgpu/shader/execution/builtin/atan2.spec.ts
src/webgpu/shader/execution/builtin/ceil.spec.ts
src/webgpu/shader/execution/builtin/clamp.spec.ts
src/webgpu/shader/execution/builtin/cos.spec.ts
src/webgpu/shader/execution/builtin/countLeadingZeros.spec.ts
src/webgpu/shader/execution/builtin/countTrailingZeros.spec.ts
src/webgpu/shader/execution/builtin/extractBits.spec.ts
src/webgpu/shader/execution/builtin/firstLeadingBit.spec.ts
src/webgpu/shader/execution/builtin/firstTrailingBit.spec.ts
src/webgpu/shader/execution/builtin/float_built_functions.spec.ts
src/webgpu/shader/execution/builtin/floor.spec.ts
src/webgpu/shader/execution/builtin/fract.spec.ts
src/webgpu/shader/execution/builtin/insertBits.spec.ts
src/webgpu/shader/execution/builtin/integer_built_in_functions.spec.ts
src/webgpu/shader/execution/builtin/inversesqrt.spec.ts
src/webgpu/shader/execution/builtin/ldexp.spec.ts
src/webgpu/shader/execution/builtin/log.spec.ts
src/webgpu/shader/execution/builtin/log2.spec.ts
src/webgpu/shader/execution/builtin/logical_built_in_functions.spec.ts
src/webgpu/shader/execution/builtin/max.spec.ts
src/webgpu/shader/execution/builtin/min.spec.ts
src/webgpu/shader/execution/builtin/select.spec.ts
src/webgpu/shader/execution/builtin/sin.spec.ts
src/webgpu/shader/execution/builtin/value_testing_built_in_functions.spec.ts
src/webgpu/shader/execution/memory_model/memory_model_setup.ts
src/webgpu/shader/execution/memory_model/atomicity.spec.ts
src/webgpu/shader/execution/memory_model/barrier.spec.ts
src/webgpu/shader/execution/memory_model/coherence.spec.ts
src/webgpu/shader/execution/memory_model/weak.spec.ts
src/webgpu/shader/execution/sampling/gradients_in_varying_loop.spec.ts
src/webgpu/shader/execution/shader_io/compute_builtins.spec.ts
src/webgpu/shader/execution/shader_io/shared_structs.spec.ts
src/webgpu/shader/validation/shader_validation_test.ts
src/webgpu/shader/validation/variable_and_const.spec.ts
src/webgpu/shader/validation/shader_io/util.ts
src/webgpu/shader/validation/shader_io/builtins.spec.ts
src/webgpu/shader/validation/shader_io/generic.spec.ts
src/webgpu/shader/validation/shader_io/interpolate.spec.ts
src/webgpu/shader/validation/shader_io/invariant.spec.ts
src/webgpu/shader/validation/shader_io/locations.spec.ts
src/webgpu/shader/validation/wgsl/basic.spec.ts
src/webgpu/util/copy_to_texture.ts
src/webgpu/util/texture/texel_data.spec.ts
src/webgpu/web_platform/util.ts
src/webgpu/web_platform/canvas/configure.spec.ts
src/webgpu/web_platform/canvas/context_creation.spec.ts
src/webgpu/web_platform/canvas/getCurrentTexture.spec.ts
src/webgpu/web_platform/canvas/getPreferredFormat.spec.ts
src/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.spec.ts
src/webgpu/web_platform/copyToTexture/ImageBitmap.spec.ts
src/webgpu/web_platform/copyToTexture/canvas.spec.ts
src/webgpu/web_platform/copyToTexture/video.spec.ts
src/webgpu/web_platform/external_texture/video.spec.ts
src/webgpu/web_platform/reftests/gpu_ref_test.ts
src/webgpu/web_platform/reftests/canvas_clear.html.ts
src/webgpu/web_platform/reftests/canvas_complex.html.ts
src/webgpu/web_platform/reftests/canvas_composite_alpha.html.ts
src/webgpu/web_platform/reftests/canvas_size_different_with_back_buffer_size.html.ts