CMake-only fork of https://dawn.googlesource.com/dawn with cleaned, vendored dependencies
Go to file
Corentin Wallez 0f1eb1ea3c Roll third_party/gpuweb-cts/ 177a4faf0..b0291fd96 (252 commits)
177a4faf0a..b0291fd966

$ git log 177a4faf0..b0291fd96 --date=short --no-merges --format='%ad %ae %s'
2021-09-24 hao.x.li Implement api,validation,state,device_mismatched: Part Ⅰ (#741)
2021-09-22 kainino empty commit
2021-09-23 jiawei.shao Use vertex-only pipelines when initializing depth aspects (#754)
2021-09-21 rockot require indirect-first-instance for indirect draws with firstInstance > 0 (#752)
2021-09-20 kainino Add a NumberRepr class that represents f/i/u 64/32/16/8 (#747)
2021-09-17 yunchao.he Fix a bug about max color attachment (#749)
2021-09-14 yunchao.he Test buffer related validations for texture copies (#690)
2021-09-14 jiawei.shao Add operation tests on T2T copy with multisampled color textures (#739)
2021-09-13 enga Test compute shader variables are zero initialized (#743)
2021-09-13 enga Update default limits to match the spec (#745)
2021-09-14 hao.x.li Update destinationOffset alignment to 256 in resolveQuerySet tests (#742)
2021-09-10 enga Add an option to automatically batch large lists of subcases (#733)
2021-09-10 9856269+sarahM0 wgsl abs() built-in function execution test (#730)
2021-09-10 shaobo.yan Remove CopyImageBitmapToTexture (#738)
2021-09-09 9856269+sarahM0 wgsl type parameter generator (#731)
2021-09-10 hello Fix tools/deno (#734)
2021-09-09 kvarkus Include tools in the deploy (#735)
2021-09-09 bajones Update all uses of 'gpupresent' to 'webgpu' (#740)
2021-09-01 9856269+sarahM0 add noop unique id (#729)
2021-08-31 hao.x.li Implement api,validation,state,device_mismatched: helper functions (#717)
2021-08-27 kainino Test postMessage on ArrayBuffer from getMappedRange (#728)
2021-08-27 rockot Introduce expectGPUBufferRepeatsSingleValue (#723)
2021-08-27 rockot some stress tests for shaders and render passes (#722)
2021-08-27 kainino fix async race condition in expectCompileResult (#726)
2021-08-26 sarahmashay remove accidently added file
2021-08-25 84498356+jzm-intel Implement veretx_access validation test: Part 1 (#698)
2021-08-21 sarahmashay wgsl cts for builtin fucntions
2021-08-20 yunchao.he Revise validation tests for depth/stencil formats for copies (#719)
2021-08-19 yunchao.he Validate texture format for copies (#691)
2021-08-19 shrekshao Reftests expand with formats, write canvas methods, and compositingAlphaMode (#696)
2021-08-19 tojiro Remove template that wasn't really helping anyone
2021-08-18 tojiro Addressing more feedback
2021-08-18 tojiro Refactored as suggested by Kai
2021-08-12 tojiro Expanded tests to render passes and render bundles
2021-08-11 tojiro More tests and working on other pipeline types.
2021-08-11 tojiro Added three more tests and fixed issues
2021-07-01 tojiro Implementing preliminary api,operation,command_buffer,programmable,state_tracking:* tests
2021-08-18 shaobo.yan Pipeline_layout_compat: Add buffer and sampler binding equivalent checks (#701)
2021-08-17 kainino Constrain type to guard against future bugs like #716 (#718)
2021-08-17 yunchao.he Fix a bug in api/validation/image_copy/image_copy.ts (#716)
2021-08-17 hao.x.li api,validation,encoding,programmable,pipeline_bind_group_compat plan (#697)
2021-08-17 jiawei.shao Add operation tests on copyTextureToTexture with depth/stencil - Part II (#706)
2021-08-13 tojiro Change depth/stencil sample type to 'depth'
2021-08-14 mehmetoguzderin Fix project name (#714)
2021-08-14 mehmetoguzderin Use split account for previews (#712)
2021-08-13 rockot Implement some initial stress tests (#709)
2021-08-12 bajones Updating deprecated TextureUsage flags (#710)
2021-08-12 shrekshao Remove some alpha blending factor validation (#708)
2021-08-12 kainino re-hide extra stacks from different subcases, fix bug
2021-08-12 kainino Undo hiding of extra lines of message, and don't hide extra logs from different cases
(...)
2021-05-12 tojiro Style fix suggested by Kai
2021-05-12 kainino Use more subcases (#561)
2021-05-12 kainino Document cases/subcases and ParamsBuilder better (#562)
2021-05-12 bajones Review createBindGroupLayout spec (#559)
2021-05-12 shrekshao Add DrawIndirect test (#558)
2021-05-11 kainino Fix sampledTextureBindingTypeInfo (#560)
2021-05-11 shaobo.yan Expand operation tests for copyToTexture,ImageBitmap (#545)
2021-05-06 kainino api,operation,buffers,map: describe, clean notes, add cases (#552)
2021-05-05 bajones Reviewed createBindGroup spec (#554)
2021-05-05 bajones Added some CompilationInfo tests. (#548)
2021-05-04 kainino gen_wpt_cts_html: always split down to individual tests (#544)
2021-05-04 kbrussel Add compute,basic,large_dispatch test. (#555)
2021-05-04 enga Update/cleanup map_oom.spec.ts (#551)
2021-05-04 kainino docs: nits, add pointer to a good reference test (#550)
2021-05-04 rharrison Update variable_and_const.spec.ts shader to match current WGSL spec (#553)
2021-04-29 kainino doc: make heading clearer
2021-04-29 kainino small docs updates
2021-04-29 mehmetoguzderin Reduce expire field to 10 days (#547)
2021-04-28 enga Fix WGSL storage_buffer->storage in by_sampling.ts (#546)
2021-04-28 kainino operation,vertex_state: add todo (#541)
2021-04-26 hao.x.li Add validation tests for occlusion query (#539)
2021-04-16 kainino attachment -> view
2021-04-16 kainino blending renames, remove wrong test plan
2021-04-16 kainino storeOp: required
2021-04-16 kainino computeStage -> compute
2021-04-22 jrprice Use new WGSL entry point IO syntax (#543)
2021-04-21 kainino Replace fence tests with new onSubmittedWorkDone tests (#536)
2021-04-21 corentin Add tests for GCing GPUBuffer before their mappings. (#542)
2021-04-20 kainino Update bindings API usage (#538)
2021-04-19 jrprice Replace builtin(position) with builtin(frag_coord) (#540)
2021-04-16 shrekshao Update WGSL const -> let and remove '-> void' (#537)
2021-04-16 alanbaker Fix some storage buffers (#534)
2021-04-14 kainino add deprecation linter, but disabled for now
2021-04-14 kainino Suppress deprecation warnings
2021-04-14 kainino replace incidental usages of fence with onSubmittedWorkDone
2021-04-14 kainino TODOs for new binding structure
2021-04-14 kainino update DefaultLimits
2021-04-14 kainino rename extension->feature in capability_info
2021-04-14 kainino extensions->features pt 1
2021-04-14 kainino fix easy deprecations
2021-04-14 kainino roll types, fixes for Iterable color/extent/origin (#532)
2021-04-13 kainino roll types (#531)
2021-04-13 kainino Try again to get space at the top of the PR template
2021-04-13 corentin Update README.md (#530)
2021-04-14 hao.x.li Add selectDeviceForQueryTypeOrSkipTestCase to gpu_test.ts (#529)
2021-04-12 yunchao.he Add tests for mipmap with various formats (#528)
2021-04-09 yunchao.he Fix bugs for texture creation validation (#527)
2021-04-08 enga Add tests for GPUBlendComponent (#526)
2021-04-08 kainino Use <hr> because github won't keep the extra blank lines above the ---
2021-04-08 kainino Much more verbose checklists (#525)

Created with:
  roll-dep third_party/gpuweb-cts

Change-Id: I8d82c7299f74140b1ada627c5b1161f8e12c96b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65280
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-09-28 15:40:54 +00:00
.vscode .vscode: Fix quotations in windows 'configure' task 2021-07-21 13:24:21 +00:00
build_overrides Remove obsolete GN config 2021-01-18 15:25:23 +00:00
docs wgsl-reader: reject identifiers starting with underscrore 2021-09-20 14:38:45 +00:00
fuzzers Regex fuzzer: Add return statement inside a randomly-chosen function 2021-09-28 14:57:54 +00:00
include/tint Remove TINT_EXPECTS_UBOS_TO_BE_MULTIPLE_OF_16 macro 2021-07-19 14:54:19 +00:00
infra/config Add an infra specific PRESUBMIT.py 2021-07-20 18:48:26 +00:00
kokoro Kokoro: Move the clean checkout to tmpfs 2021-09-20 19:30:35 +00:00
samples Fix build when TINT_BUILD_[WGSL|SPV|MSL|HLSL]_[READER|WRITER] are toggled off 2021-09-03 14:16:56 +00:00
src transform: Avoid symbol collision in Canonicalize IO 2021-09-27 21:40:33 +00:00
test transform: Avoid symbol collision in Canonicalize IO 2021-09-27 21:40:33 +00:00
third_party CMake: Massage CMakeLists for use by NodeJS bindings 2021-09-20 19:47:05 +00:00
tools cts: fix generated test names in get-test-plan tool 2021-09-13 23:26:00 +00:00
.clang-format Initial commit 2020-03-02 15:47:43 -05:00
.gitignore Add spirv-tools fuzzer 2021-06-24 18:10:46 +00:00
.gn Get `gn gen --check` actually working in repo 2021-04-21 19:05:14 +00:00
AUTHORS Add spirv-tools fuzzer 2021-06-24 18:10:46 +00:00
BUILD.gn BUILD.gn: Remove the temporary group with Dawn migrated. 2021-03-17 07:41:03 +00:00
CMakeLists.txt CMake: Massage CMakeLists for use by NodeJS bindings 2021-09-20 19:47:05 +00:00
CMakeSettings.json Add CMakeSettings.json with convenient defaults 2021-03-16 18:52:53 +00:00
CODE_OF_CONDUCT.md Initial commit 2020-03-02 15:47:43 -05:00
CONTRIBUTING.md Add a style guide 2021-04-08 15:10:47 +00:00
CPPLINT.cfg Adding PRESUBMIT.py with a bunch of checks turned on 2020-06-03 13:41:41 +00:00
DEPS Roll third_party/gpuweb-cts/ 177a4faf0..b0291fd96 (252 commits) 2021-09-28 15:40:54 +00:00
Doxyfile Implement AST fuzzer 2021-07-13 12:01:25 +00:00
LICENSE Initial commit 2020-03-02 15:47:43 -05:00
OWNERS Reduce OWNERS to 4 people 2021-08-24 09:59:31 +00:00
PRESUBMIT.py Force Python 3 in presubmit 2021-07-20 17:16:31 +00:00
README.md Proposed process for experimental extensions 2021-04-27 17:55:07 +00:00
standalone.gclient Convert dependency management to using gclient 2020-03-05 15:58:27 +00:00
tint_overrides_with_defaults.gni Change the default for BUILD.gn to build all the modules 2020-07-30 18:44:04 +00:00

README.md

Tint

Tint is a compiler for the WebGPU Shader Language (WGSL).

This is not an officially supported Google product.

Requirements

  • Git
  • CMake (3.10.2 or later)
  • Ninja (or other build tool)
  • Python, for fetching dependencies
  • depot_tools in your path

Build options

  • TINT_BUILD_SPV_READER : enable the SPIR-V input reader (off by default)
  • TINT_BUILD_WGSL_READER : enable the WGSL input reader (on by default)
  • TINT_BUILD_SPV_WRITER : enable the SPIR-V output writer (on by default)
  • TINT_BUILD_WGSL_WRITER : enable the WGSL output writer (on by default)
  • TINT_BUILD_FUZZERS : enable building fuzzzers (off by default)

Building

Tint uses Chromium dependency management so you need to install depot_tools and add it to your PATH.

Getting source & dependencies

# Clone the repo as "tint"
git clone https://dawn.googlesource.com/tint tint
cd tint

# Bootstrap the gclient configuration
cp standalone.gclient .gclient

# Fetch external dependencies and toolchains with gclient
gclient sync

Compiling using CMake + Ninja

mkdir -p out/Debug
cd out/Debug
cmake -GNinja ../..
ninja # or autoninja

Compiling using CMake + make

mkdir -p out/Debug
cd out/Debug
cmake ../..
make # -j N for N-way parallel build

Compiling using gn + ninja

mkdir -p out/Debug
gn gen out/Debug
autoninja -C out/Debug

Fuzzers on MacOS

If you are attempting fuzz, using TINT_BUILD_FUZZERS=ON, the version of llvm in the XCode SDK does not have the needed libfuzzer functionality included.

The build error that you will see from using the XCode SDK will look something like this:

ld: file not found:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.fuzzer_osx.a

The solution to this problem is to use a full version llvm, like what you would get via homebrew, brew install llvm, and use something like CC=<path to full clang> cmake .. to setup a build using that toolchain.

Checking [chromium-style] issues in CMake builds

The gn based work flow uses the Chromium toolchain for building in anticipation of integration of Tint into Chromium based projects. This toolchain has additional plugins for checking for style issues, which are marked with [chromium-style] in log messages. This means that this toolchain is more strict then the default clang toolchain.

In the future we will have a CQ that will build this work flow and flag issues automatically. Until that is in place, to avoid causing breakages you can run the [chromium-style] checks using the CMake based work flows. This requires setting CC to the version of clang checked out by gclient sync and setting the TINT_CHECK_CHROMIUM_STYLE to ON.

mkdir -p out/style
cd out/style
cmake ../..
CC=../../third_party/llvm-build/Release+Asserts/bin/clang cmake -DTINT_CHECK_CHROMIUM_STYLE=ON ../../ # add -GNinja for ninja builds

Issues

Please file any issues or feature requests at https://bugs.chromium.org/p/tint/issues/entry

Contributing

Please see the CONTRIBUTING and CODE_OF_CONDUCT files on how to contribute to Tint.

Tint has a process for supporting experimental extensions.