tools: Move idlgen and run-cts to from dawn/node to tools/

This is the standard place for tooling.

Update src/dawn/node/README.md with the new paths, and drop inferred
arguments from the examples.

Change-Id: Ib944ca045366b81b8897d9548112a8889e097769
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/113643
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton 2022-12-12 23:06:43 +00:00 committed by Dawn LUCI CQ
parent f8e0aac2a6
commit 61b5aaccf3
10 changed files with 19 additions and 81 deletions

View File

@ -114,7 +114,7 @@ def _NonInclusiveFileFilter(file):
"src/dawn/native/metal/BackendMTL.mm", # OSX Constant "src/dawn/native/metal/BackendMTL.mm", # OSX Constant
"src/dawn/native/vulkan/SamplerVk.cpp", # External URL "src/dawn/native/vulkan/SamplerVk.cpp", # External URL
"src/dawn/native/vulkan/TextureVk.cpp", # External URL "src/dawn/native/vulkan/TextureVk.cpp", # External URL
"src/dawn/node/tools/src/cmd/run-cts/main.go", # Terminal type name "src/tools/src/cmd/run-cts/main.go", # Terminal type name
"src/dawn/samples/ComputeBoids.cpp", # External URL "src/dawn/samples/ComputeBoids.cpp", # External URL
"src/dawn/tests/end2end/DepthBiasTests.cpp", # External URL "src/dawn/tests/end2end/DepthBiasTests.cpp", # External URL
"src/tint/transform/canonicalize_entry_point_io.cc", # External URL "src/tint/transform/canonicalize_entry_point_io.cc", # External URL

View File

@ -13,10 +13,10 @@
# limitations under the License. # limitations under the License.
set(DAWN_NODE_GEN_DIR "${DAWN_BUILD_GEN_DIR}/node") set(DAWN_NODE_GEN_DIR "${DAWN_BUILD_GEN_DIR}/node")
set(IDLGEN_TOOL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tools/src/cmd/idlgen") set(IDLGEN_TOOL_DIR "${CMAKE_SOURCE_DIR}/tools/src/cmd/idlgen")
# idlgen() is a function that uses the tools/cmd/idlgen/main.go tool to generate # idlgen() is a function that uses the tools/src/cmd/idlgen/main.go tool to
# code from an IDL file and template. # generate code from an IDL file and template.
# idlgen() accepts the following named arguments: # idlgen() accepts the following named arguments:
# TEMPLATE <path> - (required) the path to the root .tmpl file. If the # TEMPLATE <path> - (required) the path to the root .tmpl file. If the
# template imports other templates, then these should be # template imports other templates, then these should be
@ -41,7 +41,7 @@ function(idlgen)
message(FATAL_ERROR "idlgen() missing IDLS argument(s)") message(FATAL_ERROR "idlgen() missing IDLS argument(s)")
endif() endif()
add_custom_command( add_custom_command(
COMMAND ${GO_EXECUTABLE} "run" "main.go" COMMAND ${GO_EXECUTABLE} "run" "${IDLGEN_TOOL_DIR}/main.go"
"--template" "${IDLGEN_TEMPLATE}" "--template" "${IDLGEN_TEMPLATE}"
"--output" "${IDLGEN_OUTPUT}" "--output" "${IDLGEN_OUTPUT}"
${IDLGEN_IDLS} ${IDLGEN_IDLS}

View File

@ -1,29 +0,0 @@
# Copyright 2022 The Dawn & Tint Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
USE_PYTHON3 = True
def _DoCommonChecks(input_api, output_api):
sys.path += [input_api.change.RepositoryRoot()]
from go_presubmit_support import RunGoTests
return RunGoTests(input_api, output_api)
CheckChangeOnUpload = _DoCommonChecks
CheckChangeOnCommit = _DoCommonChecks

View File

@ -57,15 +57,15 @@ ninja dawn.node
- Run `npm install` from inside the CTS directory to install its dependencies - Run `npm install` from inside the CTS directory to install its dependencies
```sh ```sh
./src/dawn/node/tools/run-cts --cts=<path-to-webgpu-cts> --dawn-node=<path-to-dawn.node> [WebGPU CTS query] ./src/tools/run run-cts --dawn-node=<path-to-dawn.node> [WebGPU CTS query]
``` ```
If this fails with the error message `TypeError: expander is not a function or its return value is not iterable`, try appending `--build=false` to the start of the `run-cts` command line flags. If this fails with the error message `TypeError: expander is not a function or its return value is not iterable`, try appending `--build=false` to the start of the `run-cts` command line flags.
To test against SwiftShader instead of the default Vulkan device, prefix `./src/dawn/node/tools/run-cts` with `VK_ICD_FILENAMES=<swiftshader-cmake-build>/Linux/vk_swiftshader_icd.json` and append `--flag=dawn-backend=vulkan` to the start of run-cts command line flags. For example: To test against SwiftShader instead of the default Vulkan device, prefix `./src/tools/run run-cts` with `VK_ICD_FILENAMES=<swiftshader-cmake-build>/Linux/vk_swiftshader_icd.json`. For example:
```sh ```sh
VK_ICD_FILENAMES=<swiftshader-cmake-build>/Linux/vk_swiftshader_icd.json ./src/dawn/node/tools/run-cts --cts=<path-to-webgpu-cts> --dawn-node=<path-to-dawn.node> --flag=dawn-backend=vulkan [WebGPU CTS query] VK_ICD_FILENAMES=<swiftshader-cmake-build>/Linux/vk_swiftshader_icd.json ./src/tools/run run-cts --dawn-node=<path-to-dawn.node> [WebGPU CTS query]
``` ```
The `--flag` parameter must be passed in multiple times, once for each flag begin set. Here are some common arguments: The `--flag` parameter must be passed in multiple times, once for each flag begin set. Here are some common arguments:
@ -77,7 +77,7 @@ The `--flag` parameter must be passed in multiple times, once for each flag begi
For example, on Windows, to use the d3dcompiler_47.dll from a Chromium checkout, and to dump shader output, we could run the following using Git Bash: For example, on Windows, to use the d3dcompiler_47.dll from a Chromium checkout, and to dump shader output, we could run the following using Git Bash:
```sh ```sh
./src/dawn/node/tools/run-cts --verbose --dawn-node=/c/src/dawn/build/Debug/dawn.node --cts=/c/src/webgpu-cts --flag=dlldir="C:\src\chromium\src\out\Release" --flag=enable-dawn-features=dump_shaders 'webgpu:shader,execution,builtin,abs:integer_builtin_functions,abs_unsigned:storageClass="storage";storageMode="read_write";containerType="vector";isAtomic=false;baseType="u32";type="vec2%3Cu32%3E"' ./src/tools/run run-cts --verbose --dawn-node=/c/src/dawn/build/Debug/dawn.node --cts=/c/src/webgpu-cts --flag=dlldir="C:\src\chromium\src\out\Release" --flag=enable-dawn-features=dump_shaders 'webgpu:shader,execution,builtin,abs:integer_builtin_functions,abs_unsigned:storageClass="storage";storageMode="read_write";containerType="vector";isAtomic=false;baseType="u32";type="vec2%3Cu32%3E"'
``` ```
Note that we pass `--verbose` above so that all test output, including the dumped shader, is written to stdout. Note that we pass `--verbose` above so that all test output, including the dumped shader, is written to stdout.

View File

@ -16,13 +16,13 @@
{{- /* {{- /*
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Template file for use with src/dawn/node/tools/cmd/idlgen/main.go to generate Template file for use with tools/src/cmd/idlgen/main.go to generate the
the WebGPU.cpp source file. WebGPU.cpp source file.
See: See:
* https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST * https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST
types used by this template types used by this template
* src/dawn/node/tools/cmd/idlgen/main.go for additional structures and functions * tools/src/cmd/idlgen/main.go for additional structures and functions
used by this template used by this template
* https://golang.org/pkg/text/template/ for documentation on the template syntax * https://golang.org/pkg/text/template/ for documentation on the template syntax
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@ -16,14 +16,14 @@
{{- /* {{- /*
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Template file for use with src/dawn/node/tools/cmd/idlgen/main.go to generate Template file for use with tools/src/cmd/idlgen/main.go to generate the
the WebGPU.h header file. WebGPU.h header file.
See: See:
* https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST * https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST
types used by this template types used by this template
* src/dawn/node/tools/cmd/idlgen/main.go for additional structures and functions * tools/src/cmd/idlgen/main.go for additional structures and functions used by
used by this template this template
* https://golang.org/pkg/text/template/ for documentation on the template syntax * https://golang.org/pkg/text/template/ for documentation on the template syntax
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
*/ -}} */ -}}

View File

@ -16,15 +16,15 @@
{{- /* {{- /*
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Template file for use with src/dawn/node/tools/cmd/idlgen/main.go. Template file for use with tools/src/cmd/idlgen/main.go.
This file provides common template definitions and is included by WebGPU.h.tmpl This file provides common template definitions and is included by WebGPU.h.tmpl
and WebGPU.cpp.tmpl. and WebGPU.cpp.tmpl.
See: See:
* https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST * https://github.com/ben-clayton/webidlparser/blob/main/ast/ast.go for the AST
types used by this template types used by this template
* src/dawn/node/tools/cmd/idlgen/main.go for additional structures and functions * tools/src/cmd/idlgen/main.go for additional structures and functions used by
used by this template this template
* https://golang.org/pkg/text/template/ for documentation on the template syntax * https://golang.org/pkg/text/template/ for documentation on the template syntax
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
*/ -}} */ -}}

View File

@ -1,33 +0,0 @@
#!/usr/bin/env bash
# Copyright 2021 The Tint Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -e # Fail on any error.
if [ ! -x "$(which go)" ] ; then
echo "error: go needs to be on \$PATH to use $0"
exit 1
fi
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
ROOT_DIR="$( cd "${SCRIPT_DIR}/.." >/dev/null 2>&1 && pwd )"
BINARY="${SCRIPT_DIR}/bin/run-cts"
# Rebuild the binary.
# Note, go caches build artifacts, so this is quick for repeat calls
pushd "${SCRIPT_DIR}/src/cmd/run-cts" > /dev/null
go build -o "${BINARY}" main.go
popd > /dev/null
"${BINARY}" "$@"