I figured I'd get this in while it was on my mind.
The first order pattern we're implementing here is
return val == special_case ? p->splat(special_case)
: p->uniformF(uniforms->pushF(val));
which is, when we have a special case that we know skvm::Builder can
fold through, tell it about that by using splat() instead of a uniform.
That's exactly what we're doing for the bias column of the matrix;
adding zero will fold away into a no-op.
In the multiply we need to be a little more clever, because Builder will
not actually optimize x*0 into 0. That's only true for most values, but
notably not inf/NaN. So instead we do that folding ourselves, assuming
we won't encounter any inf/NaN color values (an untested assertion that
I trust you believe in).
smart_mad() is also a convenient place to test for 1*x+y -> x+y and
-1*x+y -> y-x. skvm::Builder would do the first if we splatted the
1.0f, and I'm not sure about the second, but since we're optimizing
ourselves anyway, might as well handle all three in the same way.
Change-Id: I1733ef948268144df98d6f83cd455087ceab05e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279541
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Like the Programs test, these fail randomly.
Bug: skia:9814
Change-Id: I4f3b6f2fc07db2cdc9ac580c224560bba4162788
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I8316c0b813c93eb53eefd254f6e7db23295e7db5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279416
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Previously, LayerIter called the base device iterator's next() call
during initialization. However, its next() call should be called instead,
since it does both the base device iterator.next() AND caches the
device's reported origin.
Without calling this->next(), the first device's origin would never be
fetched and the layer would report an incorrect origin.
Bug: b/151328374
Change-Id: I889673e2e93e54618544d62333bd9d04438bea00
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279420
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Bug: skia:9935
Change-Id: I91b6218946ba04e893adaec3c0077653a62efe2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279136
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
In particular, X.h has "#define None 0L".
Change-Id: I25f0becc9debd2d18a1735c7f573c7b1ca2b4c8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279406
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Also renames GrD3DSurfaceResource to GrD3DTextureResource. This makes
things consistent with our naming convention in Vulkan, and with the
terminology used in Direct3D.
Bug: skia:9935
Change-Id: I6e6d2066ac70eb8a0d63c1b5731f31851a3017d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279338
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Remove as many setters as possible, make the constructors less
ambiguous, make it movable, remove USE_UNIFORM_FLOAT_ARRAYS.
Change-Id: I71397d04b5b5d6deb792d77cb98d629d42785f06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279218
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Ambiguity has come up re: what "tessellation" means in Ganesh. I
believe that, in the context of a graphics library, "tessellation"
should refer to the hardware pipeline feature of submitting patches
and tessellating them on the GPU. This CL therefore renames classes
that triangulate things on the CPU to call it "triangulation".
Change-Id: Ic8515ea6a33000f1b638a852d5122bc9bd6b38f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279236
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This reverts commit 81c8f4b802.
Other CLs have fixed the precision issue on Bifrost GPUs.
Change-Id: I155a33f7e11e56a8912ae1467d9e2acafab52d6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279042
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I1f1396060c1668002501b1befb20481557efd5d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279356
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Expose sk_program_transfer_fn helper.
Change-Id: I871b77ecb6733d73c8f900f0bce9f4f3d29b26ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279258
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This will let us use GrGLColorSpaceXform in place of GrSRGBEffect.
Change-Id: I478cde3cf5009e4af97056fbc733ac0ee0ba7785
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279139
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This is a reland of 4e79b6730d
Original change's description:
> Switch to using a Float32Array (bound as value array) for color.
>
> Change-Id: I1bcca931954b1399c79f4074a3d57a68847ac785
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276757
> Commit-Queue: Nathaniel Nifong <nifong@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: If6b9097b2fcd6b9dbf75c6dd22138e0b2531e70d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278780
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Need to expand the size of highcontrastcolorfilter gm, to show all cases.
Also enlarge labels so they can be read.
Change-Id: I8f9278e7ce2f06a9a6921d70f1f38dc18f9023d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279336
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
107e4e989e..6719f54ac7
git log 107e4e989e94..6719f54ac7ce --date=short --first-parent --format='%ad %ae %s'
2020-03-26 courtneygo@google.com Update Vulkan header and related repos
2020-03-25 cnorthrop@google.com Capture/Replay: Update CaptureReplay sample for compression
2020-03-25 cnorthrop@google.com Perf: Add a single Manhattan trace
2020-03-25 ynovikov@chromium.org Re-enable angle_end2end_tests on 32-bit Windows SwiftShader
2020-03-25 jmadill@chromium.org No-op draw calls with rendering feedback loops.
2020-03-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 6c11cf2ad9ca..540bdf92531d (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@6719f54ac7ce
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 robertphillips@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: robertphillips@google.com
Change-Id: Ib7135db1cc7497f72d5c2e8b447bfe3ddf6168f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279248
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
It's possible for two types that look distinct (float4 vs half4) to
resolve to the same type ID in the SPIRV. If two function signatures
differ only in that way ("half4 foo(half4)" vs. "half4 bar(float4)"),
we'd end up generating two identical function type declarations, which
is a validation error.
Instead, key the declarations that we've already emitted by resolved
SPIRV Id, so we notice that those functions can share a single type
declaration.
Change-Id: Iea27101612f8990b3750424ca265ba04306f1f25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279217
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Actually don't snap the other coordinate.
This reverts commit 5575e3c4ea.
Change-Id: I7ef5c16ecbccf5131da595d2396243fbdefb4ddf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279140
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I62880a83d9b59d42c6491125e2a62338d2ce757f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279200
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Kind of a big rewrite to adapt to the new repository structure.
Change-Id: I7b437aaa6bdf684c4486fe91fe94984107b7f6f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279072
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:10080
Change-Id: I936d6d696c86c50d5b51dc84894127c38ad753d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279048
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Adds a "viewer" option to the build system that brings in tooling code
and sample code. Adds a very simple "MakeSlide" binding that knows
how to create the WavyPathText sample slide. Adds viewer.html with
code to animate viewer slides.
This can hopefully be the starting point for future work on bringing
viewer to CanvasKit.
Change-Id: Ia26e08726384b40b3f544fe8254f430dc9db08db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278892
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Change-Id: I54e4069134e66fee0bd85e96b5e9502a3c1fc7d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279087
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Updates the vertices_data GM to work on the GPU backend, too. For now,
it still works on the CPU via the original hack.
Bug: skia:9984
Change-Id: I2e11bd01e3cc953d2837ecd6ca8b2305b060e5fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278857
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
An oval in the "ovals" sometimes gets AA when it should not because of
batching.
Change-Id: Ic3ac179006bd528ba90cf7613a8bd8d75fee285e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279046
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: Ic23e4b3409cdc0bef672913ff8106794aa549bd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279038
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
This op does not use explicit local coords and thus only supports one
view matrix per draw.
Bug: chromium:1060865
Change-Id: I5c44d58068f35587df73a281dd6f5dff1d26b188
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278459
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Fixes:
Workaround GL_ALPHA texture issue in GM.
Don't crash in GM on null image.
Snap both coords in 1D bicubic (restores old behavior).
This reverts commit 97c98f9596.
Change-Id: I14bf0f8c6acf87cac0a13b9166fac73a2f3520b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278862
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Plumb layer style parsing, and extend existing DropShadowAdapter to
support both drop shadow style and drop shadow effect.
Change-Id: Id99a419dacd06dc38dc4cf84ff4ecb92218c45f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279020
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
6fead37543..107e4e989e
git log 6fead3754375..107e4e989e94 --date=short --first-parent --format='%ad %ae %s'
2020-03-25 ynovikov@chromium.org Lift SwANGLE dEQP-GLES3.functional.fbo.blit.conversion.* suppression
2020-03-24 ianelliott@google.com Vulkan: Fix crashes/failures in array-of-struct uniforms
2020-03-24 jmadill@chromium.org Speculative fix for assertion failure with samplers.
2020-03-24 kbr@chromium.org Fix robust resource initialization with clipped CopyTexSubImage2D.
2020-03-24 jmadill@chromium.org Supress test failing with new Intel driver.
2020-03-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 60104cd97446..1346dd5de119 (4 commits)
2020-03-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 22d73d15e778..6c11cf2ad9ca (5 commits)
Created with:
gclient setdep -r third_party/externals/angle2@107e4e989e94
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 robertphillips@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: robertphillips@google.com
Change-Id: I17b6fbe12a08101071ce5b4b728137ad86b1d6b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278981
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This reverts commit 6beb1dd941.
Reason for revert: GPUs are terrible.
Original change's description:
> Switch sRGB color filter to use GrColorSpaceXformEffect
>
> Guarded for chrome layout tests, then the GrSRGBEffect code can be
> deleted.
>
> Change-Id: Ib04efe79e39a353803e3f8361770f6180f392ab6
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278859
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,brianosman@google.com
Change-Id: I3e26222aa954b54e3ede53b53615a530530ce60a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279016
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Guarded for chrome layout tests, then the GrSRGBEffect code can be
deleted.
Change-Id: Ib04efe79e39a353803e3f8361770f6180f392ab6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278859
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>