This reverts commit 4311f19158.
Reason for revert: layout test failures seemingly not having to do with bicubic+clamping+sRGB
Original change's description:
> refresh image shader cs/at logic
>
> Was working on SkVM versions of these when I noticed the existing
> SkRasterPipeline code wasn't terribly tidy. The main gist here is that
> we can let SkColorSpaceXformSteps::apply() handle almost all the
> final transformation on the way out of the shader.
>
> I remain a little puzzled why I got a few significant diffs when I tried
> leaving the A8 color unpremul, letting the steps handle matching the
> alpha types instead of me manually with SkRasterPipeline::premul. For
> now I've left that as-is.
>
> Similarly I think we could transform that A8 color ahead of time rather
> than doing that over and over at runtime. This is something I've left
> as a TODO, largely because I don't care enough about coloring A8 to
> investigate right now.
>
> I've inlined all the logic of explaining src-is-normalized into this
> shader (which is its only user). That makes it clearer that we can
> always set that bit when bicubic sampling, since we're clamping anyway.
> This causes some invisible diffs when switching to the optimized sRGB
> transfer function stages, which we may or may not be able to get away
> with without guarding...
>
> Change-Id: Ie6670c6ca5c69958f41aac88324341a10eb3bee1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261763
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,brianosman@google.com,reed@google.com
Change-Id: I9c414cb751d9e51219b18dc3d4f54c92d06664ce
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261815
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 60b69ecc8d.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> clarify that there's no kMedium here
>
> Reword to make it clearer we're only handling kNone, kLow, and kHigh;
> kMedium has been transformed into kLow or kHigh already at this point.
>
> I think it's particularly easy to be confused by the line
>
> if (quality > kLow_SkFilterQuality) { ... }
>
> Change-Id: If78cb6e946e26d08f5acd807d32e0446c69061b1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261765
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,brianosman@google.com
Change-Id: Ifb639ce76ec8e533ed6af7ddcb2d2fe8c66a6558
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261814
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 4f275cfe0e.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> pass more information to shaders
>
> If we're going to write an image shader, we're going to need to know the
> matrix and some bits of the paint.
>
> Instead of all possible information, I decided to pass just what the
> image shader needs for now, and will pass along more as I go.
>
> I've added a stub implementation of SkImageFilter as a way to make sure
> I'm threading everything it'll need through.
>
> Change-Id: I98de1724056dbc0902a34fc31da8ec6bdf38dc34
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261801
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
TBR=mtklein@google.com,reed@google.com
Change-Id: I660846f55a6fd9d118a6b58ea7d853b91d708aee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261813
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
There was never a need to distinguish between "all" and "default".
We can just use kDefalut everywhere. And as we add new path renderers,
we can exclude them from kDefault until they are ready to ship.
Change-Id: I378aa1e195d40daef6a2c54f9c8e829208780ebe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261714
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
If we're going to write an image shader, we're going to need to know the
matrix and some bits of the paint.
Instead of all possible information, I decided to pass just what the
image shader needs for now, and will pass along more as I go.
I've added a stub implementation of SkImageFilter as a way to make sure
I'm threading everything it'll need through.
Change-Id: I98de1724056dbc0902a34fc31da8ec6bdf38dc34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261801
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Bundling the pipeline stage arguments also simplifies the code in
several spots.
Change-Id: I85e81b436a39378f753cc9404b6eeb27fe055525
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261778
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reword to make it clearer we're only handling kNone, kLow, and kHigh;
kMedium has been transformed into kLow or kHigh already at this point.
I think it's particularly easy to be confused by the line
if (quality > kLow_SkFilterQuality) { ... }
Change-Id: If78cb6e946e26d08f5acd807d32e0446c69061b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261765
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Was working on SkVM versions of these when I noticed the existing
SkRasterPipeline code wasn't terribly tidy. The main gist here is that
we can let SkColorSpaceXformSteps::apply() handle almost all the
final transformation on the way out of the shader.
I remain a little puzzled why I got a few significant diffs when I tried
leaving the A8 color unpremul, letting the steps handle matching the
alpha types instead of me manually with SkRasterPipeline::premul. For
now I've left that as-is.
Similarly I think we could transform that A8 color ahead of time rather
than doing that over and over at runtime. This is something I've left
as a TODO, largely because I don't care enough about coloring A8 to
investigate right now.
I've inlined all the logic of explaining src-is-normalized into this
shader (which is its only user). That makes it clearer that we can
always set that bit when bicubic sampling, since we're clamping anyway.
This causes some invisible diffs when switching to the optimized sRGB
transfer function stages, which we may or may not be able to get away
with without guarding...
Change-Id: Ie6670c6ca5c69958f41aac88324341a10eb3bee1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261763
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
- 'in' variables can't be arrays (applies to all SkSL)
- 'in' and 'uniform' variables are restricted to a fixed
list of types.
Change-Id: I957ce1ad33aaf6b5970ca7204c568bb533bc86d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261436
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Inlining SkPicturePlayback::ReadOpAndSize() simplifies it, as does
removing support for the old op encoding, which was the "old format"
even back in 2014.
Change-Id: I304a777618403667b7b6c11110e3a781a5a29df3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261594
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Bug: oss-fuzz:19583
Change-Id: I656e8ddd5699cfc4998f3f424a1a46380f310c63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261591
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This workaround has not stopped long shaders from randomly failing
to compile on TecnoSpark Pro 3. It just stops us from generating some
shaders that fail to compile in unit tests.
Also, it reveals rendering issue when framebuffer fetch is used with
MSAA on this device (instead of adv. blending).
Change-Id: I8026ded6d0d75743dc2c508df5c4ffc207d8b5a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261736
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This was a workaround for older MSVC that didn't suppress that
particular warning as part of "/w". Bots are using a newer compiler that
fixes the issue.
Change-Id: If8582a688294286c2b307970415cd1d929b184b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261738
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
ebed855925..fca5a005aa
git log ebed85592533..fca5a005aa88 --date=short --first-parent --format='%ad %ae %s'
2019-12-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src bd97b6f9f213..5de15a256eb0 (1 commits)
Created with:
gclient setdep -r third_party/externals/angle2@fca5a005aa88
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 nifong@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: nifong@google.com
Change-Id: I7c0e5253deb5e4ffb8c8c85e0bd8b886752c22d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261724
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 4d745d62e3.
Reason for revert: broke Chromium tests
Original change's description:
> Clean up GrSimpleTextureEffect.
>
> Make it look human written instead of machine generated.
>
> Use perspective texturing builtin sample() when coords are three component
> rather than dividing to make them 2d.
>
> Change-Id: I9694857beaf35733077d0472d1eae43b5da933d0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261677
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,brianosman@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I8d7a5c5553434528785aa3dd2e5538f893c1cc40
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261679
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Implements tessellation support at the Ganesh level, and adds back
door methods for supplying raw GLSL strings directly to the OpenGL
driver. Adds a new gm to verify tessellation is works in GL.
Change-Id: Idfc285b955cbe5e8e6bf0475be8b518b0cc6ed2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261196
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Change-Id: I3120ca817f5fe3dc5969b6b875473f38c2fb8ea2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261667
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This makes the effect *be* the factory, so we can get rid of
SkRuntimeShaderFactory (and later, SkColorFilterFactory).
Change-Id: I2cd95f1380a0ec1e65fe5a18b1226c042598a8bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261439
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Make it look human written instead of machine generated.
Use perspective texturing builtin sample() when coords are three component
rather than dividing to make them 2d.
Change-Id: I9694857beaf35733077d0472d1eae43b5da933d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261677
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: Ia189fa2bec80093ddd6e2db35054db31c56106d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261676
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I1e49ab46975bb8e5eff08bc5afe7ffed1c078309
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261550
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I116c14f69066b20eab145e3210af65ea446cfc25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261551
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Close over all the fields for updating the color and translation. Remove unneeded
accessors. Simplify the calculation of the translation.
Change-Id: I144b61af446b48a32786da8618aea4714e4dd62a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261545
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: Ie4aad36164352dcb4ae364b3cfbabfc5f1493447
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261538
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Ic43bebee6a0036eff5b718cc505d85bf839cb8a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260898
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
01dd6f6ca4..ebed855925
git log 01dd6f6ca430..ebed85592533 --date=short --first-parent --format='%ad %ae %s'
2019-12-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 6e3a387c0159..59465799210b (1 commits)
Created with:
gclient setdep -r third_party/externals/angle2@ebed85592533
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/+/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: fmalita@google.com
Change-Id: I0757a58fa0fd4a2b8ce09aa2d359ffdb969dcd30
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261617
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
52dae168b4..01dd6f6ca4
git log 52dae168b48b..01dd6f6ca430 --date=short --first-parent --format='%ad %ae %s'
2019-12-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 37af49fa7b55..55333361f9a1 (1 commits)
2019-12-25 syoussefi@chromium.org Vulkan: EXT_gpu_shader5: textureGatherOffsets
2019-12-25 syoussefi@chromium.org Vulkan: EXT_gpu_shader5: Fix textureGatherOffsets builtin
Created with:
gclient setdep -r third_party/externals/angle2@01dd6f6ca430
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/+/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: fmalita@google.com
Change-Id: I80c5245d7fd790fece2a28fdabd104fef12f93be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261505
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: Ieb695288f2643a2959b76777d02af67ac49c245d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261544
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The atlas calculations and the color adjustment are do not interact, and
this has to happen no matter how many times the atlas is adjusted.
Change-Id: I571ca4bf18b133bea390787e5f58aef6334bdedb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261543
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
In addition, hoist the calculation to run once at the very beginning because
this translation is always done to each vertex regardless of the atlas changes.
Change-Id: I8001d02140c05fd8b2cd530f75ee2f58073374e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261539
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This leaves the Win SDK at 10.0.17763.0 (I got errors when trying to
move to something newer).
It moves from VS 2017 to VS 2019 (14.16.27023), which fixes an internal
compiler error in recent ANGLE. We're also generally overdue for
switching to 2019, which has been released and stable for quite a while.
Docs-Preview: https://skia.org/?cl=261542
Change-Id: Iba15d52f558e92407866315681c2e99711c6d26a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261542
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I1bd8a319cff923448c0e2e9e11b1416d0cb89fee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261541
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Updating the bots to MSVC 2019 requires a newer ICU (to fix an issue
with usage of std::atomic), and updating ICU requires updating HB.
Change-Id: I889add046b957d7699cb8c3cafb9dd91b3e588d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261540
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>