Change-Id: I0394f0956c0589597ce910f4c0ad9f44bf4ee05e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269194
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Bug: chromium:1048251
Change-Id: I9c18e55fd791adbf446aa776de297b857af22b64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269237
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Causes a warning-treated-as-error with Chromium's Clang.
Change-Id: Idd3b6492fe2a532eca387f571cc2f9b6796d07df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269196
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This reverts commit fd7fd960be.
Change-Id: Id0f39dfd906f24e5c5eb054a28fc8e96ef73835e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/267036
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
I prefer the SkTClamp spelling, but there were 4 uses vs. ~200. And
eventually we'll replace all of these with std::clamp anyway.
Change-Id: I418fce5080d089745c3f9eb42c36e3fc7962c895
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269155
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Now that Builder::Instructions are dense, it's easier to just calculate
Builder::hash() all at once when requested rather than as we go along.
(I'm planning to move the other use of Builder::Instruction hashing to
optimize() later too.)
Change-Id: I3124da5a3905291a907d08a12f62e794ed88e92d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269184
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Kind of brewing a big refactor here, to give me some room between
skvm::Builder and skvm::Program to do optimizations, bakend
specializations and analysis.
As a warmup, I'm trying to split up today's Builder::Instruction into
two forms, first just what the user requested in Builder (this stays
Builder::Instruction) then a new type representing any transformation or
analysis we've done to it (OptimizedInstruction).
Roughly six important optimizations happen in SkVM today, in this order:
1) constant folding
2) backend-specific instruction specialization
3) common sub-expression elimination
4) reordering + dead code elimination
5) loop invariant and lifetime analysis
6) register assignment
At head 1-5 all happen in Builder, and 2 is particularly
awkward to have there (e.g. mul_f32 -> mul_f32_imm).
6 happens in Program per-backend, and that seems healthy.
As of this CL, 1-3 happen in Builder, 4-5 now on this middle
OptimizedInstruction format, and 6 still in Program.
I'd like to get to the point where 1 stays in Builder, 2-5 all happen on
this middle IR, and 6 stays in Program. That ought to let me do things
like turn mul_f32 -> mul_f32_imm when it's good to and still benefit
from things like common sub-expression elimination and code reordering
happening after that trnasformation.
And then, I hope that's also a good spot to do more complicated
transformations, like lowering gather8 into gather32 plus some fix up
when targeting an x86 JIT but not anywhere else. Today's Builder is too
early to know whether we should do this or not, and in Program it's
actually kind of awkward to do this sort of thing while also doing
having to do register assignment. Some middle might be right.
Change-Id: I9c00268a084f07fbab88d05eb441f1957a0d7c67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269181
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I9709dfdfd6069d46c331d08e181e36cc9a21e71a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269149
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (recipe_engine) into this repository.
recipe_engine:
https://crrev.com/9cc10f207c74c1a1d2b5a34436cb21a5dcc57d92 (tandrii@google.com)
Refactor tryserver.do_not_retry into cq.do_not_retry.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Icea2fe76148902cedf7267a4c159420e7997bf24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269177
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
We treat them as part of SkTypes.h, so let's just merge them in?
Change-Id: Icd6db3913a679ceb9de09027d17eb9361754b016
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268769
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Started getting:
error: bitwise operation between different enumeration types ('GrStencilSettings::(anonymous enum at ../../src/gpu/GrStencilSettings.h:134:5)' and 'GrStencilFlags') [-Werror,-Wanon-enum-enum-conversion]
if ((kInvalid_PrivateFlag | kDisabled_StencilFlag) & (fFlags | that.fFlags)) {
after updating clang, which this CL fixes.
Change-Id: Ib2668e98298248ce5712d4ee9f125c78bf3445b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269140
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: Ic96a0ea2cd1bfd59ee3f236543e1d6dd102544ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269142
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Use std::max and std::min instead
Change-Id: I7fd2626ea9ea8ea09c709ff962523ca3de2f8a16
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269136
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
f1b2c4bed4..e9dc0201af
git log f1b2c4bed48a..e9dc0201af3a --date=short --first-parent --format='%ad %ae %s'
2020-02-06 brianosman@google.com GL: Mark unused uniform locations that were explicitly bound as ignored
2020-02-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src b82ed734e767..656650f461c8 (1 commits)
2020-02-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 9e52bc0d0c1d..1f03ac10270a (1 commits)
2020-02-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src ab47cacfd3b3..b60b35843e66 (6 commits)
2020-02-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 260679605f98..428455ca6121 (2 commits)
2020-02-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 8e8e1d0dd729..dd48b7e2d06e (2 commits)
2020-02-06 syoussefi@chromium.org Vulkan: Compile shaders at link time
Created with:
gclient setdep -r third_party/externals/angle2@e9dc0201af3a
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 scroggo@google.com,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: scroggo@google.com,brianosman@google.com
Change-Id: Ic90bbb2cdf0beed9f40d093a828c1db37502d865
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269124
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
In viewer fontscalerdistortable spends a large amount of resources
continually recreating typefaces. Instead, just create the needed
typefaces once up front and then use them in onDraw. This also makes it
easier to just check in popular variants for testing how system specific
fonts look.
Change-Id: Ie5f975cd87e87523b6f28ff01ec9ffc726d8b971
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265148
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Use std::max and std::min instead
Change-Id: Icf3796609e5cb511687fb50bd31229ae4b6b9b39
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268841
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:9556
Change-Id: Ibcdf187021c22290013d99d8684f891576046052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268937
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The goal of the verifier framework is to enable opt-in checks of the
images produced by individual GMs. The basis of verification will be
comparing the rendered output of a GM against a source-of-truth image,
such as one generated by the CPU backend.
In the short term this can enable coarse-grained sanity checks for a
subset of GMs to catch e.g. egregious rendering bugs. In the longer term
this can provide an SkQP-style suite of tests that can be run across
many/all GMs to provide a vote of confidence in the rendering
correctness of new devices.
Bug: skia:9855
Change-Id: I50f15ecd029b28b69c0f68dc4126df3a4dd61d75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268685
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (depot_tools) into this repository.
depot_tools:
https://crrev.com/417d89c32ff9d338c44f20905a5dc7a4df2f3009 (ahaas@chromium.org)
Revert "Enable Javascript formatting by default"
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7369acd8492f90d5ae261966ac05e7e1bba56c8c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269056
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
58fc8b11cf..f1b2c4bed4
git log 58fc8b11cf3a..f1b2c4bed48a --date=short --first-parent --format='%ad %ae %s'
2020-02-06 jmadill@chromium.org Vulkan: Fix overlay with command graph disabled.
2020-02-06 jmadill@chromium.org Vulkan: Command graph linearization (Step 3).
2020-02-05 jmadill@chromium.org Vulkan: Command graph linearization (Step 2).
2020-02-05 jonahr@google.com Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle
2020-02-05 julien.isorce@chromium.org Move generic code from rx::DisplayAndroid/Ozone to rx::DisplayEGL
2020-02-05 lexa.knyazev@gmail.com Apply compressed format workarounds to texStorage entrypoints
2020-02-05 jmadill@chromium.org Add environment overrides for ANGLE features.
2020-02-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 540662253ea3..b82ed734e767 (1 commits)
2020-02-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src 807f14657a25..b932cf53f769 (3 commits)
2020-02-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 41a7302e9c62..8e8e1d0dd729 (4 commits)
2020-02-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src e85fe4c3cc9f..ab47cacfd3b3 (1 commits)
2020-02-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 7a2d408dea60..9e52bc0d0c1d (11 commits)
2020-02-05 syoussefi@chromium.org Fix varying linking by location
Created with:
gclient setdep -r third_party/externals/angle2@f1b2c4bed48a
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 scroggo@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: scroggo@google.com
Change-Id: I5b5f5af0c15fe7c8bacbbc9be5922fa458d54348
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268985
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (recipe_engine) into this repository.
recipe_engine:
https://crrev.com/6dd9a28312365e28c7e851516829968cce68df1e (tandrii@google.com)
cq: expose properties to group similar attempts together.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I8870e8ee575cdd8146dd871cec5e0995be65644b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268996
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bug: skia:9556
Change-Id: Iad3fbadb893d029fc39f0b682c9f8fc223c010a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268843
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is not needed currently because the SkStrikeCache
still uses the remove/replace method of multi-threading.
This will let me see any overhead problems. The next CL
will be a multi-threaded test.
Change-Id: Ida8255cc86816fa21b4315a4bbccfbfab5ca475c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268683
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Similar to existing ADBE Easy Levels2, but provides separate mapping
controls per channel.
Change-Id: Ibc58c58e1e8cb8793d6eb819998c1804ccbbf859
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268936
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Change-Id: I1541e3f4629a117eee3f244c0209e442b705b67b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268844
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ia5e94704955aba33e07592711656fbeefef15912
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268840
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This CL:
now passes the GrProgramDesc as a const&
returns GrGLProgram as an sk_sp
makes the parameter ordering more consistent
makes GrVkPipelineState no longer ref-counted
This is pulled out of the DDL pre-compile CL which touches this portion of the code.
Bug: skia:9455
Change-Id: Id4d06f93450e276de5a2662be330ae9523026244
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268777
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: I2ce210889452756d5d100fbb15f578bb72e2af2a
Bug: skia:9813
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268687
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Fix insets for clamp/nearest case.
Change-Id: I1fa2f6d172fdac59836ae73c7a5fec0d0cde020c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268397
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This bug has already been fixed on newer drivers.
Bug: skia:9739
Change-Id: I8407d4198bc0610dd9a239969d1cf69942494c96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268639
Reviewed-by: Mark Kilgard US <mjk@nvidia.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Simplifies interaction with users who already have inputs in this form,
and doesn't really add any overhead to other clients.
Change-Id: I6e137e02a65e007621adf481ffb994665117caf4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268836
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ie0d2ec6e1ca1ddeb83338df232570443502e6cdb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268697
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This also changes the SkImage_Base header to return a const& view and
then removes the equivalent version in SkImage_GpuBase.
Bug: skia:9556
Change-Id: Ica096693a22c0fc590786058c055fb28387c80a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268624
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
1. Removed unnecessary iterators (use SkShaper iterators instead)
2. More careful hash function and comparison (ParagraphStyle)
3. computeEmptyMetrics should go after resolveStrut
4. longestLine for line with spaces only should not be 0
5. LTR/RTL * left/right align * latin/arabic * leading/trailing spaces positioning
6. Height for MaxHeight rect (to follow Gary's change)
Change-Id: I3507ff9fb93148e5ef882a2f514078fcea9cfef3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268301
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
change.AddDescriptionFooters() doesn't exist, the right function is
change.AddDescriptionFooter()
Bug: 1042324
Change-Id: Icb417eab494dc217bc8bb9a51810f9cf65cce828
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268667
Auto-Submit: Edward Lemur <ehmaldonado@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Change-Id: Ib506c0cc3c46d1bf514b35a8ba78d31d3e84f22c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268666
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>