Roll 6 dependencies

Roll third_party/glslang/ 839704450..29c9135d0 (34 commits)

$ git log 839704450..29c9135d0 --date=short --no-merges --format='%ad %ae %s'
2020-07-07 rharrison Make sure glslang_angle has a definition in
2020-07-07 bclayton Remove GLSLANG_BUILD_PIC flag
2020-07-07 bclayton Add new static targets to VS solution folders
2020-07-07 bclayton Add new rules to .gitignore
2020-07-03 marcin.slusarz Add --quiet option.
2020-07-05 ShabbyX gn: Fix dawn tests in Chromium
2020-07-05 ShabbyX gn: Fix `gn gen --check` by adding missing dependency
2020-07-03 bclayton Add GLSLANG_BUILD_PIC CMake flag
2020-07-03 ShabbyX gn: Optionally disable optimizations and HLSL
2020-07-03 bclayton Don't use add_link_options() on old CMake versions
2020-07-03 bclayton License headers: s/Google/The Khronos Group
2020-07-03 bclayton Kokoro: Correct the `build_file' path to
2020-07-02 bclayton Add config for license-checker and Kokoro scripts.
2020-07-02 bclayton Fix GLSLANG_IS_SHARED_LIBRARY define
2020-07-01 bclayton Add missing copyright headers
2020-07-02 cepheus Bump revision.
2020-07-01 cepheus SPIRV-Tools and tests: Update to location-validation in SPIRV-Tools.
2020-07-01 cepheus Tests: More broadly use automapping binding/location.
2020-07-01 bclayton Add additional licenses in use to LICENSE.txt
2020-07-01 cepheus HLSL: Catch error cases earlier, preventing a later assert.
2020-06-29 bclayton glslang: Only export public interface for SOs
2020-06-29 bclayton CMake: break up glslang into smaller static libs
2020-06-30 cepheus SPV: RelaxedPrecision: use the result precision for texture sampling.
2020-06-30 cepheus SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations.
2020-06-24 e.proydakov Fixed GCC -Wunused-parameter in hlslParseables.cpp.
2020-06-29 bclayton CMake: Compile with -fPIC when building SOs
2020-06-29 bclayton CMake: Error on unresolved symbols
2020-06-29 bclayton Remove root kokoro/linux-*-cmake configs
2020-06-26 cepheus SPV: Fix #2293: keep relaxed precision on arg passed to relaxed param
2020-06-26 cepheus SPV: Partially address #2293: correct "const in" precision matching.
2020-06-25 Add pack_matrix test
2020-06-12 HLSL: Fix #pragma pack_matrix(row_major) not work on global uniforms
2020-06-24 bclayton Kokoro: Split linux cmake cfgs into static/shared
2020-06-23 e.proydakov Fixed msvc 2019 nmake compiler warnings with RTTI. By default cmake generates cxx_flags with `/GR` parameter. I updated CMAKE_CXX_FLAGS string and replaced `/GR` -> `/GR-`

Created with:
  roll-dep third_party/glslang

Roll third_party/shaderc/ f4025c1cd..1402ed576 (3 commits)

$ git log f4025c1cd..1402ed576 --date=short --no-merges --format='%ad %ae %s'
2020-07-07 rharrison Roll 6 dependencies and update expectations. (#1097)
2020-07-06 dneto glslc and spvc understand -h as the same as --help (#1089)
2020-07-03 dneto Glslang third party build needs -fPIC (#1093)

Created with:
  roll-dep third_party/shaderc

Roll third_party/spirv-cross/ 2e7a56258..559b21c6c (13 commits)

$ git log 2e7a56258..559b21c6c --date=short --no-merges --format='%ad %ae %s'
2020-07-06 dsinclair Roll deps.
2020-07-01 post MSL: Do not emit swizzled writes in packing fixups.
2020-07-01 post MSL: Workaround broken vector -> scalar access chain in MSL.
2020-07-06 post MSL: Use input attachment index directly for resource index fallback.
2020-07-06 post GLSL: Support I/O flattening with arrays as final type.
2020-07-03 post GLSL: Support multi-level struct flattening for I/O.
2020-07-01 post Run
2020-07-01 post test: Use --hlsl-dx9-compatible when attempting to compile SM 3.0 shaders.
2020-06-30 post GLSL: Fix nested legacy switch workarounds.
2020-06-29 post GLSL: Implement switch on ESSL 1.0.
2020-06-29 post GLSL: Use for-loop fallback instead of do/while for legacy ESSL.
2020-06-29 post Implement context-sensitive expression read tracking.
2020-06-29 post Fix bug with control dependent expression tracking.

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/spirv-headers/ 11d7637e7..308bd0742 (1 commit)

$ git log 11d7637e7..308bd0742 --date=short --no-merges --format='%ad %ae %s'
2020-06-26 dj2 Register the Tint compiler

Created with:
  roll-dep third_party/spirv-headers

Roll third_party/SPIRV-Tools/ 52a5f074e..2fbeb04b6 (29 commits)

$ git log 52a5f074e..2fbeb04b6 --date=short --no-merges --format='%ad %ae %s'
2020-07-07 andreperezmaselco.developer spirv-fuzz: Implement the OpVectorTimesMatrix linear algebra case (#3489)
2020-07-07 vasniktel spirv-fuzz: fuzzerutil::MaybeGetConstant* #3487
2020-07-06 jaebaek Debug info preservation in copy-prop-array pass (#3444)
2020-07-03 vasniktel spirv-fuzz: TransformationInvertComparisonOperator (#3475)
2020-07-02 vasniktel Fix regression (#3481)
2020-07-02 vasniktel spirv-fuzz: Add fuzzerutil::FindOrCreate* (#3479)
2020-06-30 vasniktel spirv-fuzz: Add FuzzerPassAddCopyMemoryInstructions (#3391)
2020-06-30 vasniktel spirv-fuzz: Add one parameter at a time (#3469)
2020-06-29 jaebaek Fix ADCE pass bug for mulitple entries (#3470)
2020-06-26 ehsannas Add gl_BaseInstance to the name mapper. (#3462)
2020-06-26 andreperezmaselco.developer Implement the OpMatrixTimesScalar linear algebra case (#3450)
2020-06-25 jaebaek Clear debug information for kill and replacement (#3459)
2020-06-25 alanbaker Validate location assignments (#3308)
2020-06-23 ehsannas Support OpCompositeExtract pattern in desc_sroa (#3456)
2020-06-23 vasniktel spirv-fuzz: Implement FuzzerPassAddParameters (#3399)
2020-06-23 vasniktel spirv-fuzz: Add GetParameters (#3454)
2020-06-23 vasniktel spirv-fuzz: Permute OpPhi instruction operands (#3421)
2020-06-22 rharrison Add support for different default/trunks in roll-deps (#3442)
2020-06-19 jaebaek [spirv-opt] debug info preservation in ssa-rewrite (#3356)
2020-06-19 ehsannas Updated desc_sroa to support flattening structures (#3448)
2020-06-19 vasniktel spirv-fuzz: Refactor variable creation (#3414)
2020-06-19 vasniktel spirv-fuzz: Swap operands in OpBranchConditional (#3423)
2020-06-18 stevenperron Use structured order to unroll loops. (#3443)
2020-06-18 jaebaek Debug info preservation in dead branch elimination (#3425)
2020-06-17 vasniktel Add RemoveParameter method (#3437)
2020-06-17 vasniktel Fix return type (#3435)
2020-06-16 ehsannas Eliminate branches with condition of OpConstantNull (#3438)
2020-06-16 andreperezmaselco.developer spirv-fuzz: Implement vector shuffle fuzzer pass (#3412)
2020-06-16 andreperezmaselco.developer spirv-fuzz: Add replace linear algebra instruction transformation (#3402)

Created with:
  roll-dep third_party/SPIRV-Tools

Roll third_party/tint/ 0c647a889..7b819aa16 (49 commits)

$ git log 0c647a889..7b819aa16 --date=short --no-merges --format='%ad %ae %s'
2020-07-07 rharrison Multiple fixes to get builds working again
2020-07-07 dneto [spirv-reader] Even better hoisted variables
2020-07-06 dsinclair Use Tint Generator Number.
2020-07-06 dneto [spirv-reader] Improve placement of hoisted vars
2020-07-06 dneto [spirv-reader] Allow multi-block continue construct being the entire loop
2020-07-06 dneto [spirv-reader] Support OpPhi
2020-07-06 dsinclair Rolling 7 dependencies
2020-07-06 dneto Error out for unrecognized option, more than one file
2020-07-02 dj2 [msl-writer] Always add the metal_stdlib include.
2020-07-02 dj2 [msl-writer] Add namer class.
2020-06-30 dsinclair [msl-writer] Emit switch statements.
2020-06-30 dneto [spirv-reader] Refactor bookkeeping for localy defined values
2020-06-30 dsinclair [msl-writer] Emit loop statements.
2020-06-30 dneto [spirv-reader] Hoist definitions as needed
2020-06-30 dneto [spirv-reader] Don't move combinatorial values across control flow
2020-06-29 dsinclair [msl-writer] Add break and continue emission.
2020-06-29 dsinclair [msl-writer] Emit member accessors.
2020-06-29 dsinclair [spirv-writer] Allow casting of vectors along with scalars.
2020-06-26 dneto Enable Tint as part of a larger CMake project
2020-06-26 dj2 [msl-writer] Emit alias types.
2020-06-26 dj2 [msl-writer] Add array accessors.
2020-06-26 dj2 [msl-writer] Add unary op emission.
2020-06-26 dj2 [msl-writer] Emit kill statement.
2020-06-26 dj2 [msl-writer] Add emission of if statements.
2020-06-26 dj2 [msl-writer] Add cast conversion.
2020-06-26 dj2 [msl-writer] Add generation of as casts.
2020-06-26 dneto [spirv-reader] Weaken input validation to Vulkan 1.0
2020-06-25 rharrison Add configs for CQ
2020-06-23 dsinclair [metal-writer] Add entry point support.
2020-06-23 dsinclair [metal-writer] Emit constructors.
2020-06-23 dsinclair [metal-writer] Emit binary operations.
2020-06-23 dsinclair [metal-writer] Emit assignment statements.
2020-06-23 dsinclair [metal-writer] Emit functions
2020-06-23 dsinclair [metal-writer] Add identifier expression.
2020-06-23 dsinclair [metal-writer] Add return generation.
2020-06-23 dsinclair [metal-writer] Add basic type emission.
2020-06-23 dsinclair [metal-writer] Stub out the Metal Shading Language backend.
2020-06-23 rharrison Fix issues for TypeDeterminerTest
2020-06-22 dneto [spirv-reader] Simplify null composites
2020-06-22 dj2 [spirv-writer] Only add used variables to entry point.
2020-06-22 dneto [spirv-reader] Support OpNop
2020-06-22 dneto [spirv-reader] Support Undef, mapping to null
2020-06-22 dneto [spirv-reader] Use type aliases pervasively
2020-06-22 dj2 Support the zero initializer syntax.
2020-06-22 dneto type determine accessor on aliased array
2020-06-22 dneto Add type alias unwrapping methods
2020-06-22 dj2 [spirv-writer] Add Operand and Instruction list aliases.
2020-06-22 dj2 [spirv-writer] Add function calls
2020-06-22 dj2 [spirv-writer] Generate function parameters.

Created with:
  roll-dep third_party/tint

Change-Id: I33626195f373dde01e8e6ce26195578db372d949
Reviewed-by: Ryan Harrison <>
Reviewed-by: Austin Eng <>
Commit-Queue: Ryan Harrison <>
1 file changed
tree: 18ac7fdf659f15c8ae881532422f983459ed2ac4
  1. .clang-format
  2. .gitattributes
  3. .gitignore
  4. .gn
  7. CMakeLists.txt
  9. DEPS
  11. OWNERS
  13. README.chromium
  15. build_overrides/
  16. codereview.settings
  17. dawn.json
  18. dawn_wire.json
  19. docs/
  20. examples/
  21. generator/
  22. infra/
  23. scripts/
  24. src/
  25. third_party/
  26. tools/

Dawn, a WebGPU implementation

Dawn is an open-source and cross-platform implementation of the work-in-progress WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.

Dawn provides several WebGPU building blocks:

  • WebGPU C/C++ headers that applications and other building blocks use.
    • The webgpu.h version that Dawn implements.
    • A C++ wrapper for the webgpu.h.
  • A “native” implementation of WebGPU using platforms' GPU APIs:
    • D3D12 on Windows 10
    • Metal on macOS and iOS
    • Vulkan on Windows, Linux, ChromeOS, Android and Fuchsia
    • OpenGL as best effort where available
  • A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers

Helpful links:

Documentation table of content

Developer documentation:

User documentation: (TODO, figure out what overlaps with webgpu.h docs)




Apache 2.0 Public License, please see LICENSE.


This is not an officially supported Google product.