Bug: skia:7603
Change-Id: I2d0406b544d03efbd5caa165ecf2f099d8d73881
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514217
Reviewed-by: Erik Rose <erikrose@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
That was making Gerrit unable to invoke the jobs; the regex for valid
jobs doesn't contain comma.
Change-Id: I9b8a42ab1d5b8ac204895388844bde88a604491f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514356
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
These have been failing for 9+ months
Change-Id: I9cc15298ee0ea1f2f1070affeeb5392ced376793
Bug: skia:12268
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514276
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
We previously had no way to signal a parse error from arraySize,
resulting in a cascade of additional errors downstream. This tightens
up the behavior and allows us to fail more gracefully.
Bug: skia:12416
Change-Id: I83d3d5bc1dc63395edb325297375a6eb52415817
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512952
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This was only used for fragment processor CPP/H file generation, which
no longer exists.
Change-Id: I650444c4b9ae3197003ed6c5ff8e291e33965923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514216
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
dFdy wasn't working due to the DSL never having been started.
Bug: skia:12985
Change-Id: Ic58018e3dec3e9df15c2e784f8732ee99e793353
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513938
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
uname -m and platform.machine() return 'aarch64' on Linux.
Change-Id: I17a17fe3d7abf5a3708d31b7e2b6866568d042b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513898
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Matt Turner <msturner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This CL makes a copy of all the files in
//modules/canvaskit/tests/ and puts them into
//modules/canvaskit/tests/bazel. They are slightly modified
to run in Bazel (renamed to be more clear what they are
and using EverythingLoaded instead of CanvasKitLoaded).
The original files will be deleted when we no longer test
CanvasKit outside of Bazel.
Suggested Review Order:
- hello_world.js is now smoke_test.js. That test polls the
gold_test_env server, but does not create an image.
- test_reporter.js which is much simplified from the non-Bazel
version (due to the removal of a bunch of PathKit stuff).
These JS tests are not the C++ gms. This means that we need
to capture the PNG ourselves, which we do using the <canvas>
API toDataURL(). This is base64 encoded, which is conveniently
the format accepted by the gold_test_env server.
- karma.bazel.js and assets/BUILD.bazel which make all the
test assets available under a shortened path /assets.
- Feel free to skip over the remaining *_test.js, as they are
basically the same as what is currently checked in, just
with the modifications above.
- Any remaining files.
Change-Id: I45fc38da38faf11f21011e7381d390e6bb299df4
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513916
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Change-Id: I9ee142f949e644dcd06f359bb6838b5b4f04ec21
Bug: skia:12990
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513736
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
In order to extract the PNG files produced by our CanvasKit gms,
we need our JS tests to POST them to a server which can write to
disk. The easiest way to do this is to use the test_on_env
rule defined in the Skia Infra repo for exactly this purpose.
This required https://skia-review.googlesource.com/c/buildbot/+/510717
to be able to configure the binary correctly and
https://skia-review.googlesource.com/c/buildbot/+/511862, for nicer
debugging so the skia-infra dep was updated via the following commands:
$ go get go.skia.org/infra@d8a552a29e
$ go mod download
$ make -C infra/bots train
$ make -C bazel gazelle_update_repo
This caused many automated changes to infra/bots/tasks.json
The flow is:
1. User types bazelisk test :hello_world_test_with_env
2. The test_on_env rule starts gold_test_env and waits
for the file defined in $ENV_READY_FILE to be created.
3. gold_test_env starts a web server on a random port. It
writes this port number to $ENV_DIR/port. Then, it
creates $ENV_READY_FILE to signal ready.
4. test_on_env sees the ready file and then starts the
karma_test rule. (Reminder: this is a bash script
which starts karma using the Bazel-bundled chromium).
5. The karma_test rule runs the karma.bazel.js file (which
has been injected with some JS code to fill in Bazel
paths and settings) using Bazel-bundled node. This reads
in the port file and sets up a Karma proxy to redirect
/gold_rpc/report to http://localhost:PORT/report
6. The JS tests run via Karma (and do assertions via Jasmine).
Some tests, the gms, make POST requests to the proxy.
7. gold_test_env gets these POST requests writes the images
to a special Bazel folder on disk as defined by
$TEST_UNDECLARED_OUTPUTS_DIR.
8. test_on_env identifies that the tests finish (because the
karma_test script returns 0). It sends SIGINT to gold_test_env.
9. gold_test_env stops the webserver. The special Bazel folder
will zip up anything inside it and make it available for
future rules (e.g. a rule that will upload to Gold via goldctl).
Suggested Review Order:
- bazel/karma_test.bzl to see the test_on_env rule bundled into
the karma_test macro. I chose to put it there because it might
be confusing to have to define both a karma_test and test_on_env
rule in the same package but not be able to call one because it
will fail to talk to the server.
- gold_test_env.go to see how the appropriate files are written
to signal the environment is ready and the handlers are set up.
- karma.bazel.js to see how we make our own proxy given the
port from the env binary. The fact that we could not create
our own proxy with the existing karma_test rule was why the
chain ending in https://skia-review.googlesource.com/c/skia/+/508797
had to be abandoned.
- tests/*.js to see how the environment is probed via /healthz
and then used to make POST requests with data.
- Everything else.
Change-Id: I32a90def41796ca94cf187d640cfff8e262f85f6
BUG: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510737
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
These tests were not being run for ES3-only GPU and non-strict-ES2 CPU
tests. CLONE and REHYDRATE variants are now generated for all test
declarations.
Change-Id: I8ce14bd50f175d0bae66d9593b68a42fab701f93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513056
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
On modern hardware, this will give the correct result for `NaN != x`
(true).
Change-Id: I9683f74756da5da5f34ccacec02c1f2449791f26
Bug: skia:12977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513317
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
The FreeType port always requested that color glyphs be antialiased.
Respect the setting for aliased glyph rendering with color glyphs.
Change-Id: If9a477b705a91b1284739bd190aea90b2929612f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512949
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I686b858ca5b0497731bdaa15027ebbaaa70d13b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512951
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
A surprising omission--this already existed in the dehydrator, and in
our "binary format" docs, but the rehydrator had never implemented it.
Change-Id: I5418006d6c76430089e36922eb6eada861fb51e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512950
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Previously, we wrote all ints via readS32/writeS32 which would assert
that a dehydrated integer was within INT_MIN to INT_MAX range. This
assumption does not hold for unsigned values. Now, we use
readU32/writeU32 for unsigned values.
Change-Id: I50e3a38bbfd060b493d7c6a1196cdd44ce05e738
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/513258
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Add serialization to DrawableOpSubmitter, and DrawableSubRun.
Add the Bulk glyph infrastructure to the SkStrike and
SkScalerCache.
Bug: chromium:1278340
Change-Id: Ibd008d200142fc0476b2467dbdf5973544cfecea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512945
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Previously, `setupSymbolTable` would add a bunch of non-ES2 type aliases
to the program's symbol table if ES2 restrictions were disabled. As it
turns out, this was largely unnecessary ever since we restructured how
non-ES2 types are restricted. Nowadays, the root symbol table has all
types in it, and Type::isAllowedInES2 is used to disallow non-ES2 types
when strict ES2 mode is on. (See http://review.skia.org/459119)
The only missing piece here was that `add_glsl_type_aliases` was never
updated to add the non-square GLSL matrix alias types, and
`setupSymbolTable` papered over this. Now, `add_glsl_type_aliases` adds
these types directly.
Change-Id: I30ca62a3e6fd130c3078b38d917c3b7c0885e5b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512946
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
It is possible that when filtering a blob for a glyph run list that the
blob does not need to be changed at all. In this case the original
glyphRunList can be used unmodified. When this happens `filterTextBlob`
does not fill out the `cache` but instead returns the original `blob`.
The existing code assumed that the `cache` was always filled and would
crash when trying to create a glyph run list out of it when it wasn't.
Change-Id: Ia8d9339c613a2157968bd2774966a7ad16edcfee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512944
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Serialize the glyphIDs and descriptor, and reconstruct the paths
while deserializing.
Change-Id: I3333b9d3286ec67f2e8a601b2fb2dba6b93533d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512938
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This is a reland of 24d732f4ca
I removed glyphIDs and Paths sharing memory. They are just in
separate arrays. Having them share causes a race in threaded
environments like DDLs. Now everything is const. This allows
passing just the SkDescriptor instead of the sk_sp<SkStrike>.
Original change's description:
> store GlyphIDs in the PathOpSubmitter
>
> In order to support serializing, have the PathOpSubmitter store
> SkPathIDs until the paths are needed for drawing, and then lookup
> the paths and store them in the memory that the IDs occupied.
> This is a one time operation. Wire the strike down from the
> SkGlyphRunPainter down to the PathOpSubmitter.
>
> Change-Id: Id9382fefc252eebafeb9792f380d24ec0939316d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512937
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I99ecfc1cb052b0d85d11403b5ef24d738f0a1d2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512942
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I518edbc3d64db409e7977e642acbe5b906016f60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512936
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This is a reland of 63e7ba59ce
This fixes accidental change of `310es` -> `300es` in one spot.
Original change's description:
> Add synonyms to GLSLGeneration for 100es and 300es.
>
> We use GLSLGeneration::k330 to mean GLSL 3.30 for desktop GLSL and also
> for ES 3.00. k110 lived a double life as ES 1.00. This was confusing, so
> several places in the code had comments like "this is the value for GLSL
> ES 3" to clarify.
>
> This CL adds new enums "k100es" and "k300es" which use the same values
> as "k110" and "k330", but make the code easier to understand at a
> glance.
>
> Change-Id: Ib4dfbd8cd7bab45b35d6ad7303ccf87c7eeca3ab
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506898
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
Change-Id: I2e271090687000aa522b217b9d54f9332ecd3a49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512728
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 24d732f4ca.
Reason for revert: Race for TSAN in DDLs and compile problem on chrome
Original change's description:
> store GlyphIDs in the PathOpSubmitter
>
> In order to support serializing, have the PathOpSubmitter store
> SkPathIDs until the paths are needed for drawing, and then lookup
> the paths and store them in the memory that the IDs occupied.
> This is a one time operation. Wire the strike down from the
> SkGlyphRunPainter down to the PathOpSubmitter.
>
> Change-Id: Id9382fefc252eebafeb9792f380d24ec0939316d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512937
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: Ifab80f53f94a0bd99914bbd24201c9f933d9232b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512941
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
In order to support serializing, have the PathOpSubmitter store
SkPathIDs until the paths are needed for drawing, and then lookup
the paths and store them in the memory that the IDs occupied.
This is a one time operation. Wire the strike down from the
SkGlyphRunPainter down to the PathOpSubmitter.
Change-Id: Id9382fefc252eebafeb9792f380d24ec0939316d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512937
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
The SKSL_TEST_CPU_ES3 has been misinterpreted to mean that the tests
should run on "SkVM and OpenGL" while it was originally meant for tests
that were explicitly disabled on GPU backends.
* This macro is now called "SKSL_TEST_CPU_NO_STRICT_ES2" and the comments
reflect the fact that the tests are meant for CPU-only.
* Removed the infra bot exceptions for the matrix constructor tests as
they are now restricted to run only on CPU.
Bug: skia:12970
Change-Id: I46dcec51ef6998f6a8a7b4610c39560da1e59057
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512578
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
Cq-Include-Trybots: luci.skia.skia.primary:Canary-G3
Change-Id: Iebd4aaec098b6bf2e863d0c93d7fd826d3ec0edc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512724
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:12754
Change-Id: Ie012bce21597ef2f0f1555d1cc6302b7eda0dd56
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507923
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
ad462491fb..78c64dd74e
2022-02-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 13f7365e81be to b4a56a893496 (11 revisions)
2022-02-18 cnorthrop@google.com Python3: Update generate_test_spec_json.py
2022-02-18 lubosz.sarnecki@collabora.com FrameCapture: Capture empty buffer generation.
2022-02-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from d984ec3b132a to 6594a8d1e6cf (1749 revisions)
2022-02-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 834c2e16ae1c to d321c7ec84de (7 revisions)
2022-02-17 cclao@google.com Vulkan: Fix DynamicBuffer cache reuse.
2022-02-17 syoussefi@chromium.org Translator: Fix RunAtTheEndOfShader w.r.t discard
2022-02-17 lubosz.sarnecki@collabora.com gl.xml: Remove GL_BLEND_EQUATION_EXT from GetPName.
2022-02-17 jmadill@chromium.org Vulkan: Add overlay and stats for descriptor set caches.
2022-02-17 m.maiya@samsung.com Vulkan: Add a feature to retain SPIR-V debug info
2022-02-17 jmadill@chromium.org Vulkan: Refactor DynamicBuffer::allocate.
2022-02-17 jmadill@chromium.org Vulkan: Simplify SubAllocation data types.
2022-02-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9fb91023eb58 to 4d9fe6bf1f0c (8 revisions)
2022-02-17 yuxinhu@google.com Add instructions to build RenderDoc for Android on Windows
2022-02-16 cclao@google.com Vulkan: Allocate space for default attrib only if it is enabled
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC erikrose@google.com,michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/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-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: erikrose@google.com,michaelludwig@google.com
Test: Test: GLSLTest_ES3.ConstantConditionGuardingDiscard
Test: Test: GLSLTest_ES3.NestedUnconditionalDiscards
Test: Test: angle_end2end_tests --gtest_filter="SimpleOperationTest.BlendEquationGetInteger/*"
Test: Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.EmptyArrayBuffer/*"
Change-Id: If37b98a326e52c67f66a4bc6f8ed74df3ecd93c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512800
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>