Change-Id: I433159717b831e9dbfc251c38687572bdc45c959
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329037
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
e2147a58a2..d74754378f
2020-10-22 syoussefi@chromium.org Vulkan: Support vertex attribute aliasing for matrix types
2020-10-22 cnorthrop@google.com Tests: Add FIFA Mobile trace
2020-10-21 cnorthrop@google.com Tests: Add KartRider Rush+ trace
2020-10-21 syoussefi@chromium.org Vulkan: Faster check for vertex attribute aliasing
2020-10-21 cnorthrop@google.com Tests: Add Marvel Contest of Champions trace
2020-10-21 sugoi@chromium.org Revert "Allow rendering to half float in ES2 contexts when possible"
2020-10-21 geofflang@google.com GL: Use ANGLE_GL_TRY when setting pixel pack and unpack state.
2020-10-21 sugoi@google.com Allow rendering to half float in ES2 contexts when possible
2020-10-21 geofflang@google.com Expose glGetTexLevelParameter{if}v before ES 3.1.
2020-10-21 jmadill@chromium.org Test Runner: Command line sharding args override env.
2020-10-21 jonahr@google.com Disable TransformFeedbackTest.NonExistentTransformFeedback*
2020-10-21 jonahr@google.com Add dlopen_fuchsia.h as exception in export_targets.py
2020-10-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 3ead01191215 to ea52b3c2d270 (3 revisions)
2020-10-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from df17a76102df to 84f5eeb6dd9b (3 revisions)
2020-10-21 m.maiya@samsung.com Vulkan: Add OES_shader_multisample_interpolation extension
2020-10-21 cnorthrop@google.com Tests: Add Free Fire trace
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 egdaniel@google.com on the revert to ensure that a human
is aware of the problem.
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/master/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: egdaniel@google.com
Test: Test: TransformFeedbackTest.NonExistentTransformFeedbackVaryingWithGLPrefix:/ES3_OpenGLTest: Test: angle_perftests --gtest_filter="*fifa_mobile*"Test: Test: angle_perftests --gtest_filter="*free_fire*"Test: Test: angle_perftests --gtest_filter="*marvel_contest_of_champions*"Test: Test: angle_perftests --gtet_filter="*kartrider_rush*"
Change-Id: Idfcee8951a97ac68849a899254c0793e94784404
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329118
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This is a reland of e16eca95f5
Original change's description:
> Create a basic IRNode pooling system.
>
> Allocations are redirected by overriding `operator new` and `operator
> delete` on the IRNode class. This allows us to use our existing
> `unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
> it holds a fixed number of nodes and recycles them as they are returned.
>
> A fixed pool size of 2000 nodes was chosen. That is large enough to hold
> the contents of `sksl_large` during compilation, but it can be
> overflowed by very large shaders, or if multiple programs are converted
> at the same time. Exhausting the pool is not a problem; if this happens,
> additional nodes will be allocated via the system allocator as usual.
> More elaborate schemes are possible but might not add a lot of value.
>
> Thread safety is accomplished by placing the pool in a `thread_local`
> static during a Program's creation and destruction; the pool is freed
> when the program is destroyed. One important consequence of this
> strategy is that a program must free every node that it allocated during
> its creation, or else the node will be leaked. In debug, leaking a node
> will be detected and causes a DEBUGFAIL. In release, the pool will be
> freed despite having a live node in it, and if that node is later freed,
> that pointer will be passed to the system `free` (which is likely to
> cause a crash).
>
> In this CL, iOS does not support pooling, since support for
> `thread_local` was only added on iOS 9. This is fixed in the followup
> CL, http://review.skia.org/328837, which uses pthread keys on iOS.
>
> Nanobench shows ~15% improvement:
> (last week) http://screen/5CNBhTaZApcDA8h
> (today) http://screen/8ti5Rymvf6LUs8i
>
> Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
Change-Id: I114971e8e7ac0fabaf26216ae8813eeeaad0d4a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329086
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This fixes the aspect ratio for pretty much all tests.
Since we're going to rebaseline everything, also have dm use a white
background (to match other user agents).
Bug: skia:10842
Change-Id: Iab2afd61560af540539c216d1c3673f19fe0fe51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328982
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
This fixes a potential leak of the symbol table. (The leak would
eventually resolve itself once the IRGenerator were destroyed, but it
does outlast the compilation step.)
Change-Id: I6b2e303f00a3331fccbd8421a5173defd352f022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328985
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
To load in the resources, we have the Node JS script
find all files in the provided resources directory and serve
that as a JSON file (the HTML JS can't list files easily).
The HTML JS reads that file, then loads all those files as
ArrayBuffers.
After the testing WASM and the resources all load, we pre-load
them into the WASM memory, assigned with their name. This is
just a map of name -> SkData. The WASM code can't (easily)
make fetch calls, so rather than load these resources on demand
like we would in a real file system, we pre-load them all
and serve them from RAM. For simplicity (and consistency with
the known_hashes), this map is a global.
Finally, to connect the resources to the GMs, we overwrite the
gResourceFactory (defined in ResourceFactory.h) which is used
by tools/Resources.cpp to load any resource file (in theory).
One more change is to write some progress steps to window._log
so it can be read by puppeteer and dumped to disk to aid in
debugging.
Bug: skia:10812
Change-Id: Ie22c7f4b8d7cbbd18173b4e2ed755105c1b45249
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328901
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
We already don't call the dynamic update for the blend constant if it's
not used. This change makes it so we don't even tell the VkPipeline
to have support for a dynamic blend constant. This allows the driver
to make the pipline objects slightly more optimal.
Change-Id: Ib7ea4e0ec7eeb8e7c1cf165d426ee863fa0a3a00
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329036
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Specifying gradientUnits will allow gradient coordinates to be specified
relative to object bounding boxes, as seen in test 'coords-units-01-b'.
Not yet used with this CL.
Bug: skia:10842
Change-Id: I6038cf3995a94c7e3a7ac73ad8305872353a403c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328977
Reviewed-by: Florin Malita <fmalita@chromium.org>
Auto-Submit: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
This reverts commit 07829f27ec.
Reason for revert: actually looks like skp gone good
Original change's description:
> Revert "Perform bounding rect-relative calcs in full float in GrRRectBlurEffect"
>
> This reverts commit f4594d1d5b.
>
> Reason for revert: skp gone bad
>
> Original change's description:
> > Perform bounding rect-relative calcs in full float in GrRRectBlurEffect
> >
> > Add GM that tests very wide/tall SkRRects with blurs
> >
> > Bug: chromium:1138810
> > Change-Id: Ib5a2e04de50c441f57f5e4b6194c3f9829323dc9
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328383
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Michael Ludwig <michaelludwig@google.com>
>
> TBR=bsalomon@google.com,michaelludwig@google.com
>
> Change-Id: I3633efd4802a0a9493831ec471304333272fa87e
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1138810
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328905
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,michaelludwig@google.com
# Not skipping CQ checks because this is a reland.
Bug: chromium:1138810
Change-Id: Ic061849c410f43411d03972cdfadc5f0610efe6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328907
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
The default visualizations of shared and unique ptr are customized,
but in a way that requires an extra indirection. 99.9% of the time,
the other data is irrelevant, and people just want to treat it like
a raw pointer, so make that the default.
Added correct visualization of some SkSL types (StringFragment!),
fixed a bug in the SkAutoTArray visualizer, and added a few things
to make SkTHashMap a little bit better. (Still not great, but at the
point of diminishing returns).
No-Try: true
Change-Id: I62cec14bac921b04fc41685cc2527d280e883394
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328911
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This also has several other bug fixes and refactorings within it that
I realized were possible while updating every where that had checked
sigma > 0 to be sigma > kEffectivelyZeroSigma.
The big things are that SkBlurPriv.h goes away and its functions are
just moved into SkGpuBlurUtils since they were only used by the GPU.
The implementations of those functions are also collected into
SkGpuBlurUtils.cpp. I removed the GrMatrixConvolution::MakeGaussian,
in favor of SkGpuBlurUtils filling in the kernel itself and then calling
the regular Make. This let me consolidate two different 1D kernel
computing functions, and remove the 1D fallback code from the 2D kernel
calculation because GaussianBlur() can detect that earlier.
The new GM, BlurSigmaSmall, originally drew incorrectly on the GPU
backend because it's small but non-zero sigma would trick the sigma > 0
checks in various places so we'd do a full 2 pass X/Y blur. However,
when the sigma was too small, the kernel was just filled with 0s so the
Y pass would effectively clear everything. While I could have just fixed
that to be a [0, 1, 0] kernel, updating the blur pipeline to compare
against integer radii seems more robust.
Change-Id: I3c41e0235a27615a9056b25e627ffedd995264bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328797
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This reverts commit e16eca95f5.
Reason for revert: ASAN error on fuzzer
https://status.skia.org/logs/snBeMRUkDrwDYbnm2SAG/7ad38736-d579-4e94-bc10-87c002f3f7d6/fd7b6ea1-5d36-4612-85d1-88462a5271f7
Original change's description:
> Create a basic IRNode pooling system.
>
> Allocations are redirected by overriding `operator new` and `operator
> delete` on the IRNode class. This allows us to use our existing
> `unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
> it holds a fixed number of nodes and recycles them as they are returned.
>
> A fixed pool size of 2000 nodes was chosen. That is large enough to hold
> the contents of `sksl_large` during compilation, but it can be
> overflowed by very large shaders, or if multiple programs are converted
> at the same time. Exhausting the pool is not a problem; if this happens,
> additional nodes will be allocated via the system allocator as usual.
> More elaborate schemes are possible but might not add a lot of value.
>
> Thread safety is accomplished by placing the pool in a `thread_local`
> static during a Program's creation and destruction; the pool is freed
> when the program is destroyed. One important consequence of this
> strategy is that a program must free every node that it allocated during
> its creation, or else the node will be leaked. In debug, leaking a node
> will be detected and causes a DEBUGFAIL. In release, the pool will be
> freed despite having a live node in it, and if that node is later freed,
> that pointer will be passed to the system `free` (which is likely to
> cause a crash).
>
> In this CL, iOS does not support pooling, since support for
> `thread_local` was only added on iOS 9. This is fixed in the followup
> CL, http://review.skia.org/328837, which uses pthread keys on iOS.
>
> Nanobench shows ~15% improvement:
> (last week) http://screen/5CNBhTaZApcDA8h
> (today) http://screen/8ti5Rymvf6LUs8i
>
> Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: I625d95a14057727b297c0bfc5b98bcd78ad8572c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328906
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This reverts commit f4594d1d5b.
Reason for revert: skp gone bad
Original change's description:
> Perform bounding rect-relative calcs in full float in GrRRectBlurEffect
>
> Add GM that tests very wide/tall SkRRects with blurs
>
> Bug: chromium:1138810
> Change-Id: Ib5a2e04de50c441f57f5e4b6194c3f9829323dc9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328383
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
TBR=bsalomon@google.com,michaelludwig@google.com
Change-Id: I3633efd4802a0a9493831ec471304333272fa87e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1138810
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328905
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
These changes cause fewer unnecessary temporary variables to be emitted
in the final gencode and give the optimizer less work to do.
Change-Id: Ied0e83904e2d108382666d18ab733334292e5a63
Bug: skia:10549
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328838
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Switch statements were not caught when originally implementing
http://review.skia.org/328384.
Change-Id: Iff21e5743bf6a604e13c45a736799b4929844472
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328900
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Add GM that tests very wide/tall SkRRects with blurs
Bug: chromium:1138810
Change-Id: Ib5a2e04de50c441f57f5e4b6194c3f9829323dc9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328383
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Allocations are redirected by overriding `operator new` and `operator
delete` on the IRNode class. This allows us to use our existing
`unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
it holds a fixed number of nodes and recycles them as they are returned.
A fixed pool size of 2000 nodes was chosen. That is large enough to hold
the contents of `sksl_large` during compilation, but it can be
overflowed by very large shaders, or if multiple programs are converted
at the same time. Exhausting the pool is not a problem; if this happens,
additional nodes will be allocated via the system allocator as usual.
More elaborate schemes are possible but might not add a lot of value.
Thread safety is accomplished by placing the pool in a `thread_local`
static during a Program's creation and destruction; the pool is freed
when the program is destroyed. One important consequence of this
strategy is that a program must free every node that it allocated during
its creation, or else the node will be leaked. In debug, leaking a node
will be detected and causes a DEBUGFAIL. In release, the pool will be
freed despite having a live node in it, and if that node is later freed,
that pointer will be passed to the system `free` (which is likely to
cause a crash).
In this CL, iOS does not support pooling, since support for
`thread_local` was only added on iOS 9. This is fixed in the followup
CL, http://review.skia.org/328837, which uses pthread keys on iOS.
Nanobench shows ~15% improvement:
(last week) http://screen/5CNBhTaZApcDA8h
(today) http://screen/8ti5Rymvf6LUs8i
Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Prepare this class to hold either a proxyView or a vertex blob
Bug: 1108408
Change-Id: Ib6abb4da64ccc70b9e2af2546e1b071396dd42cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328836
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
PLS and discard-only shaders are the only time this has an impact,
and it doesn't seem like a problem to have the declaration?
Removes one use of variable reference counts, which are going to be
refactored.
Change-Id: Idb8d06087eed56070252ee02dcf907bf0d24c5a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328796
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Not yet used as of this CL.
Change-Id: Ic82ab5e2e2ca17fb11c16e22cfa6b7ad5ff74c77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328657
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This is conceptually very similar to http://review.skia.org/328384, but
the inliner doesn't use `clone()` when it clones a node.
Change-Id: I7456b63687ce2f93a7980fb101dfc97e143a378f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328817
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
After an IRNode is cloned, callers expect to be able to safely mutate
its SymbolTable, so it can't be left with a built-in one.
Change-Id: If658fd11ad580da552f9d689edeeed4c842b38c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328384
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Change-Id: I28b01a83960b6f7c8e715a817dc75a2408465a26
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328658
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This new method receives its arguments in the same order as the
underlying C system call. This CL should not change behavior.
Change-Id: I6fd1e497b19d38d1133b1b8187146b98131093a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328624
Commit-Queue: Adam Barth <abarth@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Adam Barth <abarth@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Seems harmless to fall back to other SetupCrashHandler() options.
Change-Id: I2e7ce5dd72f391af88a57f4bd29831122fe784b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327893
Reviewed-by: Peter Foley <pefoley@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This functionality will also be needed in TriangulatingPathOp::onPrePrepareDraws
Bug: 1108408
Change-Id: I0bf3f3c14820b946f4c4bc738c55e7a5eb2e7ced
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328556
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This has a slight ripple effect into Enum, as it was using the builtin
status as an indicator that the enum was shared with C++ code. This now
has a dedicated bool flag.
Change-Id: Id03efa902546775666acd031e6d57123e02b6c6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328381
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This is everything except for literally removing the class.
Change-Id: I2f16caf865d1bcf9c0f267aed73313c0676a73bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327222
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Our Metal codegen assumes that out params are pointers, but Metal's
built-in frexp actually takes a reference for the exponent, not a
pointer. We now add in a helper function to translate.
Change-Id: I24686347d07151dd99a1ff1c43aff2b35c3181e5
Bug: skia:10762
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328387
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This loads in the known digests from Gold, starts the test
harness (which runs the GMs using puppeteer) and then uses
goldctl to upload the results to Gold when finished.
This will fail (and should not be landed) until
https://skia-review.googlesource.com/c/buildbot/+/328156
makes it into goldctl and the cipd build.
Bug: skia:10812
Change-Id: I89e5cf188d8f2adeba4ff676525d9bfbdcb46d5a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328380
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Change-Id: Iff707ae968b84609acde89ba94dec7a5d53c7525
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328576
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This should fix the macOS fuzzer build.
Bug: chromium:1139725
Change-Id: I14090da4ee7d9d0a6e515b05c23c0a1e50ca4e5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328385
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
For posterity, here's my initial, wrong thinking:
If we squint at "return foo" and read it as "result = foo; goto
end_of_program", and then remember we can always skip forward jumps (and
where's further forward than end of program?), early returns turn out to
work just like a store.
The reason this is wrong is that by the time we reach a final return,
the entire mask stack has been popped back down to its original default
ffffffff (active) state. But that return shouldn't override any prior
returns. So that scheme isn't quite right.
Instead we accumulate the result by disabling updates to lanes that have
already returned. By the time we're done, all lanes should have hit
_some_ active return, now asserted.
Bug: skia:10852
Change-Id: I27b05f04a60ff4a5f2fe5f59bf398c3f7224a41b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327457
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
We will need this functionality in TriangulatingPathOp::onPrePrepareDraws as well as at the
current locations
Bug: 1108408
Change-Id: I2a65f07f47a549531d84dbf2afd82ad9d9b35225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328536
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>