commit | 073d78961b8ce4a91fde3cb1bcd6e0fb7f386016 | [log] [tgz] |
---|---|---|
author | Brandon Jones <bajones@chromium.org> | Tue Jan 31 19:59:28 2023 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Jan 31 20:05:31 2023 |
tree | 7bd7337945e0564eb4b370034fdde09f2883785a | |
parent | a0b922f4330243bceca0899188e025dbcd17a6cf [diff] |
Resubmit: Enable WebGPU for non-component Android builds Non-component Android builds were being blocked by ANGLE producing multiple .so files, but a previous Dawn change has temporarily disabled ANGLE in Dawn on Android, clearing the way for this change. Also activates the "Enable Unsafe WebGPU" and "WebGPU Developer Features" flags in about:flags. Previously reverted due to some failing gl_tests. Fixed in: https://chromium-review.googlesource.com/c/chromium/src/+/4209568 Additionally there were some Vulkan crashes that ocurred while it was enabled. Fixed in: https://dawn-review.googlesource.com/c/dawn/+/117594 This commit is expected to increase the binary size of Chrome on Android by about 1.5Mb. This is mostly due to the new inclusion of the Dawn library, which provides Chrome's cross-platform implementation of the WebGPU API. Because WebGPU is a large new feature a proportional size increase is to be expected. By comparison a roughly equivalent library, ANGLE, also adds approximately the same amount to the binary size. See https://groups.google.com/a/google.com/g/webgpu-developers/c/g2NB5rR2R2A/m/73b9HQC2AgAJ for further discussion about the size impact. Bug: dawn:286 Change-Id: Ia3a6a15aa23d90185d34a248aa5c6b2920bb44c3 Binary-Size: Added a new library to enable large feature. Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4206069 Commit-Queue: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/main@{#1099421} NOKEYCHECK=True GitOrigin-RevId: 239e1dfd3989f1bb897d0c9533308fdc9f8cd0ce
This directory is used to allow different products to customize settings for repos that are DEPS'ed in or shared.
For example: V8 could be built on its own (in a “standalone” configuration), and it could be built as part of Chromium. V8 might define a top-level target, //v8:d8 (a simple executable), that should only be built in the standalone configuration. To figure out whether or not it should be in a standalone configuration, v8 can create a file, build_overrides/v8.gni, that contains a variable, build_standalone_d8 = true
. and import it (as import(“//build_overrides/v8.gni”) from its top-level BUILD.gn file.
Chromium, on the other hand, might not need to build d8, and so it would create its own build_overrides/v8.gni file, and in it set build_standalone_d8 = false
.
The two files should define the same set of variables, but the values can vary as appropriate to the needs of the two different builds.
The build.gni file provides a way for projects to override defaults for variables used in //build itself (which we want to be shareable between projects).
TODO(crbug.com/588513): Ideally //build_overrides and, in particular, //build_overrides/build.gni should go away completely in favor of some mechanism that can re-use other required files like //.gn, so that we don't have to keep requiring projects to create a bunch of different files to use GN.