This fixes the asan failures on the bots
Change-Id: I1baaf5596714262f7e3ddf368bb38b91b1ffcfcd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309054
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
C++17 introduced `inline constexpr` as a mechanism for declaring strings
in headers safely without macros. See https://abseil.io/tips/168
Change-Id: I68071fbadebf32753ca4a0586b96e32634083f6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309047
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This refactoring was requested during an earlier code review.
Change-Id: I93184e2bc936b3c8c69f84e475be2c234845ee81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309120
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Opted the Galaxy S20 out of the test to allow Tryjobs to pass.
Change-Id: I8d4637a23f36edb012c96b7059b184c231c0436d
Bug: skia:10384, skia:10595
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309119
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Previously, MakeChildFP avoided infinite recursion by rejecting any FP
that took inputs. MakeChildFP now generates random inputs up to a
user-supplied tree depth.
The ProcessorOptimizationValidationTest test has been updated to
test up to a tree depth of 3. The ProcessorCloneTest has been left at
a tree depth of 1 due to a bug that only appears on Galaxy S20/Mali G77.
The Mali bug doesn't appear to be related to FP cloning, but probably
deserves further analysis. (It appears that on this device, these
processors hooked together in sequence render a tiny bit differently
each time: DitherEffect -> RectBlurEffect -> ImprovedPerlinNoise. By
visual inspection it looks like the dither varies on each draw.)
Change-Id: Ib8f619eb7a8a9c9254080303504c20065ff35453
Bug: skia:10384, skia:10595
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308556
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
There are no intentional behavioral changes in this CL. It should
purely be cut, paste, re-shuffle & get re-compiling.
Bug: 1108408
Change-Id: Ic8457d0af76861f2ea881177f2b2c0fe0bf85146
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309040
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: 1108408
Change-Id: Iad0b634a8a0d6dac64e3571a32e755d124401f66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309077
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Previously, this test would synthesize a random FP, call clone(), render
both, and the compare the results and report differences.
Now, if a difference is discovered, this test will re-synthesize the
originally-created random FP from scratch without using clone().
Instead, we call TestCreate again using the same random seed.
Then we can render and compare that output against the original as well.
This will allow to better differentiate failures that were actually
caused by clone(), versus failures caused by other types of
inconsistency.
If the regenerated version still mismatches, there are a variety of
potential explanations:
- the FP's TestCreate() does not always generate the same FP from a
given seed
- the FP's Make() does not always generate the same FP when given the
same inputs
- the FP itself generates inconsistent pixels (shader UB?)
- the driver has a bug
Change-Id: I71701c0f3d33a08f6ee926313782620487d336bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309076
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This is essnetially the middle set of work to fully optimize dst reads
in vulkan. On the upper end we still need to get the knowledge of dst
reads from the GrProgramInfo. And on the lower side we need to actually
create the render pass and correctly use it vulkan. This change is
essentially adding the plumbing that will sit between those two parts.
Bug: skia:10409
Change-Id: I58ebdc6574a9bdeddc3658f56b0a7b43f28473e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308765
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
The style guide only mentioned the `k` prefix for enums, but it is
also used throughout Skia for constant values.
Also removed guidance about using anonymous enums to declare an
integral constant. static constexprs should be preferred here.
Change-Id: I2f7d4d375cc914d4efb9fe60fbd90ddaaf8c1b69
No-Try: true
Docs-Preview: https://skia.org/?cl=308919
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308919
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
After this CL the GrSmallPathAtlasMgr is almost all ready to be moved
to be a flush-time entity.
This is pulled out of the omnibus CL:
https://skia-review.googlesource.com/c/skia/+/307776 (Split the small path renderer into record-time and flush-time pieces)
Change-Id: Ie6a2196a640ce9be7a1e1c6d7bbdfd41413c42d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308977
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
The current limit of 78 is quite conservative, and we see no diffs via
gold when using a limit of 24. This also fixes a timeout uncovered by a
fuzzer.
Bug: oss-fuzz:23989
Change-Id: I0d7c33afca7e7e852bedfea52b104d6c7d8fcfd5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301938
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Explanation: The sksl standalone compiler is used to convert the raw
(text) SkSL pre-includes into a "dehydrated" binary format. It also
(previously) depended on those files, as they were #included and used,
unless a special #define was changed. This created a dependency cycle
that we hid from GN (by lying about the outputs of the dehydrate step).
As a result, builds would never reach steady-state, because the compiler
would be rebuilt (due to the newer dehydrated files), and then the
dehydrated files would be rebuilt (due to the newer compiler).
This CL changes the logic so that the standalone compiler always uses
the textual pre-includes, and no longer depends on the dehydrated binary
files. Thus, to make any kind of change to the dehydrated files (whether
due to pre-include changes, or the encoding format itself), you just
need skia_compile_processors enabled. The dependencies are now honestly
communicated to GN, and we reach steady state after one build.
The NOTE above is because GN/ninja cache the dependencies of each
target, and will still think that the SkSLCompiler.obj linked into the
standalone compiler depends on the dehydrated files, at least until one
successful build, when it will realize that's no longer true.
Reland notes:
The bots originally rejected this CL, because SkSLCompiler was
hard-coded to load the text files from a relative path that assumed the
executable was in "<skia_checkout>/out/<some_dir>". That's not true for
bots, and it was fragile, even for users. Now, we use GN to directly
generate sksl_fp.sksl, and copy all of the other pre-includes to the
root out dir (working directory when running skslc). This means we
no longer need to generate the sksl_fp.sksl file into the src tree, and
the compiler can more safely assume that the files will be in the
working directory.
Bug: skia:10571
Change-Id: Id7837a9aba7ee0c3f7fa82eb84f7761e24b9c705
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308896
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
A lot of this careful load-this-now logic is moot given the data flow
and scheduling that skvm has been doing for the last few months. We can
write all this in simple unconditional canonical order now and it'll be
reordered, dead code eliminated, strength reduced, etc. as possible.
One really big simplification is that we can always notionally load and
apply coverage and let skvm handle whether or not it is really needed:
when coverage is known to be splat(1.0f), the pre-blend multiplies drop
away, and now that lerp() is a little smarter, the post-blend lerp()s
drop away too.
Change-Id: I0534b484bf927ef315335c991704ed52bb6010d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308917
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This lets us not worry about the cost of lerp() in what we know
should be cheap edge cases, t=0 and t=1.
These cases can't be handled by skvm's conservative peepholes:
- (x-y)*0 isn't always 0 (if x-y is inf/NaN);
- (x-y)*1+y is peepholed to (x-y)+y,
but (x-y)+y is often not x, even for finite values.
Change-Id: Ia461d664b030c84b812857d346e0ed684eef8293
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308916
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Bug: skia:10539
Change-Id: I57e4ec9a26a662b9e5961dc5f39fbb8414f93de0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308996
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Correct prefixes are important for readability. The `g` prefix briefly
led me to believe that our random number generation had static state.
Change-Id: I9187f1da1283e1a42f250ba0c3502807d7b711a7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308918
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
This CL consolidates access to the small path renderer's atlas,
shapeCache and shapeList inside the new GrSmallPathAtlasMgr class.
It is pulled out of the omnibus CL:
https://skia-review.googlesource.com/c/skia/+/307776 (Split the small path renderer into record-time and flush-time pieces)
Change-Id: I01717948f053ee15efd27975d8b15fad75283da6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308680
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
3831ac2043..48ba75ac68
2020-08-08 timvp@google.com Remove TextureCommand
2020-08-08 timvp@google.com Pass the Command when sync'ing dirty objects
2020-08-07 cnorthrop@google.com Capture/Replay: Reduce SetupContext size further
2020-08-07 cnorthrop@google.com Samples: Fix Capture/Replay release build
2020-08-07 cnorthrop@google.com Capture/Replay: Dedup shaders to reduce capture size
2020-08-07 cnorthrop@google.com Tests: Update NBA2K20 trace
2020-08-07 cnorthrop@google.com Tests: Update Angry Birds 2 trace
2020-08-07 syoussefi@chromium.org Vulkan: Don't expose MSRTT on Mac/SwiftShader
2020-08-07 syoussefi@chromium.org Vulkan: Fix render-to-texture simultaneously bound to two FBOs
2020-08-07 courtneygo@google.com Reference count context to fix ASAN issues
2020-08-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 5fd92a7e0c84 to 7b2dd11dda7a (4 revisions)
2020-08-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from c967a2ddf18b to 9ba1bc28d878 (20 revisions)
2020-08-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from be7c55a2a8ce to 59b4828f293e (7 revisions)
2020-08-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from ef36eedb0d09 to aba3ab0ce72f (2 revisions)
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 fmalita@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
Bug: chromium:1112986
Tbr: fmalita@google.com
Test: Test: CQTest: Test: Compile and link NBA2K20 trace for AndroidTest: Test: Release build of Capture/Replay sampleTest: Test: angle_perftests --gtest_filter="*Trace*"Test: Test: angle_perftests --gtest_filter="TracePerfTest.Run/*nba*"
Change-Id: Ic73fd5eb035edb398a871423f195eedac719a68e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308940
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
https://clang.llvm.org/extra/clang-tidy/checks/performance-unnecessary-copy-initialization.html
Finds local variable declarations that are initialized using the copy
constructor of a non-trivially-copyable type but it would suffice to
obtain a const reference.
The check is only applied if it is safe to replace the copy by a const
reference. This is the case when the variable is const qualified or when
it is only used as a const, i.e. only const methods or operators are
invoked on it, or it is used as const reference or value argument in
constructors or function calls.
Change-Id: I1261410deccd8ea64e85edec53fbd5360940e587
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308759
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This reverts commit a1ed0dc9f8.
Reason for revert: Bots will need some guidance to ingest this CL
Original change's description:
> Untangle dependency cycle in sksl dehydration
>
> NOTE: If you have any out directories with skia_compile_processors
> enabled, you will likely need to run `gn clean <dir>`
>
> Explanation: The sksl standalone compiler is used to convert the raw
> (text) SkSL pre-includes into a "dehydrated" binary format. It also
> (previously) depended on those files, as they were #included and used,
> unless a special #define was changed. This created a dependency cycle
> that we hid from GN (by lying about the outputs of the dehydrate step).
> As a result, builds would never reach steady-state, because the compiler
> would be rebuilt (due to the newer dehydrated files), and then the
> dehydrated files would be rebuilt (due to the newer compiler).
>
> This CL changes the logic so that the standalone compiler always uses
> the textual pre-includes, and no longer depends on the dehydrated binary
> files. Thus, to make any kind of change to the dehydrated files (whether
> due to pre-include changes, or the encoding format itself), you just
> need skia_compile_processors enabled. The dependencies are now honestly
> communicated to GN, and we reach steady state after one build.
>
> The NOTE above is because GN/ninja cache the dependencies of each
> target, and will still think that the SkSLCompiler.obj linked into the
> standalone compiler depends on the dehydrated files, at least until one
> successful build, when it will realize that's no longer true.
>
> Bug: skia:10571
> Change-Id: I246360cec387b17d017805ed42ab6424329e32e7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308760
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=mtklein@google.com,brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: Id0f3f6e18474f7531b8531cfa481031c26b88d51
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10571
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308802
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Parts of CoreText use 'structured' CFDictionaries to pass information.
Because of the lack of explicit structure and very dynamic types, this
requires that every entry be checked for existence and type before use.
If the existence or type does not match expectations the code generally
returns a failure or default value.
In this case kCTFontVariationAxisHiddenKey is documented to be a
CFBooleanRef, but on macOS 11 Big Sur Beta 4 it can be a CFNumberRef
instead. Handle this case when it happens.
Bug: chromium:1113444
Change-Id: Id1ae31104e674d65eaa67166d2442ab4f63989cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308764
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Follow-on CLs will push higher up in SkDraw, so that everywhere today
we have to cons-up (with the associated mallocs) a temp SkPath we can
replace it with a stack-based SPath...
- drawRect
- drawOval
- drawRRect
- drawLine(s)
(similar to how this CL already handled quads and triangles)
Bug: skia:10566
Change-Id: I882b4f4c60e80235ca83c86c926e905b269a7afd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307784
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
The existing code doesn't compare `octaves` at all, and the code for
checking `z` compares it against itself.
Change-Id: I987b02e17cb66d195a299110e3429c114637123f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308766
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>
NOTE: If you have any out directories with skia_compile_processors
enabled, you will likely need to run `gn clean <dir>`
Explanation: The sksl standalone compiler is used to convert the raw
(text) SkSL pre-includes into a "dehydrated" binary format. It also
(previously) depended on those files, as they were #included and used,
unless a special #define was changed. This created a dependency cycle
that we hid from GN (by lying about the outputs of the dehydrate step).
As a result, builds would never reach steady-state, because the compiler
would be rebuilt (due to the newer dehydrated files), and then the
dehydrated files would be rebuilt (due to the newer compiler).
This CL changes the logic so that the standalone compiler always uses
the textual pre-includes, and no longer depends on the dehydrated binary
files. Thus, to make any kind of change to the dehydrated files (whether
due to pre-include changes, or the encoding format itself), you just
need skia_compile_processors enabled. The dependencies are now honestly
communicated to GN, and we reach steady state after one build.
The NOTE above is because GN/ninja cache the dependencies of each
target, and will still think that the SkSLCompiler.obj linked into the
standalone compiler depends on the dehydrated files, at least until one
successful build, when it will realize that's no longer true.
Bug: skia:10571
Change-Id: I246360cec387b17d017805ed42ab6424329e32e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308760
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The main thrust of this CL is to centralize creation and deletion
of the small path renderer's cache entries within the nascent
GrSmallPathAtlasMgr class.
It is pulled out of the omnibus CL:
https://skia-review.googlesource.com/c/skia/+/307776 (Split the small path renderer into record-time and flush-time pieces)
Change-Id: I13ccaca428e8c019540624dbcd0703540418f9a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308691
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
SkPictureData::getPaint() is now SkPictureData::optionalPaint(),
and it's got a sibling requiredPaint() that returns a const SkPaint&.
This means we don't have to remember to null check the paints,
and we can signal a bad .skp when a paint should be present but is
missing. No way to know that for optional paints, of course; the only
part of that function I changed is its name.
Moved these methods out of line. I never know how that interacts with
function local statics. They're complex enough to move out anyway.
PS3 implements requiredPaint() with optionalPaint(), I think clearer.
Change-Id: If8ef479262faa80be65eb98e2aef8b769cfa8aa6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308763
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Parts of CoreText use 'structured' CFDictionaries to pass information.
Because of the lack of explicit structure and very dynamic types, this
requires that every entry be checked for existence and type before use.
If the existence or type does not match expectations the code generally
returns a failure or default value. This changes the code to be more
verbose in debug builds, more explcitly stating the unexpected state.
We never expect any of these messages to ever be seen; the conditions
that are reported are almost asserts but when they happen the worst that
happens is that a font looks slightly different so for not these seem to
be slightly less than asserts.
Note that ctvariation_from_skfontdata isn't modified here since it is
legacy and will only be used in relation to older skps.
Bug: chromium:1113444
Change-Id: I99f531488d2c1eec70bb5e27304356866ed36682
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308513
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
SkArenaAlloc has three fields that are used only for reset. Make a
subclass called SkArenaAllocWithReset which has the three
fields, and has the reset functionality.
An example of a reset() that is used instead of using a better scope
is PathOpsAngleAfter in PathOpsAngleTest.cpp.
Change-Id: Ie1965d128dfb7df9e022f4d18460d3f75f33e1a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/307348
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
In this file all callers of getPaint() that require a non-null SkPaint
pointer must check it; SkPictureData::getPaint() returns nullptr in
ordinary operation to encode missing optional SkPaints.
Bug: oss-fuzz:24732
Change-Id: I8a36617955de640c015cf113404779b98ea5d78c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308657
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit b3231b1526.
Reason for revert: rationale for disabling the optimization doesn't hold water
Original change's description:
> Disable the coverage-as-alpha optimization flag for the Bicubic effect.
>
> As of http://review.skia.org/303026, the Bicubic effect no longer
> modulates by its input color.
>
> Change-Id: I57d0a9fe89271cae3f28b508184190319d863373
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305783
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com,johnstiles@google.com
Change-Id: I83cbe4e8f34ad573ab730223e5b411f6578bb25d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308756
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This reverts commit ad3db40d78.
Reason for revert: Chrome doesn't like static initializers.
Original change's description:
> Add inline threshold to SkSL::Program::Settings
>
> Keep the same default value, but add a (private) API to change it when
> compiling SkRuntimeEffect code.
>
> Use the new API to improve fuzzer coverage, by fuzzing with inlining
> disabled and (enthusiastically) enabled.
>
> Change-Id: I36424bac95144aeb727cfb949754fbe998d5d7de
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308181
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
TBR=kjlubick@google.com,brianosman@google.com,ethannicholas@google.com
Change-Id: Ic233203f3728a7285a1958c53567d915e56023af
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308757
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
https://clang.llvm.org/extra/clang-tidy/checks/readability-const-return-type.html
`const` on a non-pointer/reference return type typically doesn't add
value and can have negative side effects. (i.e., returning a
`const std::string` isn't meaningfully different from returning a
`std::string`, but can sometimes inhibit move-related optimizations.)
In Skia's case, the priv() functions are a notable exception where const
return types are intentional and valuable. These calls have been marked
with NOLINT to exclude them from the check.
This check does not affect pointer and reference returns, where
constness is important.
Change-Id: I86cab92332f164e5ab710b4127182eec99831d7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308564
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Discovered via ClangTidy `readability-static-accessed-through-instance`.
Change-Id: I646e3293853e65b5cc2419c8687c035aab4b669a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308659
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Like shaders, sampling a null child will return the input color (in
this case, the output of the skia shader stage). This gives us a path
to removing the implicit input color passed to main, which is the real
goal. Using this to create more interesting color filters is also
possible, although we need to add the versions of sample() that take a
color to really unlock the potential.
Change-Id: I6a7506055120756497d7583f14d6f928180825fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308515
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
We already expose frame-index-based seek methods, makes sense to also
allow querying the in/out points.
Change-Id: I3b805f6df3484c8bdc7cd6c81e54b5073710e222
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308598
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Keep the same default value, but add a (private) API to change it when
compiling SkRuntimeEffect code.
Use the new API to improve fuzzer coverage, by fuzzing with inlining
disabled and (enthusiastically) enabled.
Change-Id: I36424bac95144aeb727cfb949754fbe998d5d7de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308181
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
We've got a bespoke method just for this!
How convenient is that?
Bug: oss-fuzz:24723
Change-Id: Iec7ddad3bdf1b9eaf29aeb26699e1f2a41087491
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308563
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This reverts commit 943463f60e.
Reason for revert: Flutter
Original change's description:
> Reland "Switch GN defs on Mac and iOS to use frameworks, take 2."
>
> This is a reland of c5f8e7df81
>
> Original change's description:
> > Switch GN defs on Mac and iOS to use frameworks, take 2.
> >
> > GN will be removing support for frameworks in the libs variable, so
> > might as well get ahead of it.
> >
> > Change-Id: I990ffdb945c85a9868883d0cab1c2bdcdbdf545c
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308189
> > Reviewed-by: Mike Klein <mtklein@google.com>
> > Commit-Queue: Jim Van Verth <jvanverth@google.com>
>
> Change-Id: Ie93c4b6a5e82bd61738367c68c2a2bac7bdf23f1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308199
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
TBR=mtklein@google.com,jvanverth@google.com,herb@google.com,senorblanco@google.com
Change-Id: Iee06d5e787643643b0f2b206a7cfa2643de25f8b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308597
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
bedac4f06b..3831ac2043
2020-08-07 syoussefi@chromium.org Remove suppressions for passing tests
2020-08-07 geofflang@google.com Supress VVL error about multi-instance heaps.
2020-08-07 jmadill@chromium.org Vulkan: Rename CommandBuffer get method.
2020-08-07 jmadill@chromium.org Vulkan: Remove redundant vk prefixes in vk_helpers.
2020-08-07 syoussefi@chromium.org Fix an OOB access bug with RewriteRowMajorMatrices
2020-08-06 jmadill@chromium.org Vulkan: Add Image serial.
2020-08-06 jmadill@chromium.org Vulkan: Accumulate Buffer barriers.
2020-08-06 jmadill@chromium.org Vulkan: Add command buffer performance counter.
2020-08-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 4b40207be32d to b2be8f165978 (32 revisions)
2020-08-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from bfe4f378aee6 to ef36eedb0d09 (1 revision)
2020-08-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 8bc27a1cfbc1 to 5fd92a7e0c84 (5 revisions)
2020-08-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from a4505d37ffe7 to a1c21580f50b (1 revision)
2020-08-06 timvp@google.com Get storage buffers/images from ProgramExecutable
2020-08-06 syoussefi@chromium.org Vulkan: Fix ImageHelper's move constructor
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 herb@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
Bug: None
Tbr: herb@google.com
Test: Test: SimpleStateChangeTestES31.InvalidateThenStorageWriteThenBlendPpoTest: Test: VertexAttributeTestES31.UsePpoComputeShaderToUpdateVertexBuffer
Change-Id: I40cd3b9f52286aeb23abf31c007a688d5e785eec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308582
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>