Generate native Bazel platforms instead of requiring tint_build_is flags Currently, people who use the Bazel rules for tint and dawn need to specify os flags like --//src/tint:os=win when running *every* bazel command. This is not very idiomatic (unlike GN where build flags are the standard) and Skia has found this cumbersome. This change replaces those hand-specified flags with the built-in "platforms" attributes. These automatically get set based on the target OS (which defaults to the host os). These will be easier for clients (such as Skia) to use. This also cleans up bazel labels - for labels defined in the same file (such as the tint_build_wgsl_writer aliases) they are prefixed with a colon which is better stylistically. Turns out the mac rules were broken - you can't put a .mm file in a cc_library. I've temporarily removed those and plan to have a follow-on CL that creates objc_library targets that work with Bazel. Suggested review order: - src/tint/utils/command/BUILD.bazel to see examples where conditions involving one platform (windows) are a direct swap and also cases where it's a "platforms *except* for these" are handled with a more idiomatic structure. - All the rest of the BUILD.bazel files to see the changes are equivalent - build.go and expr.go (probably start with the tests) to see the new helper functions - tools/src/cmd/gen/build/BUILD.bazel.tmpl which uses the new helper functions - Anything else Change-Id: I61ae06a3f56f0f4ade65c43d6813a3448e0ccdcd Bug: b/256859233 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/324475 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: dan sinclair <dsinclair@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
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.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.