Here is another Op w/ multiple GrMeshes drawn w/ a single programInfo (cf., AAConvexPathOp).
Bug: skia:9455
Change-Id: I3d1eec03d1d9d4fc8e117aa2960472027ea96105
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276220
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit a19ea58aa9.
Reason for revert: As expected perf slowdowns, but we have the data now
Original change's description:
> Experiment with no longer avoiding uploading same uniforms in vulkan.
>
> The plan is to land this and see what the perf bots report. Only local
> desktop a little less than half the time we skip the upload for not being
> dirty. But we're not sure if this is saving us much. Unless there is no
> regression at all, we will revert this.
>
> Bug: skia:10035
> Change-Id: I8a3a8862ccd10ba109b5ddc2f3473d30b3ceccaf
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276211
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,michaelludwig@google.com
Change-Id: Iea44b13c70cd075e93bb52b3a6773cc8b5df731a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10035
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276396
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
abcc536b62..c5b3cbdb45
git log abcc536b6207..c5b3cbdb4502 --date=short --first-parent --format='%ad %ae %s'
2020-03-10 cclao@google.com Vulkan: Use VK_FORMAT_D24_UNORM_S8_UINT for 24 bit depth if available
2020-03-10 tikuta@chromium.org use go swarming client in trigger.py
2020-03-10 rafael.cintron@microsoft.com Enable allowClearForRobustResourceInit for NVidia hardware
2020-03-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 6861ea4e10a1..343d4f6f1870 (3 commits)
2020-03-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 97484d689869..014968c3b6b3 (11 commits)
2020-03-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader b44162fdbb25..8be72df60462 (1 commits)
2020-03-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 4c027048d88b..dd3d91691f1e (3 commits)
Created with:
gclient setdep -r third_party/externals/angle2@c5b3cbdb4502
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 brianosman@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-Debian9-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: brianosman@google.com
Change-Id: Ia27e014e5665b7cc5bbc3d922a94bf677f974196
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276117
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This removes the need for overhead like NoClip and the second call to
hash_shader() by treating null clip shaders specially.
Change-Id: I409fb6eb890e1dbaf242ecf94188aa9c477f39f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276230
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This appears to work.
As a follow up, I want to try taking a little care handling a null and
opaque clip shaders explicitly, to cut down on the overhead in the
common case when it's null and we burn non-zero CPU determining NoClip
is a no-op.
Change-Id: Ie30c4995b3242a5b52935a90005e5af79c9eae7b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276227
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Got distracted when looking at SkCTMShader
and implemented this for SkVM instead.
Nothing tricky at all. Exactly like SkRP impl.
Added some commented out SkDebugf() to help me
find what impls are missing.
Change-Id: Ie11e1996c5d1b72f202cc1635cf13e4f2e1f14d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276234
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Bug: skia:9935
Change-Id: Ie13b9077c5db805020973e5cbab1aa8468c88742
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276214
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: skia:3803
Change-Id: If2b529bf9167e2a94784d8797ce28a9618e86d11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276203
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
The SkVM bots set this define, overriding the check at head.
Change-Id: Icbd7cb8c06ccba15a60855aefc92a43d624f51ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276224
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Previously, the CPU backend would catch this later (ByteCodeGenerator),
and the GPU backend would assert in expandFormatArgs (out-of-range
function index).
Change-Id: Ib84bf7c477ddcc9fd3091c5b106ebdd654e9a30b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276000
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
No need for an intermediate adapter object - just bind individual/scalar
fields using existing mechanisms.
No functional side effects.
TBR=
Change-Id: I16be769e5fb92dba0ebb6ce3b0584c5cdcc2b92c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276215
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This Op is interesting bc it has multiple draws (i.e., it has multiple GrMeshes).
Bug: skia:9455
Change-Id: Ifdd0f07c713cfd88f77038f9a63289d004ffe83b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276208
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
The plan is to land this and see what the perf bots report. Only local
desktop a little less than half the time we skip the upload for not being
dirty. But we're not sure if this is saving us much. Unless there is no
regression at all, we will revert this.
Bug: skia:10035
Change-Id: I8a3a8862ccd10ba109b5ddc2f3473d30b3ceccaf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276211
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Just a quick hack up to dump out a dot-compatible graph.
Arrows go from instruction -> args, making them depends-on
arrows, not data-flows-this-way arrows.
Example:
ninja -C out nanobench
out/nanobench --config 8888 -m bitmap_RGBA_8888_A_scale_bicubic --skvm
dot /tmp/CT4-AT2-Cov0-Blend3-CS0-Shader7d2763e63326274c.dot -T png -O
open /tmp/*.png
Change-Id: Ic1ad99bb39f84a211304feef8ac485c0225d6a60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276184
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
1. pass shader+op down to device
2. bitmapdevice pass it down to rasterclip
3. rasterclip only ever stores at most one shader
- if there is a ctm, fold that into (another) shader
- if the op is difference, invert the sense of alpha
- if there was a previous shader, compose with it
4. pass through to rasterpipelineblitter
5. it prepends the colorPipeline with the clipShader, and stashes its
results in a buffer (fClipShaderBuffer)
6. in each blit, scale/lerp from the buffer before storing the result
Change-Id: I07c7a8a20b9ae95cdcc9954237d115e63819f7c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275798
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
AE discriminates [1] between basic 2-dimensional properties
(PropertyValueType.TwoD - e.g. scale), and spatial 2D properties
(PropertyValueType.TwoD_SPATIAL - e.g. position).
For the latter it provides additional keyframe controls (tangent in &
tangent out) to describe a non-linear interpolation path ("spatial
interpolation"). This composes on top of the usual temporal
interpolation (with its own optional cubic mapping).
To support spatial interpolation:
- introduce a new Skottie value type (Vec2Value), to represent
TwoD and TwoD_SPATIAL properties
- introduce a KeyframeAnimator specialization for Vec2Value, which
tracks per-keyframe tangent information
- for spatial keyframes, instantiate/store an SkContourMeasure, and
use instead of straight Vec2 LERP
- switch interesting 2D properties to the new value type (transform
position, anchor point, scale)
(we could look into separating TwoD/TwoD_SPATIAL if needed, but the new
specialization is already more efficient than the old
opaque-vector-with-late-binding approach)
[1] http://docs.aenhancers.com/properties/property/#property-propertyvaluetype
Change-Id: I0863fd970cec4c5ff15cf01b2fb5c6602a468179
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274283
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This is purely moving code, to make changes in the next CL clearer when
most of these functions can be made static in the cpp file.
Change-Id: I9b23dd96bfc4b6ab3b5f6c8ad8b62365a6d82db2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276199
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This entailed adding createProgramInfo & onPrePrepareDraws methods.
This Op is interesting bc its GP has a proxy.
Bug: skia:9455
Change-Id: I5b2e5f20fd5bdd96f31a06c52929b1787336a466
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275948
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This adds the "docker_installed=true" dimension for some tasks which are
currently using Docker but do not set the dimension.
Change-Id: I94ede7376e081b861bc691111b58eda37ccf6c41
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276002
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
0c9b6abde9..abcc536b62
git log 0c9b6abde90c..abcc536b6207 --date=short --first-parent --format='%ad %ae %s'
2020-03-10 shrekshao@google.com Speculative fix for nullptr program in QueryProgramiv
2020-03-09 jmadill@chromium.org Revert "Vulkan: Fix store ops with linear command recording."
2020-03-09 b.schade@samsung.com Enabled GL_KHR_no_error
2020-03-09 tikuta@chromium.org use go isolate client in trigger.py
2020-03-09 geofflang@google.com Allow referencing buganizer issues with ANGLE CLs.
2020-03-09 geofflang@google.com Generate arch-specific defines in Android.bp
2020-03-09 geofflang@google.com Improve GN args for generating Android rolls.
2020-03-09 cnorthrop@google.com docs: Document how to use ANGLE on Android
2020-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 66a682b6a8f9..4c027048d88b (3 commits)
2020-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-headers/src 9bd3f561bcee..74556a131735 (1 commits)
2020-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src aa95c80e1a89..6861ea4e10a1 (1 commits)
2020-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 51b2800bb317..b44162fdbb25 (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@abcc536b6207
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 brianosman@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-Debian9-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: brianosman@google.com
Change-Id: I9df960aee06eaa64663ded756d7fbd354cd6b0a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276147
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: Ie66eccaae13bd1499b3b21bd1bc3c08f867e58aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276139
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
No longer in use by known clients.
Change-Id: Ib695f900a7912f27b40e76905d7369ea18c40800
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276098
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
This reverts commit 9d4b788807.
Copyright issue has been fixed in
https://skia-review.googlesource.com/c/skia/+/275998.
Original description:
Bug: skia:9756
In CanvasKit, a large part of the binary is for encoding. Clients
would be happier with a smaller binary and no webp/jpeg encoding. Make
this an option by splitting up the GN arguments.
Split SK_HAS_WEBP_LIBRARY into SK_CODEC_DECODES_WEBP (to match the
existing SK_CODEC_DECODES_RAW) and SK_ENCODE_WEBP. Same for JPEG and
PNG.
Update CanvasKit compile script to disable webp and jpeg encoding.
Update debugger compile script to disable all encoding.
Change IsPng signature to match other SkCodecs.
TBR=djsollen@google.com
Change-Id: Ic847bae0154e0a2922100b3f2ee14a077ee5635a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276007
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Currently we only can create direct command lists and we also don't cache anything.
Change also has so minor fixes to GMs allowing the d3d backend to run through all
GMs without crashing (though not actually drawing anything).
Bug: skia:9935
Change-Id: Ibf378e522d2e49bf342c709eb93d6fca4d43eac9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276097
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Since we can't use mask filters on layer paints any longer, refactor the
existing wipe effects to use explicit shader masking:
- remove SkSG::MaskFilterEffect - it no longer works
- replace with SkSG::MaskShaderEffect
- for atomic draws, apply the shader to the draw paint as
SkShader::Blend(kSrcIn, mask_shader)
- for isolated content, apply the mask as an extra pass
drawPaint(kDstIn, mask_shader) before restoring the layer
- refactor VenetianBlindsEffect, LinearWipeEffect and RadialWipeEffect
to use mask shaders
- additionally, refactor the RadialWipeEffect gradient to avoid using
a local shader matrix (does not compose correctly within the new
framework)
Everyone clear... do not touch the patient... BZZZT!
TBR=
Change-Id: I3a88da97a17b3b68812480cad5298b8778b6847c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275694
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Split the keyframe parsing logic into separate builder helpers.
No functional impact, this will facilitate some upcoming changes.
TBR=
Change-Id: I62a02a0ad90ddef572208f8714f22ae0a0b97023
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276003
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This removes the "work" cache from tasks which should not need it, and
adds the "git" cache to all tasks which use Git.
Change-Id: Ie3e5e964d77db44db869030ba195a50e27b75e70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275996
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:9935
Change-Id: I28f799cb53eb12fc1bd63f4fbcf1e1a09d7ccf3e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274937
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>