Commit Graph

870 Commits

Author SHA1 Message Date
Kevin Lubick
956704b387 [bazel] Get GPU examples working
This adds targets which test our Dawn, GL, and Vulkan backends.

It follows the hierarchical filegroup pattern, as
outlined in https://skia-review.googlesource.com/c/skia/+/543977

Suggested Review order:
 - tools/sk_app/BUILD.bazel. For many things in tools, I anticipate
   they will depend on //:skia_core and other //tools targets.
   sk_app shows this off, as well how to make the target
   specific to a given platform and pull in the proper native code.
   I'm trying out setting test_only = True, to see if we can
   partition Skia's tests and helpers from the actual Skia library.
 - other changes to //tools/, especially looking at sk_app's
   dependencies.
 - //example/BUILD.bazel. This uses the cc_binary_with_flags which
   existed previously [1] to make it so people don't have to
   specify all the flags for a given binary and can build it as is.
   These targets nows how up in //bazel/Makefile
 - //include/... and //src/..., where some typos from previous
   CLs were fixed and rules expanded.
 - Misc changes to .cpp files to remove unnecessary includes
   that were assuming the GL backend was being compiled in.
 - All other changes

[1] 162dfca340/bazel/cc_binary_with_flags.bzl
Change-Id: Ieacec464d44368cad0da0890c7dc85a6c0b900c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544317
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2022-05-31 14:14:54 +00:00
Kevin Lubick
2c65579aad [bazel] Add in hierarchical filegroup Bazel rules.
The primary goal of this organization structure is to keep
our top level BUILD.bazel file short, with as little logic
as feasible. The logic required to control which files to
include, which third_party deps are needed, what system libraries
should be linked again, etc, should be in the BUILD.bazel
file best should be as close to the affected files as feasible.

In essence, we use filegroup() rules to bubble up the files
needed to build Skia (all as one big cc_library call) and
cc_library rules to bubble up the other components needed to build.

For example, //src/ports/SkFontHost_FreeType.cpp needs FreeType,
but only if we are compiling Skia with that type of font
support. With the new organization structure in this CL,
//src/ports/BUILD.bazel should have the logic that determines
if the cpp file should be included in the build of Skia and
if it is, that the Skia build should depend on //third_party:freetype2

Another example is //src/gpu/ganesh/BUILD.bazel, which
chooses which of the dawn, gl, vulkan, etc backend sources,
and the associated dependencies to include in the build.
It does not specify what those are, but delegates to the
BUILD.bazel files in the subdirectories housing the
backend-specific code.

The structure guidelines for BUILD.bazel files are as follows:
 - Have a filegroup() called "hdrs" (for public headers) or
   "srcs" (for private headers and all .cpp files) that is
   visible to the parent directory. This should list the
   files from the containing directory to include in the
   build.
   See //include/core/BUILD.bazel and //src/effects/BUILD.bazel
   as examples.
 - filegroup() rules can list a child directory's "hdrs"
   or "srcs" in their "srcs" attributes, but should not contain
   select statements pertaining to child directory files.
   See //include/gpu/BUILD.bazel and //src/gpu/ganesh/BUILD.bazel
   as examples.
 - May have a cc_library() called "deps". This can specify
   dependencies, cc_opts, and linkopts, but not srcs or hdrs. [1]
   See //src/codec/BUILD.bazel as an example. These should
   be visible to the parent directory.
 - "hdrs", "srcs", and "deps" for the primary Skia build
   (currently called "skia_core") should bubble up through
   //include/BUILD.bazel and //src/BUILD.bazel, one directory
   at a time.

This CL demonstrates a very basic build of Skia with many features
turned off (CPU only, no fonts, no codecs). Follow-on CLs will
add to these rules as more targets are supported. See bazel/Makefile
for the builds that work with just this CL.

Suggested Review Order:
 - //BUILD.bazel to see the very small skia_core rule which
   delegates all the logic down stack. Note that it has a
   dependency on //bazel:defines_from_flags which will set
   all the defines listed there when compiling all the
   .cpp and .h files in skia_core *and* anything that depends
   on skia_core, but *not* //src:deps.
 - //include/BUILD.bazel and other BUILD.bazel files in the
   subdirectories of that folder. Note that the filegroups in
   //include/private/... are called "srcs" to be similar to
   how Bazel wants "private headers" to be in the "srcs" of
   cc_library, cc_binary, etc. and only public headers are
   to be in "hdrs" [2].
 - //src/BUILD.bazel and other BUILD.bazel files in the
   subdirectories of that folder. //src/gpu/ganesh/...
   will be filled in for dawn, vulkan, and GL in the next CL.
 - //PRESUBMIT.py, which adds a check that runs buildifier [3]
   on modified BUILD.bazel files to make sure they stay
   consistently formatted.
 - //bazel/... to see the new option I added to make sksl
   opt-in or opt-out, so one could build Skia with sksl,
   but not with a gpu backend.
 - Misc .h and .cpp files, whose includes were removed if
   unnecessary or #ifdef'd out to make the minimal build
   work without GPU or SkSL includes.
 - //bazel/Makefile to see the builds that work with this CL.

[1] Setting srcs or hdrs is error-prone at best, because those
   files will be compiled with a different set of defines than
   the rest of skia_core, because they wouldn't depend on
   //bazel:defines_from_flags.
[2] https://bazel.build/reference/be/c-cpp#cc_library.hdrs
[3] https://github.com/bazelbuild/buildtools/releases
Change-Id: I5e0e3ae01ad42d672506d5aad1239f2512188191
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543977
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-05-31 14:14:54 +00:00
Kevin Lubick
4511c7b7fb [bazel] Delete gazelle-based BUILD.bazel files
gazelle ended up being more liability than asset for our C++ rules.

It required devs to manually run the command frequently (and was
easy to forget until the CQ failed). The fact that we still had to
edit the source files (e.g. the "srcs" cc_libraries) meant that
the mixture between generated and hand-written caused some
tension (see include/third_party/vulkan for a good example).

The combination of gazelle and our IWYU enforcement added several
bits of churn without any real benefit. The generated rules
also didn't help identify cases where we were not keeping tight
boundaries (e.g. non-gpu code and gpu code).

Identifying third_party deps automatically ended up being trickier
than anticipated (see the deleted //third_party/file_map_for_bazel.json)

Using the "maximum set of dependencies" worked ok, but ended up
increasing build time unnecessarily. For example, compiling
CanvasKit for WebGL always needed to compile Dawn because
SkSLCompiler.cpp sometimes needs to include tint/tint.h.

Follow-up CLs will rebuild the BUILD.bazel rules without gazelle.

Note to Reviewers:
 - The only file worth manually reviewing here is bazel/Makefile.

Change-Id: I36d6fc3747487fabaf699690780c95f1f6765770
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543976
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-05-31 14:14:54 +00:00
Ben Wagner
072f35ce05 Roll FreeType from a8e4563c to b98dd169 (32 commits)
a8e4563c34..b98dd169a1

Change-Id: Id13089de28a23b16fb1568764708fbaa2cbaef72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544240
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-05-26 17:41:39 +00:00
Tyler Denniston
d78d52a86f Revert "Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class"
This reverts commit bfc9b94840.

Reason for revert: new dependency causing Android build error

Original change's description:
> Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class
>
> First incremental step to incorporating Perfetto tracing into Skia, more CLs to follow
>
> NOTE: The presubmit check is failing. This appears to be due to the known issue where the presubmit check bugs out if the DEPS file is edited, which it was on this CL (modified to include Perfetto).
>
> Bug: skia:13303
> Change-Id: I908be0392b520e8da14b34588b842bf6d955bd93
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543081
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Nicolette Prevost <nicolettep@google.com>

Bug: skia:13303
Change-Id: Ia2b883bbab1f8fb4f3914b63104a39240cc60e86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544239
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Auto-Submit: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2022-05-26 16:21:27 +00:00
Nicolette Prevost
bfc9b94840 Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class
First incremental step to incorporating Perfetto tracing into Skia, more CLs to follow

NOTE: The presubmit check is failing. This appears to be due to the known issue where the presubmit check bugs out if the DEPS file is edited, which it was on this CL (modified to include Perfetto).

Bug: skia:13303
Change-Id: I908be0392b520e8da14b34588b842bf6d955bd93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543081
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
2022-05-25 14:50:57 +00:00
skia-autoroll
e803e61f4f Roll skcms from dcb0286a1e17 to 9c30a95f0f16 (1 revision)
https://skia.googlesource.com/skcms.git/+log/dcb0286a1e17..9c30a95f0f16

2022-05-20 brianosman@google.com Fix "implicit conversion from 'int' to 'float' may lose precision"

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC brianosman@google.com,jmbetancourt@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: brianosman@google.com,jmbetancourt@google.com
Change-Id: Ibd8f1fc3eec9a853fc766979419e9c4ad5af049d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542718
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 20:43:00 +00:00
Michael Reed
14aa53bf38 Add rive to third_party
Add rive slide to Viewer

Change-Id: Id25a7ac2a65e816544159ff4b3f582249f9ba0ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541742
Auto-Submit: Mike Reed <mike@reedtribe.org>
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2022-05-20 13:33:30 +00:00
Arman Uguray
c1504658a7 [sksl][wgsl] Enable WGSL validation using Tint
- Introduced the SK_ENABLE_WGSL_VALIDATION macro which is currently only
  enabled when skslc gets compiled when using the `skia_compile_sksl_tests`
  setting.
- SkSLCompiler::toWGSL now validates its output using Tint's WGSL reader
  structures based on conditionally compiled code depending on the
  SK_ENABLE_WGSL_VALIDATION flag.
- Fixed `warning: use of deprecated language feature: struct members should be separated with commas"
  warnings that were generated for HelloWorld.wgsl.

Bug: skia:13092
Change-Id: Ib894457030004966221faf82f61360e390b95e22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/537802
Commit-Queue: Arman Uguray <armansito@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-05-17 18:25:01 +00:00
Kevin Lubick
16fa353926 [bazel] Move third party BUILD.bazel files to bazel/external
See also http://cl/449188526

Change-Id: Idb775cd955c82f16c79a61bb3d417c2c92f88a88
Bug: skia:12541, skia:13323
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541217
Reviewed-by: Ravi Mistry <rmistry@google.com>
2022-05-17 12:13:49 +00:00
Kevin Lubick
d2e8c965a4 Fix flutter roll
third_party/**/BUILD.gn have a copyright header, so we'll add one
to our third_party/**/BUILD.bazel files too.

Change-Id: Ifc04d36624af07d91d279a139f3a691e51ce7418
Bug: skia:13323
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541076
Reviewed-by: Ravi Mistry <rmistry@google.com>
2022-05-16 19:36:38 +00:00
Kevin Lubick
24f0b884c0 [bazel] Move Dawn BUILD.bazel to third_party/bazel
Rather than having a monolithic third_party/BUILD.bazel, this moves
our Dawn rules to their own subdirectory and makes it callable via
@dawn instead of //third_party/dawn.

This will help with the G3 roll and make our rules more organized in
general.

This also rolls Dawn
Roll Dawn from ab9757036bd6 to e831fb61046b (22 revisions)

https://dawn.googlesource.com/dawn.git/+log/ab9757036bd6..e831fb61046b

Suggested Review Order:
 - WORKSPACE.bazel, where we define @dawn and its deps
   (@vulkan_headers and @vulkan_tools). I initially thought
   I needed to define all of Dawn's deps in the workspace_file_content
   for new_local_repository, but that WORKSPACE file is
   ignored when building Skia rules.
 - third_party/dawn/BUILD.bazel, the contents of which were copied
   from //third_party/BUILD.bazel and modified largely via
   find-and-replace to point to files relative to
   //third_party/externals/dawn. One exception is the cpu_wasm
   config_setting because @dawn isn't able to see Skia's
   //bazel/macros.bzl.
 - All other files

Change-Id: Ib2d7bc972ef00b6b68370ce5c2839ffb70ed9a2f
Bug: skia:12541, skia:13211
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/538638
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-05-16 14:06:59 +00:00
Michael Ludwig
95a421aa1e Manual roll Dawn DEPS with updated bazel build
Change-Id: Iac6b8a0b74fe23959f5ee814f4a30a5458ccf21e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/539936
Reviewed-by: John Stiles <johnstiles@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-12 18:27:19 +00:00
Michael Ludwig
dc09cf8104 Add new file to Dawn's bazel build
Change-Id: I2a1fedbbaabd57e4546c2a628f6d297e11f4244b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/539318
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-11 16:24:10 +00:00
Antonio Maiorano
cd3200b7a4 Manually roll Dawn from 9483b741a..be0abb611 (36 commits; 1 trivial rolls)
https://dawn.googlesource.com/dawn.git/+log/9483b741a884..be0abb611aed

$ git log 9483b741a..be0abb611 --date=short --no-merges --format='%ad %ae %s'
2022-05-09 dawn-autoroll Roll ANGLE from e316203a6a2f to 78d88796b44b (1 revision)
2022-05-08 dawn-autoroll Roll ANGLE from 225d8f83af71 to e316203a6a2f (1 revision)
2022-05-07 dawn-autoroll Roll SwiftShader from 00efa1913863 to 1dd93361b1d9 (1 revision)
2022-05-07 dawn-autoroll Roll ANGLE from cadb933fdb12 to 225d8f83af71 (2 revisions)
2022-05-07 dawn-autoroll Roll vulkan-deps from e13072c54977 to 626b2fd72bde (2 revisions)
2022-05-07 dawn-autoroll Roll SwiftShader from 74e34ab97aeb to 00efa1913863 (2 revisions)
2022-05-06 dawn-autoroll Roll ANGLE from 1d5d09e4191a to cadb933fdb12 (14 revisions)
2022-05-06 dawn-autoroll Roll vulkan-deps from 4957ae734445 to e13072c54977 (21 revisions)
2022-05-06 dawn-autoroll Roll SwiftShader from 62c1af08ea4d to 74e34ab97aeb (5 revisions)
2022-05-06 bclayton tint: Rename and move builtin_table and builtin-gen
2022-05-06 bclayton dawn: Fix clang warning treated as error
2022-05-06 zhaoming.jiang dawn: Add shader module validation for WGSL extension
2022-05-06 dawn-autoroll Roll ANGLE from 2ce60b52a239 to 1d5d09e4191a (10 revisions)
2022-05-05 jrprice Surface Vulkan validation messages in errors
2022-05-05 bclayton tint: Change all ProgramBuilder literals to 'i' or 'u' suffix
2022-05-05 dawn-autoroll Roll ANGLE from 9865ed8b8117 to 2ce60b52a239 (4 revisions)
2022-05-05 bclayton tint: Castable - support non-default-constructable return types
2022-05-05 dawn-autoroll Roll SwiftShader from 2e793ae08002 to 62c1af08ea4d (1 revision)
2022-05-05 amaiorano tint: add --overrides flag to specify pipeline overrides
2022-05-05 pkasting Fixes for C++20 support.
2022-05-05 bclayton tint: Add Bitcast helper
2022-05-05 bclayton tint: Fix CFI error in BlockAllocator
2022-05-05 dawn-autoroll Roll ANGLE from 9053a641bf5d to 9865ed8b8117 (1 revision)
2022-05-04 senorblanco OpenGLES: disable some end2end tests which require reading from depth textures.
2022-05-04 bclayton tint/reader/spirv: Generate 'i' suffixed literals
2022-05-04 bclayton tint: Merge [S|U]intLiteralExpression
2022-05-04 dawn-autoroll Roll SwiftShader from 643179694ec7 to 2e793ae08002 (1 revision)
2022-05-04 bclayton tint: Lex three types of integer literal
2022-05-04 dsinclair Enable more `gn check` results.
2022-05-04 dawn-autoroll Roll ANGLE from 84e42c3b04da to 9053a641bf5d (12 revisions)
2022-05-04 bclayton webgpu-cts/expectations.txt: Remove expectations that now pass
2022-05-04 amaiorano Disable angle dependency on wayland
2022-05-04 bclayton tint: Chromium-style fixes
2022-05-04 jamessliu2020 AST fuzzer: Change unary expression operator
2022-05-04 dawn-autoroll Roll SwiftShader from c75846ead9a0 to 643179694ec7 (3 revisions)

Created with:
  roll-dep third_party/externals/dawn

Change-Id: I6656ab41573ce465e9ced94ad65731be9bc5dafe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/538716
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
2022-05-10 19:01:49 +00:00
Greg Daniel
2eddf1a560 Set VMA version define to limit it to vulkan 1.1.
Bug: b/231953246
Change-Id: Ib2b6ae50bfd13c7aff0e0c656bc61e5f8a6e4345
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/539038
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-05-10 17:43:56 +00:00
Ben Wagner
f7daa168cb Allow use of ASAN with msvc.
Starting with Visual Studio 2019 version 16.9 (msvc++ 14.28,
__MSC_VER 1928) has support for it's own version of AddressSanitizer.

Change-Id: I106b7e765ac80e4fc6eabd5b88500cbec5e38714
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/537461
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-05-05 19:04:23 +00:00
Ben Wagner
e3f2cfc2a4 FreeType configuration in public_defines.
Any settings in the FreeType build which may modify the public FreeType
headers must be public_defines. Otherwise FreeType may be built one way
and the dependents on this target may be built with what are essentially
different headers.

This fixes the Skia build with built-in FreeType on Windows.

Change-Id: I6b317fbe491dd6fdd135928b6f50436102a1e281
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/537460
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-05 18:40:49 +00:00
Kevin Lubick
8d2fb64247 [canvaskit] Always serialize Typeface data into SKPs
Before: http://screen/4gnRTnRGyBuEsA9
After: http://screen/5jdoRcED7X3Taf7

There's a few misc fixes related to Bazel rules and tests too.

Change-Id: I2ac272fe5312c2a825944259f2f9031fff9887e0
Bug: skia:13247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535477
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-05-05 15:43:32 +00:00
Kevin Lubick
1f99c991d8 Manually roll Dawn from 41e4d9a34c1d to a1a3e0484c48 (18 revisions)
https://dawn.googlesource.com/dawn.git/+log/41e4d9a34c1d..a1a3e0484c48

2022-05-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 717818ff1f86 to 4957ae734445 (4 revisions)
2022-05-03 lokokung@google.com Hide blob caching behind a toggle on the device for now.
2022-05-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 02576edd7f4f to cdf43bd816d7 (4 revisions)
2022-05-03 lokokung@google.com Removes device from load/store in caching interface.
2022-05-03 lokokung@google.com Adds pipeline cache and implementation for Vulkan backend.
2022-05-03 lokokung@google.com Wrap get_gitHash in try-catch to prevent failures in tarball builds.
2022-05-02 bclayton@google.com Roll third_party/webgpu-cts/ 21af43c62..547d67bc2 (15 commits)
2022-05-02 bclayton@google.com tools/cts: Bunch of fixes for 'cts roll'
2022-05-02 bclayton@google.com tools: Add the 'cts roll' sub-command
2022-05-02 bclayton@google.com tools: Add the 'cts export' sub-command
2022-05-02 brandon1.jones@intel.com Add External Texture Conversion Constant Params
2022-05-02 bclayton@google.com Fix dawn/node build with make
2022-05-02 amaiorano@google.com Factor out code to flatten bindings for msl
2022-05-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1cde45b8d7aa to 717818ff1f86 (1 revision)
2022-05-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 6fb4e0498abd to 02576edd7f4f (1 revision)
2022-05-02 jrprice@google.com Fix uniformity issue in CopyTextureForBrowserHelper
2022-05-02 jrprice@google.com wgsl: Use commas for structs in helper shaders
2022-05-02 jrprice@google.com tint: Add ProgramBuilder::Else() helper

Change-Id: Iec54e3374ad1cc517a160150eb44b7b286fdb757
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/536396
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2022-05-03 13:24:06 +00:00
Kevin Lubick
c3a448ec61 [bazel] Put licenses() after legacy_exports
G3 prefers license() first.

This was done mechanically with a big find/replace

Change-Id: I8c33c7bc10a6bec42e966cad81c259954e841811
Bug: skia:13211
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535898
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-05-02 15:04:33 +00:00
Brian Salomon
795d87486b Manual roll Dawn from 7098d3d69282 to cede544df34f (38 revisions)
https://dawn.googlesource.com/dawn.git/+log/7098d3d69282..cede544df34f

2022-04-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8234ec2dd0ae to c9e605688988 (2 revisions)
2022-04-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 9f2ef7c8b867 to adef92e7b4c6 (3 revisions)
2022-04-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2a6e123b16ff to 437053a1635b (5 revisions)
2022-04-29 jrprice@google.com tint: Refactor if-else statement representation
2022-04-28 bclayton@google.com tools: Add src/cts/expectations
2022-04-28 enga@chromium.org Fix 64 to 32 bit narrowing in dawn/utils
2022-04-28 lokokung@google.com Add multiple device testing capability in DawnTest.
2022-04-28 cwallez@chromium.org Add MetalRenderR8RG8UnormSmallMipToTempTexture workaround
2022-04-28 bclayton@google.com tint: Remove '_type' suffix from file names
2022-04-28 bclayton@google.com tint/writer/spirv: Replace Operand with std::variant
2022-04-28 enga@chromium.org Fix 64 to 32 bit narrowing in dawn/common
2022-04-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1963b94c99e8 to 8234ec2dd0ae (1 revision)
2022-04-28 dsinclair@chromium.org Cleanup duplicate files; Combine README and build docs.
2022-04-28 bclayton@google.com tint/writer: Replace scope_stack_, fix type ctor scoping.
2022-04-28 cwallez@chromium.org GN: Rely on the Chromium macOS deployment target again.
2022-04-28 amaiorano@google.com tint: regen skips for hlsl files that were missing error message in the output
2022-04-28 bclayton@google.com tint: ProgramBuilder: Rename Const() to Let()
2022-04-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b92f7acb7e81 to 9f2ef7c8b867 (1 revision)
2022-04-28 bclayton@google.com Roll third_party/webgpu-cts/ 900765392..21af43c62 (10 commits)
2022-04-28 bclayton@google.com tint/writer: Replace use of strings for cache keys
2022-04-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from c95bd5e7e882 to 2a6e123b16ff (43 revisions)
2022-04-28 bclayton@google.com tools: Move go.mod & go.sum files to root
2022-04-28 dsinclair@chromium.org Rename UniformConstant to Handle.
2022-04-28 bclayton@google.com DEPS: Update Dawn standalone toolchains
2022-04-28 lokokung@google.com Fix freed memory access due to DestroyObjects.
2022-04-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 78787fde6ea0 to 1963b94c99e8 (1 revision)
2022-04-28 bajones@chromium.org Surface D3D12 validation messages in WebGPU errors
2022-04-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from f88fc3b53c52 to b92f7acb7e81 (3 revisions)
2022-04-27 enga@chromium.org Fix 64 to 32 bit narrowing in dawn::wire
2022-04-27 senorblanco@chromium.org OpenGL ES: implement support for BGRA textures and reads.
2022-04-27 cwallez@chromium.org Suppress a flake for RGBA32Float zero init on Intel.
2022-04-27 cwallez@chromium.org Metal: Move Metal render pass workarounds to UtilsMetal
2022-04-27 bclayton@google.com Roll third_party/webgpu-cts/ e23ca12d5..900765392 (15 commits)
2022-04-27 cwallez@chromium.org Tighten the suppression for texture_zero failures.
2022-04-27 cwallez@chromium.org Remove test suppressions due to SPIRV-Cross
2022-04-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e799ba9fb972 to 78787fde6ea0 (2 revisions)
2022-04-27 zhaoming.jiang@intel.com tint: Add `i` suffix and validate UInt literal non-negative
2022-04-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 79d4c6cae485 to f88fc3b53c52 (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bclayton@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Change-Id: Ib512ef51f56e93838dcb606b688179fa17170091
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535537
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-04-29 20:35:34 +00:00
Kevin Lubick
46eaab3959 [bazel] Add shims to help translation into G3
Ran the following commands:
find -name "BUILD.bazel" -exec sed -i -e '1iload("//bazel:macros.bzl", "cc_library", "exports_files_legacy")\nexports_files_legacy()' {} +
buildifier --lint=fix --mode=fix -r .

This had the effect of making sure we can export all of our
files in G3 (until we no longer have legacy targets) and
making all of our cc_libraries shim-able.

bazel/macros.bzl has the human-contributed changes, the rest
were mechanical.

Change-Id: I8e24e30e74b038cfd072cdbe4078bfd1d213dd46
Bug: skia:13211
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535359
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-04-29 19:27:54 +00:00
Kevin Lubick
0b6cef82dc [bazel] Point to vk_mem_alloc from DEPS
To make it easier to use the G3 version of this dep,
we make a reference to it in the WORKSPACE.bazel, so
we can refer to this external dep with the @ notation.

I would like to do this for all of our third party
deps, but one at a time.

Change-Id: I03e0beca124225e0faf1232278dae641da8a3e4d
Bug: skia:13240, skia:13211
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535358
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2022-04-29 12:45:56 +00:00
Brandon DeRosier
4230297004 Specify VMA include relative to source root
This is to help unblock the Skia->Flutter roll after https://skia.googlesource.com/skia.git/+/3b51120a92aa83ab7e465c6437bce23e0c094546.

See also: https://github.com/flutter/flutter/issues/102806#issuecomment-1112998932

Change-Id: I3fd061e495478efccda70d4c3e1647b7c6f375e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/535356
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-04-29 11:35:32 +00:00
Greg Daniel
3b51120a92 Use DEPS to pull in VulkanMemoryAllocator.
Also updated the gn_to_bp.py to handle using the DEPSed vk_mem_alloc.h.
When rolled into Android we will copy the vk_mem_alloc.h from a local
DEPS checkout into a vma_android folder that will be checked into the
skia that lands with Android. We are using vma_android folder instead
of the current third_party/vulkanmemoryallocator folder because we
soon plan to move the latter into src/ instead of third_party. So just
using a different directory allows us to avoid doing an additional
change to the auto roller.

Bug: skia:13240
Bug: skia:13242
Change-Id: Ia344e13e3f7c7efecc2e6a97a96820f3ae58b5c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531318
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2022-04-28 22:59:02 +00:00
Brian Salomon
3e35228b40 Add enable.cc to TINT_SRCS to fix dawn bazel build
Change-Id: Ic93f264fb556ecf271f9c2642f7c60665669b092
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/534499
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2022-04-27 18:58:06 +00:00
Brian Salomon
62471d80c9 Manual roll Dawn from 7b20709d0ea8 to 7098d3d69282 (12 revisions)
https://dawn.googlesource.com/dawn.git/+log/7b20709d0ea8..7098d3d69282

2022-04-27 zhaoming.jiang@intel.com tint: Add enable directive for extensions
2022-04-27 lokokung@google.com Remove PersistentCache and suppress shader cache tests.
2022-04-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f685346e2e51 to e799ba9fb972 (1 revision)
2022-04-26 dsinclair@chromium.org Fixup validator tests added during split from resolver.
2022-04-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5f5faa3a2aad to 79d4c6cae485 (3 revisions)
2022-04-26 cwallez@chromium.org DawnTest: handle buffer readbacks not aligned to 4.
2022-04-26 bclayton@google.com tools: Fix LoadCredentials()
2022-04-26 bclayton@google.com Revert "Add External Texture Gamma/Gamut Correction"
2022-04-26 bclayton@google.com Roll third_party/webgpu-cts/ 501cb3643..e23ca12d5 (7 commits)
2022-04-26 bclayton@google.com dawn/common: Comment UNIMPLEMENTED()
2022-04-26 cwallez@chromium.org utils: Add more defaults for CreateBuffer/TextureImageCopy
2022-04-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from f13461dbb23c to 5f5faa3a2aad (1 revision)

Change-Id: I711c74e9fca2ce8e5b0c4711f4bc371304e7f625
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/534497
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-04-27 16:16:06 +00:00
Jorge Betancourt
a2fbd43671 add compiler flags for zlib when building for mac (intel processors)
Change-Id: If62a0ba82fee63bc0e30d946e3aa385eb0970ce7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/533678
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2022-04-26 14:41:32 +00:00
Ben Wagner
9cbadcd928 Add optional OT-SVG support to FreeType
Bug: skia:12290
Change-Id: I064bee781d3a714e46f102cb48494fbe8f3e46e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516436
Reviewed-by: Florin Malita <fmalita@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-04-25 18:51:01 +00:00
Kevin Lubick
cb76656bb2 Roll Dawn from 4091e0fa9c1e to c2f9fea56bee (12 revisions)
https://dawn.googlesource.com/dawn.git/+log/4091e0fa9c1e..c2f9fea56bee

2022-04-22 stephen@hexops.com dawn/native: Fix undefined behaviour in BindGroupTracker when passing no dynamic offsets
2022-04-22 enga@chromium.org Add back fail expectation on CTS Windows x86
2022-04-21 enga@chromium.org Make the dawn-try-win10-x86-rel trybot includable
2022-04-21 bclayton@google.com Roll third_party/webgpu-cts/ a06666e00..45d2ccd25 (3 commits)
2022-04-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b2a1f0d28a62 to 0439d9cd25b4 (25 revisions)
2022-04-21 aleksi.sapon@faro.com Fix dawn_version_generator.py on Windows when not using depot_tools
2022-04-21 jrprice@google.com tint: Update FirstIndexOffsetTest expected results
2022-04-21 dsinclair@chromium.org Fix readability/todo issues.
2022-04-21 dsinclair@chromium.org Fix build/namespaces issues
2022-04-21 brandon1.jones@intel.com Change External Texture YUV-to-RGB Conversion to Use Matrix
2022-04-21 bclayton@google.com Update WebGPU CTS expectations
2022-04-21 dsinclair@chromium.org [tint] Move validation code into a Validator class.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Change-Id: Ic8dfe5e0e20b076516df279a8bc5debad8c26662
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532759
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2022-04-22 13:16:01 +00:00
Kevin Lubick
14ab6ab256 Roll Dawn from 93a2bed032a9 to 4091e0fa9c1e (18 revisions)
https://dawn.googlesource.com/dawn.git/+log/93a2bed032a9..4091e0fa9c1e

2022-04-21 lokokung@google.com Factor out common cache testing code.
2022-04-21 yunchao.he@intel.com Update webgpu-cts/expectations.txt
2022-04-21 enrico.galli@intel.com D3D12: Duplicate first/baseVertex on Draw[Indexed]Indirect
2022-04-21 lokokung@google.com Adds typing to cache keys to avoid clashes.
2022-04-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 158676f39f3b to df3a617e7556 (6 revisions)
2022-04-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from ea5f37f39193 to 71f3089b729c (5 revisions)
2022-04-20 lokokung@google.com Adds new BlobCache "re-declaration" of PersistentCache.
2022-04-20 enga@chromium.org Check GLFW window creation before discovering GL adapters
2022-04-20 bclayton@google.com tools/src/cts/result: Add more helpers
2022-04-20 bclayton@google.com tools/src/cts/query: Add Tree
2022-04-20 dsinclair@chromium.org Fixup readability/casting lint issues
2022-04-20 dsinclair@chromium.org Ignore remaining explicit warnings.
2022-04-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 55c21842b204 to b2a1f0d28a62 (8 revisions)
2022-04-20 dsinclair@chromium.org Ignore BindingLayoutEntryInitializationHelper for runtime/explicit.
2022-04-20 yunchao.he@intel.com D3D12: work around buffer size insufficient issue for copy
2022-04-20 dsinclair@chromium.org Fix test expectation missing blank line.
2022-04-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1380023f9816 to 158676f39f3b (1 revision)
2022-04-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b5af7cabd5ea to ea5f37f39193 (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Change-Id: I82a8b90efddf8174d9e35ce36be82a60be1ce15c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532396
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-21 12:47:30 +00:00
Kevin Lubick
f4d0c2c9c8 [bazel] Move skcms and vulkanmemoryalloctor to subdirs
It's time to better organize //third_party/BUILD.bazel

This CL starts by moving the "third party" stuff we closely own.

Change-Id: I3e0be0044b790794e94f34af6202860ce0a7b7aa
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531999
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-04-21 12:15:50 +00:00
Kevin Lubick
ed60541341 [bazel] Silence gazelle warnings for unknown files
Change-Id: Id3824d5b72a6e8b28535c78254629fd506e5185d
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532082
Reviewed-by: Florin Malita <fmalita@google.com>
2022-04-20 16:33:18 +00:00
Michael Ludwig
610ef02504 Manual Dawn roll with bazel build update
Change-Id: Ia4dac275a8614d7597e5c17cae77ad3770ba27e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532001
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-04-20 15:00:45 +00:00
Greg Daniel
2cf8e9b602 Reland "Update VMA to latest version."
This is a reland of commit f33cf451a2

Original change's description:
> Update VMA to latest version.
>
> This is needed so that we can use non skia supplied vk_mem_alloc.h on
> clients that have already updated to newest version. As we transition
> to Bazel builds this helps to make it so we can set the rules for
> specific clients around VMA without things breaking
>
> Bug: skia:13211
> Change-Id: I5d38a3a91a44f6b3fdf75894a3248ee3991dd5d9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531157
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Bug: skia:13211
Change-Id: Ia4a863819a7d0bb4763f1b516acfa1cc76c47a8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531548
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-04-20 00:07:47 +00:00
Derek Sollenberger
d5c047004d Revert "Update VMA to latest version."
This reverts commit f33cf451a2.

Reason for revert: breaking the android roller

Original change's description:
> Update VMA to latest version.
>
> This is needed so that we can use non skia supplied vk_mem_alloc.h on
> clients that have already updated to newest version. As we transition
> to Bazel builds this helps to make it so we can set the rules for
> specific clients around VMA without things breaking
>
> Bug: skia:13211
> Change-Id: I5d38a3a91a44f6b3fdf75894a3248ee3991dd5d9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531157
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Bug: skia:13211
Change-Id: Ibd621aa2f07359f9b72e1a35df0f50ca3c063e86
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531543
Auto-Submit: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-04-19 14:49:08 +00:00
Greg Daniel
f33cf451a2 Update VMA to latest version.
This is needed so that we can use non skia supplied vk_mem_alloc.h on
clients that have already updated to newest version. As we transition
to Bazel builds this helps to make it so we can set the rules for
specific clients around VMA without things breaking

Bug: skia:13211
Change-Id: I5d38a3a91a44f6b3fdf75894a3248ee3991dd5d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531157
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2022-04-18 20:28:30 +00:00
Kevin Lubick
a45e3ca967 Add missing Dawn deps
Leftover from the roll https://skia-review.googlesource.com/c/skia/+/530180

Change-Id: I1e00b85c7c374f4ddccff7e8bff451a04c97b6de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530338
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-04-14 22:40:05 +00:00
Kevin Lubick
1d3fe5b289 Roll Dawn from 088a600b0367 to 17b1a4525363 (147 revisions)
https://dawn.googlesource.com/dawn.git/+log/088a600b0367..17b1a4525363

2022-04-14 bsheedy@google.com Split large CTS logs
2022-04-14 bclayton@google.com Roll CTS and update expectations
2022-04-14 yunchao.he@intel.com Add data verification for e2e tests in RequiredBufferSizeInCopyTests.cpp
2022-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from de965415a139 to 1d450ae99a0f (2 revisions)
2022-04-14 bclayton@google.com tools: Add resultsdb package
2022-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 01c0bc215f4a to 871878352630 (4 revisions)
2022-04-14 bclayton@google.com tools: Add buildbucket package
2022-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c9be322642fb to 7e9ab0686bf4 (5 revisions)
2022-04-14 shaobo.yan@intel.com Skip Unneccessary GetPendingCommandContext() Call To Save An Extra Fence
2022-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 011bba68c819 to de965415a139 (2 revisions)
2022-04-14 lokokung@google.com Reland "Add render pipeline cache key generation for Vulkan."
2022-04-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from eeb396535317 to 01c0bc215f4a (22 revisions)
2022-04-13 rharrison@chromium.org Fix path for stamp file in fuzzer corpuse generation
2022-04-13 lokokung@google.com Changes dependency on vulkan-tools typemap header.
2022-04-13 cwallez@chromium.org Roll third_party/webgpu-cts/ dcba3ac6b..5e83d8349 (25 commits)
2022-04-13 enga@chromium.org Revert "Add render pipeline cache key generation for Vulkan."
2022-04-13 enga@chromium.org Add WebGPU Adapter tags to the expectations file
2022-04-13 dsinclair@chromium.org Fixup CQ and Kokoro lint mismatches.
2022-04-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9c0d5b64c767 to c9be322642fb (4 revisions)
2022-04-13 cwallez@chromium.org Change Dawn samples to use surface-based swapchains.
2022-04-13 dsinclair@chromium.org Fixup kokoro lint issue
2022-04-13 bajones@chromium.org Refactored how debug labels are set with Vulkan
2022-04-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 3f37fd8e4fbe to 011bba68c819 (3 revisions)
2022-04-13 dsinclair@chromium.org Remove redundant virtual.
2022-04-13 lokokung@google.com Add render pipeline cache key generation for Vulkan.
2022-04-12 lokokung@google.com Adds device-side cache key generation.
2022-04-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9b2a1bfa4434 to 9c0d5b64c767 (5 revisions)
2022-04-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 620982155d55 to 3f37fd8e4fbe (1 revision)
2022-04-12 bclayton@google.com tools: Add gitiles package
2022-04-12 dsinclair@chromium.org Remove redundant override in include/dawn.
2022-04-12 dsinclair@chromium.org Fix build/include_order in include/dawn.
2022-04-12 dsinclair@chromium.org Remove fuzzer CPPLINT file.
2022-04-12 dsinclair@chromium.org Fixup explicit on some constructors.
2022-04-12 dsinclair@chromium.org Add explicit in include/dawn
2022-04-12 cwallez@chromium.org Rework dawn/native/ProcTable.cpp's template to better handle functions.
2022-04-12 ukai@google.com use stamp file for tint_generate_wgsl_corpus
2022-04-12 bclayton@google.com tools: Minor improvements to the git package
2022-04-12 bclayton@google.com tools: Flesh out the gerrit package
2022-04-12 cwallez@chromium.org Make WebGPU CTS scripts use Python3
2022-04-12 bclayton@google.com kokoro: Check go tool unit tests
2022-04-12 bclayton@google.com tools: Remove old tint test runner
2022-04-12 bclayton@google.com tint: Fix doxygen failure
2022-04-12 cwallez@chromium.org dawn.node: Make run-cts --print-stdout print the run's stdout/err
2022-04-12 dsinclair@chromium.org Remove extra CPPLINT.cfg files.
2022-04-12 dsinclair@chromium.org Fix copyright issues in src/include forwarding headers.
2022-04-12 dsinclair@chromium.org Fix missing copyrights in src/dawn.
2022-04-12 dsinclair@chromium.org Add missing include/webgpu copyrights.
2022-04-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ca8ce3e715c2 to 9b2a1bfa4434 (6 revisions)
2022-04-12 ynovikov@chromium.org Revert "Ignore VUID-vkCmdDraw-None-06538 VVL message"
2022-04-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b120ab6d49f4 to eeb396535317 (12 revisions)
2022-04-12 enga@chromium.org Mark webgpu:shader,execution,shader_io,compute_builtins:inputs:* failing on Windows x86 NVIDIA
2022-04-12 senorblanco@chromium.org GLES: revert part of the view format reinterpretation on GLES.
2022-04-12 bajones@chromium.org Enable Queue, Device labels to be set. (Take 2)
2022-04-11 bclayton@google.com tint: Re-enable doxygen
2022-04-11 bclayton@google.com dawn/node: Fix GCC warning
2022-04-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d15c42482560 to 620982155d55 (2 revisions)
2022-04-11 amaiorano@google.com tint: Make GLSL backend consistent with the others
2022-04-11 amaiorano@google.com tint: spirv writer: add a GeneralImpl to be consistent with HLSL and MSL backends
2022-04-11 bclayton@google.com dawn/node: Define NAPI_DISABLE_CPP_EXCEPTIONS
2022-04-11 bclayton@google.com tint: More doxygen fixes
2022-04-11 bclayton@google.com Roll CTS and update expectations
2022-04-11 dsinclair@chromium.org Enable build/header_guard
2022-04-11 bclayton@google.com tint: Fix doxygen errors
2022-04-11 cwallez@chromium.org CMake: Add support with Swiftshader with DAWN_ENABLE_SWIFTSHADER
2022-04-11 cwallez@chromium.org Move samples/ under src/dawn/samples/
2022-04-11 amaiorano@google.com tint: Simplify backend Sanitize functions by passing in Options
2022-04-11 dsinclair@chromium.org Fixup include directory errors in src/dawn.
2022-04-11 dsinclair@chromium.org Enable empty_if_body lint.
2022-04-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 60e6ec01372a to ca8ce3e715c2 (1 revision)
2022-04-11 amaiorano@google.com Add ifdefs for Tint API usage that may not be available
2022-04-11 dsinclair@chromium.org Fix build/include lint in samples/
2022-04-11 bclayton@google.com tint: Standardize the way we forward-declare
2022-04-11 dsinclair@chromium.org Fixup readability/braces lint warning.
2022-04-11 dsinclair@chromium.org Enable runtime/printf
2022-04-11 dsinclair@chromium.org Fixup build/include issues in src/dawn
2022-04-11 dsinclair@chromium.org Create more targeted CPPLINT.cfg files.
2022-04-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 1b94c585682b to b120ab6d49f4 (1 revision)
2022-04-11 bclayton@google.com tools: Add src/cts/result
2022-04-11 bclayton@google.com tools: Simplify gerrit-stats and snippets
2022-04-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 727cd8ef6634 to 1b94c585682b (1 revision)
2022-04-10 dsinclair@chromium.org Combine contributing files.
2022-04-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 19082e8adae0 to 60e6ec01372a (2 revisions)
2022-04-09 senorblanco@chromium.org OpenGLES: simulate glTextureView() with texture-to-texture copies.
2022-04-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d4572ee122d4 to 19082e8adae0 (1 revision)
2022-04-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 09a24f3d53cd to 727cd8ef6634 (3 revisions)
2022-04-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2ce1d878f9c9 to d4572ee122d4 (6 revisions)
2022-04-09 lokokung@google.com Add compute pipeline cache key generation for Vulkan.
2022-04-08 amaiorano@google.com tint: Fix copy instead of move of ArrayLengthFromUniform::used_size_indices
2022-04-08 dsinclair@chromium.org Fixup whitespace/comments issues.
2022-04-08 amaiorano@google.com tint: handle CRLF on Windows when splitting WGSL source
2022-04-08 bclayton@google.com CMake: Fix sanitizer builds
2022-04-08 bclayton@google.com Kokoro: Ensure that no CRLF creep in
2022-04-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3cea7fcc01ce to 09a24f3d53cd (2 revisions)
2022-04-08 cwallez@chromium.org dawn.node: Detach buffer mappings on GPUBuffer.destroy.
2022-04-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from acc216fde2a5 to 2ce1d878f9c9 (4 revisions)
2022-04-08 bclayton@google.com Normalize all line endings to LF
2022-04-08 bclayton@google.com Kokoro: install GLFW dependencies
2022-04-08 dsinclair@chromium.org Re-enable lint presubmit
2022-04-08 jiawei.shao@intel.com Always use 0 for the Depth operand of OpTypeImage
2022-04-08 cwallez@chromium.org Validate that alignment limits are powers of two.
2022-04-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 17311a73f6fb to acc216fde2a5 (7 revisions)
2022-04-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d09282e5c609 to d15c42482560 (2 revisions)
2022-04-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ba04fcfd10c7 to 3cea7fcc01ce (6 revisions)
2022-04-07 rharrison@chromium.org Clean up contributing documentation post tint merge
2022-04-07 bclayton@google.com CMake: Fix building of tint with fuzzers enabled
2022-04-07 dsinclair@chromium.org Minor formatting changes.
2022-04-07 enga@chromium.org Make texture view default format robust against invalid aspects
2022-04-07 bclayton@google.com Remove standalone.gclient
2022-04-07 bclayton@google.com Move kokoro dir under infra
2022-04-07 bclayton@google.com .vscode/tasks.json - Add 'cmake gen'
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/reader.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/reader/spirv.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/ast.
2022-04-07 bclayton@google.com tools: Replace copy-pasta scripts
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/inspector.
2022-04-07 cwallez@chromium.org Add top-level OWNERS and scope Tint owners more tightly.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/reader/wgsl.
2022-04-07 amaiorano@google.com Ignore tools/cmake*
2022-04-07 bclayton@google.com tools/src: Fix up paths post-tint-merge
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/fuzzers.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/resolver.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/diagnostic.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/utils.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/transform.
2022-04-07 amaiorano@google.com spirv: Remove AssembleFailure() tests
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/sem.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/val
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer/glsl.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer/hlsl.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer/spirv.
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer/msl.
2022-04-07 jrprice@google.com Add support for increment/decrement statements
2022-04-07 jrprice@google.com wgsl: Add support for increment/decrement statements
2022-04-07 jrprice@google.com resolver: Validate increment/decrement statements
2022-04-07 jrprice@google.com ast: Add an IncrementDecrementStatement node
2022-04-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 746dd371204b to 17311a73f6fb (9 revisions)
2022-04-07 enga@chromium.org Implement rendering with view format reinterpretation
2022-04-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 9c16e141823e to d09282e5c609 (3 revisions)
2022-04-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 152616eedcfd to ba04fcfd10c7 (6 revisions)
2022-04-07 cwallez@chromium.org Remove lintcpp from presubmits since it fails on all Dawn files
2022-04-07 dsinclair@chromium.org Condense namespaces in tint/writer/wgsl.
2022-04-07 cwallez@chromium.org DEPS: add the clang-format hook on windows back.
2022-04-07 bclayton@google.com OWNERS: Move bclayton to core owners
2022-04-06 rharrison@chromium.org Remove hooks that are causing *-rel builds to fail
2022-04-06 jrprice@google.com Add Tint's .clang-format file to src/tint

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bajones@google.com,brianosman@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bajones@google.com,brianosman@google.com
Test: Test: tint_unittests
Change-Id: Ib0786ce79bc994d7228d6967b27f11554cd9dfbb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530180
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-14 19:38:26 +00:00
Kevin Lubick
83cee23c98 [bazel] Run buildifier on BUILD.bazel files
buildifier --lint=fix -r .

Change-Id: I6a41858270d20137978f8271c8f6160b51120777
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529751
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-04-14 18:13:43 +00:00
Kevin Lubick
458f4ded2b [bazel] Consolidate skylib loads
For importing into G3, this will simplify the regex needed
and allow us to stub out things not supported (e.g. gazelle)

Change-Id: I770f5dee6f29e555356742dae36212ad6cfb713a
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529836
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-04-14 11:37:08 +00:00
skia-autoroll
3aa6ec7bbd Roll skcms from 0ff18ebed22b to dcb0286a1e17 (1 revision)
https://skia.googlesource.com/skcms.git/+log/0ff18ebed22b..dcb0286a1e17

2022-04-13 lovisolo@google.com [bazel] Use hermetic Android NDK C++ toolchain in CI tasks.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC armansito@google.com,brianosman@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: armansito@google.com,brianosman@google.com
Change-Id: Ia65a51f237365353540527c936de91150c548002
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529891
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-14 00:20:15 +00:00
skia-autoroll
35f80d69e8 Roll skcms from 5394ae3ed6c8 to 0ff18ebed22b (1 revision)
https://skia.googlesource.com/skcms.git/+log/5394ae3ed6c8..0ff18ebed22b

2022-04-13 lovisolo@google.com [bazel] Add hermetic Android NDK C++ toolchain.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC armansito@google.com,brianosman@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: armansito@google.com,brianosman@google.com
Change-Id: I9519d90a799bf6c1e75bb7dee7531baccc09326e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529673
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-13 22:14:15 +00:00
Kevin Lubick
b98328a27b [bazel] Add license to all our BUILD.bazel files
find -name "BUILD.bazel" -exec sed -i -e '1i licenses(["notice"])\n' {} +

Change-Id: Ie48f163b7d8d6ede9ba5f952e87232dd5c9fa8e6
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529808
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-04-13 19:50:29 +00:00
skia-autoroll
319f38e9f7 Roll skcms from 30c8e303800c to 5394ae3ed6c8 (1 revision)
https://skia.googlesource.com/skcms.git/+log/30c8e303800c..5394ae3ed6c8

2022-04-13 lovisolo@google.com Ignore .vscode.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC armansito@google.com,brianosman@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: armansito@google.com,brianosman@google.com
Change-Id: Ia82a4c2072a951e1b2fad286e5cd4b0812813ca1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529571
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-13 14:59:11 +00:00
Kevin Lubick
a9f6ceebed [bazel] Add executable for skslc
This ports the GN skia_executable [1] and adds third_party
Bazel rules for spirv_cross, translated from [2]. spirv_cross,
unlike spirv_tools, did not have pre-made Bazel rules.

This binary compiles and links with

    bazelisk build //tools/skslc --config=clang

[1] ad324a31e6/BUILD.gn (L712)
[2] ad324a31e6/third_party/spirv-cross/BUILD.gn (L10)

Change-Id: I4abd51889552153fc7e64a5f7f3d9f0f597524e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528044
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-04-08 17:25:24 +00:00
Kevin Lubick
503a2bd982 Update Skia to use the new combined Dawn+Tint repo
Includes a manual roll of Dawn, as well as tweaks to the Tint build
overrides.

Dawn needs git in order to generate a header that has the
version of Dawn compiled in. If we use Dawn's GN rules to
build it, we need git to generate that file.

Our (now updated) Bazel rules to build Dawn do not need to
do this because we (Skia) do not use this file [1]

[1] https://dawn.googlesource.com/dawn/+/088a600b03679cd20991f145173a573ed9c03480/src/dawn/common/BUILD.gn#177

Change-Id: Id19fdbb9b53fdad2397a0044a4a314b1444faeb0
Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn,Build-Win-Clang-x86_64-Release-Dawn
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528157
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-07 20:31:14 +00:00
Kevin Lubick
fed97e8f40 [bazel] Add RBE support using hermetic Linux Clang toolchain
A new RBE worker-pool called gce_linux was created in
conjunction with this CL. See
https://docs.google.com/document/d/14xMZCKews69SSTfULhE8HDUzT5XvPwZ4CvRufEvcZ74/edit#
for some details on that.

Note: everything under bazel/rbe/gce_linux was autogenerated
and can be ignored from manual review. It basically specifies
what files are on the RBE image that are necessary for running
Bazel.

Testing it out can be done by authenticating for RBE
gcloud auth application-default login --no-browser

Then, run make -C bazel rbe_known_good_builds
to test it out.

On my 4 core laptop with an empty local cache, but a
warm remote cache, the build took <2 min instead of the
10+ minutes it would have [1].

The folder structure in //bazel/rbe is meant to let us
have multiple remote configurations there, e.g.
//bazel/rbe/gce_windows.

Suggested Review Order:
 - bazel/rbe/README.md
 - bazel/rbe/gce_linux_container/Dockerfile to see the
   bare-bones RBE image.
 - bazel/rbe/BUILD.bazel to see a custom platform defined.
   It is nearly identical to the autogenerated one
   in bazel/rbe/gce_linux/config/BUILD, with one extra
   field to force the gce_linux pool to be used.
 - .bazelrc to see the settings needed to make
   --config=linux-rbe work. The naming convention was
   inspired by SkCMS's setup [2], and allows us to have
   some common RBE settings (i.e. config:remote) and
   some specialized ones for the given host machine
   (e.g. config:linux-rbe) A very important, but subtle
   configuration, is on line 86 of .bazelrc where we say
   to use our hermetic toolchain and not whatever C++
   compiler and headers are on the host machine (aka
   the RBE container).
 - toolchain/build_toolchain.bzl to see some additional
   dependencies needed in the toolchain (to run IWYU) which
   I had installed locally but didn't realize were important.
 - third_party/BUILD.bazel to see an example of how failing
   to specify all files can result in something that works
   locally, but fails remotely.
   --execution_log_json_file=/tmp/execlog.json helped debug
   these issues.
 - All other files.

[1] http://go/scrcast/NjM1ODE4MDI0NzM3MTc3Nnw3ODViZmFkMi1iOA
[2] https://skia.googlesource.com/skcms/+/30c8e303800c256febb03a09fdcda7f75d119b1b/.bazelrc#20


Change-Id: Ia0a9e6a06c1a13071949ab402dc5d897df6b12e1
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/524359
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2022-03-28 13:56:16 +00:00
Kevin Lubick
54bd442fad [bazel] Use hermetic Python with jinja2+MarkupSafe
The file generation logic that dawn [1] uses to make some
source files requires jinja2, which also requires MarkupSafe.

The GN build handles this by specifying those repos in
DEPS, checking them out at a certain git hash, and then
providing them via a command line arg [2].

We do not have to do it this way in Bazel to have reproducible
builds. This CL specifies an exact version (verified by sha256)
of those two deps and then uses a hermetic version of
Python 3.9 to run all py_binary commands.

Previously, we would rely on the system Python (and installed
libraries). That happened to work on my machine, but not on
other machines without jinja2 and MarkupSafe installed. After
this CL, it should work on machines that do not have python
even installed.

I chose the same jinja2 version used by Dawn [3], which was
2.11.3. Then I chose the newest version of MarkupSafe that
was compatible with jinja2 (2.0.1).

If we have other python scripts that need external deps, we
should be able to specify them in the py_binary that needs
them and in requirements.txt. Then, the pip_install() step
in WORKSPACE.bazel will download them and make them available.

[1] https://dawn.googlesource.com/dawn.git/+/refs/heads/main/docs/dawn/overview.md
[2] https://dawn.googlesource.com/dawn.git/+/e45ff6a4b3c2f06dade68ec0f01ddc3bfd70c282/generator/generator_lib.gni#77
[3] ee69aa00ee

Change-Id: I3d0074f3003de179400e239e00107c34f35f4901
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/524217
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2022-03-28 13:56:16 +00:00