Bug: oss-fuzz:19994
Change-Id: I16c434509a83f2dcd19b2fe7650218f28bfaa3cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286617
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Needed to test a Preview version of MSVC and adding it to the list here
makes it a bit easier and the list more complete.
Change-Id: I419636722303816f0cd961408229fcef0773e8e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286496
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This reverts commit af312c9d40.
Reason for revert: improved performance, updated empty point cap behavior
to make chrome happy.
Because of the performance regression in the original CL, this is a bit
more to it than just updating cap behavior. Summary of changes for perf:
1. In asPath(), only call reset() if the type isn't a path or arc.
Otherwise it was just a wasted realloc of an empty path ref.
2. Rewrote the GrShape::simplify() to not progress through every shape
type in order, it just jumps to the appropriate type.
3. Have simplify() return whether or not the shape started out closed,
so we don't have to call GrShape::closed(), which is costly when the
shape is a path.
4. Expose the GrShape's type enum so GrStyledShape's key writing can use
switches instead of a giant block of ifs (where path happened to be
last)
The regressions showed up most heavily on desk_mapsvg and desk_chalkboard
SKPs on the Android skpbench marks. On my system, I was able to
reproduce a similar %-regression from ToT and the original CL on the
chalkboard (but not mapsvg).
Master ranged between 5.1 and 5.3ms, original CL ranged from 5.6-5.8
and after the changes listed above, I got it down to 5.3-5.5. It's not
ideal but I haven't been able to figure out anything more substantial
that it could be. At this point it may just be code layout and/or the
fact that it's now split into two types.
Original change's description:
> Revert "Refactor geometry union capabilities out of GrStyledShape"
>
> This reverts commit 2becdde074.
>
> Reason for revert: likely breaking cc unit test due to empty shape cap change.
>
> Original change's description:
> > Refactor geometry union capabilities out of GrStyledShape
> >
> > The geometry union part of GrStyledShape is now held in GrShape. For the
> > most part, GrShape is entirely style agnostic and focuses on storing
> > the various types of geometry, and destructing them gracefully. It also
> > provides a public API that unifies functionality across all shape types,
> > such as contains() and bounds().
> >
> > GrStyledShape now just owns a GrShape and a GrStyle, and handles the
> > additional simplification logic that relies on knowing the effects of
> > the style on the draw. This is where GrShape makes some allowances for
> > style. Its simplify() function accepts flags that enable/disable various
> > simplification optimizations. Currently these are designed around
> > what is needed to respect path effects and stroking behaviors in
> > GrStyledShape. The main other user of GrShape (the new clip stack) will
> > always provide all flags since it treats every shape as if it were
> > simply filled.
> >
> > Several other related refactorings were taken at the same time:
> > 1. The implementations for asNestedRects, asRRect, etc. were moved out
> > of the header and into the cpp file for GrStyledShape.
> > 2. GrRenderTargetContext relies on GrStyledShape for its stroke rect
> > fallbacks.
> > 3. GrShape can hold points, lines, and rects explicitly. This let me
> > simplify the stroke reasoning.
> >
> > Change-Id: I9fe75613fee51c30b4049b2b5a422daf80a1a86e
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284803
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Chris Dalton <csmartdalton@google.com>
>
> TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
>
> Change-Id: I2af5782e072e0ccb4a87f903bb88cbe335b9613f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286039
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: I8c614573582084f2e9ee0d73f93812e0a7c13983
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286396
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: I3cc189a77ce5001a828cdc4e73ea9c80c91554b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286438
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
In onCreateBackendTexture(), a new CommandEncoder was being created to
copy from the staging buffer to the result texture. Following the
staging manager rewrite, this copy encoder was being submitted before
the staging buffer was flushed, causing texture uploads to fail.
Use fCopyEncoder to ensure the staging buffer is unmapped before the
commands are run.
Bug: chromium:1071073
Change-Id: I3e8a77f3356671411f01dbb8017a7997e7c9349b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286394
Commit-Queue: Sean Gilhuly <sgilhuly@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Adds a zero-copy "RangeIter" class and rewrites the guts of
SkPath::RawIter to use RangeIter instead. Adds functionality to
SkPathPriv to enable iteration with a standard range-for loop:
for (auto [verb, pts, weights] : SkPathPriv::Iterate(skPath)) {
...
}
Once the usage cases of RawIter are updated, this iterator will be moved
to SkPathPriv.
Using this instead of the copy-heavy SkPath::Iter nearly doubles
performance on GrTessellatePathOp::prepareOuterCubics. The resulting
code is also more neat and keeps the iteration variables
(verb, pts, weights) scoped strictly inside the for-loop.
Change-Id: I64b929d7015a349dd2c64744dc48132a286778b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285751
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
- add atan, fract, dividef, subtractf
Also wants mix(), but I'm still learning how to handle 2 args
functions (e.g. how to support atan(y,x) as well)
Change-Id: Ib9f233cd1c4266110cfea68a7d444f834f875f1f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286276
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This reverts commit 1d256d66ec.
Reason for revert: Build-Debian10-Clang-arm64-Debug-Android_ASAN can't find <cxxabi.h>.
Original change's description:
> retry absl
>
> This time around, cut the absl deps down to just what's
> needed to compile, link, and run AbseilTest.cpp.
>
> Add basic absl::btree_map test.
>
> Bug: skia:10165
> Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-arm-Debug-Chromebook_GLES;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All-TSAN
> Change-Id: I53d632a04cba8dadd484b2c4d0ceefb314676486
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286070
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,johnstiles@google.com
Change-Id: I2465ed155f7311c6ca35259ea1bf1b610020a66d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10165
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-arm-Debug-Chromebook_GLES;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All-TSAN
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286477
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This time around, cut the absl deps down to just what's
needed to compile, link, and run AbseilTest.cpp.
Add basic absl::btree_map test.
Bug: skia:10165
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-arm-Debug-Chromebook_GLES;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All-TSAN
Change-Id: I53d632a04cba8dadd484b2c4d0ceefb314676486
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286070
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
- Lots of skstd::foo is now std::foo since C++14.
- Get rid of SK_WHEN(cond,T); std::enable_if_t<cond,T> is pithy enough.
- Move SkBitmaskEnum.h contents into sknonstd.
Change-Id: Ie5dc459405b1ff55e5b3ac57e70df7edd7cf38c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286315
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: Ic6da9f043a6657added5f9a3d1fed919043db9e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286436
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
PS 6 trying StartStep/EndStep/FailStep()
PS 7 better usage?
PS 8 goes back to td.Fatal* for top-level failures
Failures seem to be working ok as of PS 8,
but I am puzzled why PS 7 wasn't correct... much prefer it.
Also set max_attempts to 1... this driver will handle flakiness itself.
Change-Id: I7de6809920bfaf1d878d654c9cf5b7861a64d23f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286118
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Allows for uniforms to be automatically populated with
marked canvas matrices:
SkSL:
layout (marker=localToWorld) uniform float4x4 localToWorldMatrix;
C++:
canvas->concat(...);
canvas->markCTM("localToWorld");
canvas->concat(...);
canvas->drawFoo(...);
Any runtime effects created with that SkSL will have their
localToWorldMatrix uniform filled in with the CTM, ignoring
any transformation that happened before/above the markCTM
call. The marker needs to be a sequence of alphanumeric or
underscore characters, and match the string used in markCTM.
The marker can also be of the form "normals(<string>)", in
which case the uniform will be filled in with the transpose
of the inverse of the upper-left 3x3 portion of the CTM
identified by <string>. This is helpful for transforming
normal vectors, as is often done in lighting.
Change-Id: I7d1ca4dc3f8fabbe91b9bd2c8632013f26d2321a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285376
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Roll third_party/externals/shaderc/ ced9c72d0..41f271e61 (1 commit)
ced9c72d00..41f271e613
$ git log ced9c72d0..41f271e61 --date=short --no-merges --format='%ad %ae %s'
2020-04-28 rharrison Rolling 5 dependencies, updating expectations, and fixing build issues (#1051)
Roll third_party/externals/spirv-cross/ 6637610b1..7e0295abf (24 commits)
6637610b16..7e0295abf8
$ git log 6637610b1..7e0295abf --date=short --no-merges --format='%ad %ae %s'
2020-04-28 rharrison Update SPIR-V Headers to 1.5 rev 3
2020-04-27 post Work around odd deadlock in test_shaders.py in --parallel mode.
2020-04-27 post Implement OpAtomicLoad/OpAtomicStore.
2020-04-27 post MSL: Fix case where subpassInput is passed to leaf functions.
2020-04-27 alexis.payen Fixed recursion in combined_decoration_for_member Members in nested structs were not properly iterated on, and as a result, flags like row major for matrices could be not propagated properly.
2020-04-23 dsinclair Roll GLSLang, SPIRV-Tools and SPIRV-Headers.
2020-04-21 post GLSL: Support f16x2 <-> f32 bitcast.
2020-04-21 post Be a bit more careful what nonuniform state is propagated.
2020-04-21 post Handle RayQueryKHR type.
2020-04-21 post Update SPIR-V headers.
2020-04-18 devsh.graphicsprogramming Fix issue #1327
2020-04-21 post HLSL: Add parens in unpackUint2x32 for clarity.
2020-04-21 post HLSL: Only allow 64-bit integers in SM 6.0.
2020-04-21 post Ensure unpack/pack2x32 tests are compatible with test suite.
2020-04-17 bingkan GLSL/HLSL: Support packUint2x32 and unpackUint2x32
2020-04-21 post MSL: Deal correctly with initializers on Private variables.
2020-04-20 post MSL: Support edge case with DX layout in scalar block layout.
2020-04-20 post MSL: Allow removing clip distance user varyings.
2020-04-18 godlike Reflection: Add specialization constant name
2020-04-15 cdavis MSL: Force disabled fragment builtins to have the right name.
2020-04-15 cdavis MSL: Only disable output variables in fragment shaders.
2020-04-10 cdavis MSL: Add options to control emission of fragment outputs.
2020-04-09 h.baensch.92 Improve compatibility with clang-cl
2020-04-07 post MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
Roll third_party/externals/spirv-headers/ f8bf11a02..c0df742ec (6 commits)
f8bf11a025..c0df742ec0
$ git log f8bf11a02..c0df742ec --date=short --no-merges --format='%ad %ae %s'
2020-04-24 cepheus Update headers to SPIR-V 1.5 Revision 3
2020-04-24 cepheus Add a bunch of missing "version" : "None" for ray tracing.
2020-04-24 cepheus Rebuild the headers with the fixed grammar file.
2020-04-24 cepheus Add missing "version" : "None" for ShaderCallKHR
2020-04-24 cepheus Grammar: The ray-tracing updates were not done in numerical ordering.
2020-04-13 cepheus Discuss generator magic number reservations.
Created with:
roll-dep third_party/externals/shaderc third_party/externals/spirv-cross third_party/externals/spirv-headers
Change-Id: Ie435f5bc9ef0ca41dde5f0a17c262028c85c5dea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286337
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Change-Id: Id8065e4ff7299c12b1469468dab278b771c0382d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286277
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
718ae5088c..9574174380
git log 718ae5088c41..957417438089 --date=short --first-parent --format='%ad %ae %s'
2020-04-29 sugoi@google.com Validation fix for draw with primcount <= 0
2020-04-29 jmadill@chromium.org GL loaders: Add 'ANGLE' symbol prefix.
2020-04-29 ancheng.qiao@arm.com Add gles1 covegl test compile
2020-04-29 b.schade@samsung.com Vulkan: Use DynamicBuffer for BufferVk
2020-04-29 jmadill@chromium.org Capture/Replay: Generate code integration.
2020-04-29 tobine@google.com Vulkan: Add debug label commands to SecondaryCommandBuffer
2020-04-29 xinghua.cao@intel.com Translate uniform block with large matrix array to StructuredBuffer
2020-04-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 2717702e9a1f..941293d512fe (4 commits)
2020-04-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 72b2a3b275e5..f0f3d8b75af9 (7 commits)
2020-04-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 30eb0a301c33..c0f34c020d9d (1 commits)
2020-04-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src 3336e65e8801..f39209eb4402 (1 commits)
2020-04-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 23d68608b007..49ca250b44c6 (3 commits)
Created with:
gclient setdep -r third_party/externals/angle2@957417438089
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 ethannicholas@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/+/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: ethannicholas@google.com
Change-Id: Ibfe049e884552428f3591e5b7a7078f31a39bade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286299
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
In GrAtlasTextOp::init, I just had the deviceRect computed correctly
based on needsTransform, and it all seems to work. The bounds for large
RGB images were just wrong. This at least makes the interpretation of
fVertexBounds consistent. No diffs.
Change-Id: Icd1d26664280e2f7918e91a77293aab44e2d602d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285877
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
We can store the so that they are relative to (0, 0), instead of the
initial origin. This simplifies much of the math for calculating the
device bounds. And, it remove the need for the inverse matrix in
GrTextBlob.
As a note, it looks like GrAtlasTextOp::init() may be calculating the
wrong bounds because it doesn't seem to respect needsTransform()
correctly. I'll check this out in the next CL.
Change-Id: Ia053b8b11ef8bbae5cc9e7bc547b918401519027
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285839
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: oss-fuzz:20522
Change-Id: Ib08a988b83bac922e8076c62f568e329ef7866bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286136
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This reverts commit cfdc07aa0e.
Reason for revert: nope, flutter windows bots don't have it. we got caught.
Original change's description:
> replace SkSharedMutex
>
> I am debugging an issue with SkSharedMutex and noticed
> how sparsely it is used. That got me curious to see if
> we can replace it with a std::shared_mutex (from C++17).
>
> Bug: skia:10177
> Change-Id: I1ce4d2a5897af198d6ae5fb850548ff917a58f50
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285691
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,bungeman@google.com,herb@google.com
Change-Id: Iab4e55d749e386233ff0e2ba2c1cd10d5e6f1615
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10177
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286124
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I4f507e46fa086d8a8c179dbb59e15e554b57a02f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286117
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
GIF decoding is not needed, saves another 5.5k on the brotli compressed binary
Change-Id: I4bc5f3e7bed83c190a73cb19dfb59f89fcc76cd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285826
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
MakeDistanceField should just make fNeedsGlyphTransform to
true making invariant maintenance closer to MakeBitmap.
Change-Id: I6e6652a45e39aa4d9ab4ceb16e8048ccb3655900
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286096
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:10188
Change-Id: I29a8efe448532fecc2f7424622cd33afeee3287b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285876
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This lets us get rid of VECTOR_UNARY_FN_VEC.
I don't know exactly what was wrong with VECTOR_UNARY_FN_VEC,
but `color.rgb = color.rgb + a*(sin(6.28*color.rgb)*0.159)` looks
ok to me now when run through the interpreter.
Change-Id: I700398cd55eca1b8e1b3b46858415ecae5585a32
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286065
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
enough to try out
color.rgb = color.rgb + a*(sin(6.28*color.rgb)*0.159);
Change-Id: I45dbabb7f2a58aeebac4a651ed45b28ea90f9dd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286059
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
I am debugging an issue with SkSharedMutex and noticed
how sparsely it is used. That got me curious to see if
we can replace it with a std::shared_mutex (from C++17).
Bug: skia:10177
Change-Id: I1ce4d2a5897af198d6ae5fb850548ff917a58f50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285691
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
I see roughly 10ms -> 5ms here in viewer when turning on skvm.
Change-Id: Ie8864ebc700ca914909d241a696e50295a0db366
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286028
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 2becdde074.
Reason for revert: likely breaking cc unit test due to empty shape cap change.
Original change's description:
> Refactor geometry union capabilities out of GrStyledShape
>
> The geometry union part of GrStyledShape is now held in GrShape. For the
> most part, GrShape is entirely style agnostic and focuses on storing
> the various types of geometry, and destructing them gracefully. It also
> provides a public API that unifies functionality across all shape types,
> such as contains() and bounds().
>
> GrStyledShape now just owns a GrShape and a GrStyle, and handles the
> additional simplification logic that relies on knowing the effects of
> the style on the draw. This is where GrShape makes some allowances for
> style. Its simplify() function accepts flags that enable/disable various
> simplification optimizations. Currently these are designed around
> what is needed to respect path effects and stroking behaviors in
> GrStyledShape. The main other user of GrShape (the new clip stack) will
> always provide all flags since it treats every shape as if it were
> simply filled.
>
> Several other related refactorings were taken at the same time:
> 1. The implementations for asNestedRects, asRRect, etc. were moved out
> of the header and into the cpp file for GrStyledShape.
> 2. GrRenderTargetContext relies on GrStyledShape for its stroke rect
> fallbacks.
> 3. GrShape can hold points, lines, and rects explicitly. This let me
> simplify the stroke reasoning.
>
> Change-Id: I9fe75613fee51c30b4049b2b5a422daf80a1a86e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284803
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: I2af5782e072e0ccb4a87f903bb88cbe335b9613f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286039
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This reverts commit 9d4fa4f7bd.
Reason for revert: prior CL likely breaking chrome cc test
Original change's description:
> Fix round join comparison in if
>
> This fixes adding round caps to empty rectangles with bevel joins.
> Introduced in https://skia-review.googlesource.com/c/skia/+/284803, I
> either forgot to finish my thought or inadvertently deleted it while
> editing.
>
> TBR: ethannicholas@google.com, bsalomon@google.com
>
> Change-Id: I72e6383260dae066c611454db9c7fa8c217422e4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285957
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
TBR=bsalomon@google.com,ethannicholas@google.com,michaelludwig@google.com
Change-Id: I02e21e5ec9c14312dc9f36575dc0edccffc33e1d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286038
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: Ibc0a47258009a24bf7d9b378c9e21729b13d0216
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286027
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Implement non-linear contrast using a cubic polynomial approximation,
as a SkRuntimeEffect.
The effect range is significantly more constrained than the legacy
version: https://www.desmos.com/calculator/ehem0vy3ft
Change-Id: I86bdbb9cc0d30065780f87705d2d4d39385609cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285840
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This reverts commit 44fc53b7f5.
Reason for revert: Test to see if this is causing the linux-rel MediaColorTest.Yuv420pHighBitDepth failure on the Chrome roll
Original change's description:
> Add BGR_10A2 support to Ganesh
>
> Bug: 1068416
> Change-Id: I40aa84b7f3f770ba550b7bea44c10173ae9a7ddf
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285356
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,robertphillips@google.com
Change-Id: I0ad0197ebd8de9b8761f84ba808c9f90891b9238
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1068416
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285958
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This JIT mode helps debugging and profiling by shelling out to an
external assembler then loading its results back in via dlopen(),
so you can see coherent function profiles and not just every
instruction as its own line in the profile.
It's very slow, so viewer will stutter for a second or two before
drawing goes smooth again. We can paper over this by using the
interpreter while these compiles are in progress, but I haven't hooked
that up yet.
Change-Id: I23e74d65a1a3a6d89649733296db8217be306438
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285864
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
The old cache size was arbitrary, and the new one is also
somewhat arbitrary too, a nice round number and enough to
draw this without the overhead of JIT churn:
viewer -f resources/skottie/skottie-brightnesscontrast-legacy.json
Change-Id: Ia84cea04535b4b88a58295186857cfe815173272
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285863
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
This reverts commit 36a3e014e1.
Change-Id: I2bb432ec423a85478adddc6845d5d7aa59d4055b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284918
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>