Re-enable Tint IR Fuzzer with fixes

This reverts commit d918947fbc48bb18033539189449d4ccd87cc397.

But retains and updates the custom GN rules for abseil-cpp

It drops the fuzztest and re2 DEPS, and insteads replaces the one
target needed by //testing in fuzztest with a mock no-op target, since
FuzzTest isn't currently used in Dawn.

Forking googletest/BUILD.gn is dropped

There are additional rolls on top of the original rolls to pick up
fixes I upstreamed.

This version should resolve the various duplicate symbols issues we
were seeing, and should allow rolling into Skia (via using a path
override in the new protobuf.gni)

Additional rolls:

Roll third_party/protobuf/ f2622a898..1a4051088 (8 commits)

https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/f2622a898ca5..1a4051088b71

$ git log f2622a898..1a4051088 --date=short --no-merges --format='%ad %ae %s'
2025-04-17 rharrison Allow specifying the abseil dir for protobuf
2025-04-14 sophiechang Fix up third_party/protobuf patches so that readme instructions work
2025-04-13 jwata protobuf: Backport clang compile speed optimization
2025-04-10 thakis Disable protoc fatal_warnings in centipede builds too
2025-04-10 thakis Enable warnings-as-errors for protoc
2025-04-10 thakis Update protobuf README.chromium a bit
2025-04-07 tikuta Revert "protobuf: Use deps instead of public_deps"
2025-04-07 tikuta protobuf: Use deps instead of public_deps

Created with:
  roll-dep third_party/protobuf

Roll tools/protoc_wrapper/ dbcbea90c..8ad6d2154 (1 commit)

https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper/+log/dbcbea90c20a..8ad6d21544b1

$ git log dbcbea90c..8ad6d2154 --date=short --no-merges --format='%ad %ae %s'
2025-04-10 thakis Enable warnings-as-errors for protoc

Created with:
  roll-dep tools/protoc_wrapper

Bug: 409576873
Change-Id: Ic4af6fa6f6e9d4a1f684f4dfc42841f059d9a065
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/236254
Reviewed-by: Loko Kung <lokokung@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
41 files changed
tree: 29d4c0e926ff433e6ed2cdf567b29765d4a836e9
  1. .github/
  2. .vscode/
  3. build_overrides/
  4. docs/
  5. generator/
  6. include/
  7. infra/
  8. scripts/
  9. src/
  10. test/
  11. third_party/
  12. tools/
  13. webgpu-cts/
  14. .bazelrc
  15. .clang-format
  16. .clang-format-ignore
  17. .clang-tidy
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .vpython3
  24. AUTHORS
  25. BUILD.bazel
  26. BUILD.gn
  27. CMakeLists.txt
  28. CMakeSettings.json
  29. CODE_OF_CONDUCT.md
  30. codereview.settings
  31. CONTRIBUTING.md
  32. CPPLINT.cfg
  33. DEPS
  34. DIR_METADATA
  35. go.mod
  36. go.sum
  37. go_presubmit_support.py
  38. LICENSE
  39. OWNERS
  40. PRESUBMIT.py
  41. README.chromium
  42. README.md
  43. WATCHLISTS
  44. WORKSPACE.bazel
README.md

Build Status Matrix Space

Dawn, a WebGPU implementation

Dawn is an open-source and cross-platform implementation of the 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, Metal, Vulkan and OpenGL. See per API support for more details.
  • A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers
  • Tint is a compiler for the WebGPU Shader Language (WGSL) that can be used in standalone to convert shaders from and to WGSL.

Helpful links:

Documentation table of content

Developer documentation:

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

License

BSD 3-Clause License, please see LICENSE.

Disclaimer

This is not an officially supported Google product.