Commit Graph

46418 Commits

Author SHA1 Message Date
recipe-roller
fed9eb1b42 Roll recipe dependencies (trivial).
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/684096347b67b1663690c118785018258acd2e9b (contact@yannic-bonenberger.com)
    Improve git cl split

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: If1c855cf15b2969adfba2505c0583457377b7997
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266280
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>
2020-01-23 19:02:06 +00:00
Robert Phillips
2716daf18e Clean up some "const SkISize& dimensions" usages w/in Ganesh
This is pulled out of the parameter reordering CL - which has become too large.

Change-Id: Id36875dd4a670611ab94a08a3a6df41c474e9022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266217
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-01-23 18:24:16 +00:00
Mike Reed
11b05bc11f Don't make promises about rowbytes
Since we just rely on SkBitmap to manage rowbytes, we don't need to
separately track it in the surface.

Bug: 1038304
Change-Id: Iea2d486019bf4c5bf4f2a87eabc5f00ad71949fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266219
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-01-23 17:58:36 +00:00
Greg Daniel
cce65006ad Treat GrTextureAdjusters mip copy like other producers, i.e. no fallback.
This makes sure that when we are not using repeat mode the colorType of
the producer will match the colorType of the returned proxy.

Bug: chromium:1044862
Change-Id: I9627517c383ff7c3e9801da21ddafdacfb747871
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266218
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-01-23 17:35:46 +00:00
Michael Ludwig
5195673c7a Revert "Increase precision of some quad AA calculations"
This reverts commit 40a1353126.

Reason for revert: layout tests need rebaseline

Original change's description:
> Increase precision of some quad AA calculations
> 
> This stops using the low precision rsqrt and instead does a divide + sqrt.
> It also separates the single kTolerance value used in GrQuadUtils' math
> into a fairly fuzzy tolerance for edges/distances being close to zero
> (e.g. a degenerate quad), and a more precise tolerance for linear systems
> solutions.
> 
> The smaller tolerance value used for denominators in these solutions prevents
> the solved-for coordinates from being mis-classified as "bad". The bad coord
> resolution works on the assumption that its correcting points that are
> co-located, but if the input coords were sufficiently large the linear
> equations would have small denominators that were less than the fuzzy tolerance
> and then the geometry would be improperly collapsed to a line.
> 
> For the selected zoom level of GM_crbug_10141204, this change is sufficient
> to prevent the draw from being discarded. However, when animating the zoom
> level, the input shape is sometimes still considered a fullscreen clear when
> it shouldn't be. A follow up change will improve precision in CropToRect()
> 
> Bug: skia:9779, chromium:10141204
> Change-Id: Id1518a908c03e7813868c4eff014d18388f8f62e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265976
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

TBR=robertphillips@google.com,michaelludwig@google.com

Change-Id: I44012a2728f75e235678f733c6da8870b84ae3ab
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9779, chromium:10141204
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266220
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-01-23 17:31:26 +00:00
Mike Klein
85754d5855 basic pass at gradients
This is looking pretty good.

Some egregious diffs, some invisible,
and a handful in-between I've investigated.

The egregious diffs look like bad shader caching.  I need to fix that,
but its brokenness is simply helpfully exposed here, not made any worse.
To repo, run: lumafilter, srcmode.

These in-between diffs all fall within the existing variance:
   crbug_938592               ok
   analytic_gradients         ok
   gradients_dup_color_stops  ok
Probably different geometry math, FMAs, reordering, etc.

I will follow up with radial etc,
and shallow gradients also demonstrate we're missing dither.

Change-Id: I5a046ee42accdf1faed50b3b65efb4a6787b5e04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265821
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-01-23 17:03:36 +00:00
Mike Reed
07d32b4d2d remove some memory-based methods, add rc()
Change-Id: I44d6f67dcd3d042127ad20ebdaa332e94f1b0829
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266216
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-01-23 16:52:06 +00:00
Stephen White
3c0a50f038 Implement support for framebufferOnly render targets.
This reflects Dawn and Metal functionality.
Implement a FramebufferOnly flag on GrSurface and GrBackendRenderTarget.
Forward the state from GrBackendRenderTarget to GrSurface.
Check the GrSurface flag in GrGpu::readPixels() and GrGpu::writePixels()
and early-return.

Change-Id: I27d3c9c912b366791bfd0e1db49638d8925742f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262802
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-01-23 16:34:06 +00:00
Greg Daniel
4cb293392c GrPixelConfig is DEAD!!!!!
Bug: skia:6718
Change-Id: Iecad0943b428f7f0e22b45c4cdc7798df00f3e84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265982
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-01-23 16:25:26 +00:00
Hal Canary
60ff65114c Fix build when (is_ios && !skia_enable_skottie)
Bug: skia:9726
Change-Id: I2ad05e28f8699fc7c5159145cc59065fc8bd5b93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265520
Reviewed-by: Hal Canary <halcanary@skia.org>
Commit-Queue: Hal Canary <halcanary@skia.org>
Auto-Submit: Hal Canary <halcanary@google.com>
2020-01-23 16:11:36 +00:00
Michael Ludwig
8098e63c9e Increase precision in barycentric_coord calculations
For quads with very large coordinates, the barycentric coordinate
calculations could be very inaccurate in 32 bit. This lead to
erroneously thinking the render target was contained within the
quad's triangles, instead of just intersecting it.

By scaling the coordinates to a more reasonable magnitude before
multiplying and subtracting the coordinate values, reasonable
accuracy is preserved w/o needing to do everything in 64 bit.

Because it produces coordinates relative to the triangle vertices,
the computed values remain the same as if the unscaled coordinates
were used with higher precision math.

This seems to prevent GM_crbug_10141204 from being misclassified as
a fullscreen clear when its large rect geometry just intersects
the device.

Bug: skia:9779, chromium:10141204
Change-Id: Ia97c2c4e288907ddbb7058d3e7ed97112143b7dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265977
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-01-23 16:04:07 +00:00
Greg Daniel
b58a3c7331 Remove fConfig from GrSurfaceDesc.
Bug: skia:6718
Change-Id: I586e10c828d5d0a0b3e46d8efd7400991b98d5c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265978
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-01-23 15:53:36 +00:00
Brian Salomon
899985245a Fix issue introduced in 33c0f260d2
Wrong edge used for left rect in y-pass.

Change-Id: I3040c5b45fcaaddb321aff3a8bc341b4baa67fd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266198
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-01-23 15:37:06 +00:00
Michael Ludwig
40a1353126 Increase precision of some quad AA calculations
This stops using the low precision rsqrt and instead does a divide + sqrt.
It also separates the single kTolerance value used in GrQuadUtils' math
into a fairly fuzzy tolerance for edges/distances being close to zero
(e.g. a degenerate quad), and a more precise tolerance for linear systems
solutions.

The smaller tolerance value used for denominators in these solutions prevents
the solved-for coordinates from being mis-classified as "bad". The bad coord
resolution works on the assumption that its correcting points that are
co-located, but if the input coords were sufficiently large the linear
equations would have small denominators that were less than the fuzzy tolerance
and then the geometry would be improperly collapsed to a line.

For the selected zoom level of GM_crbug_10141204, this change is sufficient
to prevent the draw from being discarded. However, when animating the zoom
level, the input shape is sometimes still considered a fullscreen clear when
it shouldn't be. A follow up change will improve precision in CropToRect()

Bug: skia:9779, chromium:10141204
Change-Id: Id1518a908c03e7813868c4eff014d18388f8f62e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265976
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-01-23 15:33:17 +00:00
Herb Derby
73c75877bd Reland "Specialize SkRectanzier to SkRectanizerSkyline"
This is a reland of 77e1f84a84

Original change's description:
> Specialize SkRectanzier to SkRectanizerSkyline
> 
> It looks like the pow2 rectanizer has never been used. Remove
> the unneeded abstraction for rectanizer everywhere.
> 
> Change-Id: Iba33f1c6faf37201d03928ce8409751c212480a0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265983
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

Change-Id: I09729ba2b0e4b8b1a229fef4b95e65195b33fdc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266180
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-01-23 15:28:26 +00:00
Mike Reed
26df65c8fb row/col methods
Change-Id: I5b306b15070899d0091b974b09869ff50dcd9c7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265980
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-01-23 15:22:26 +00:00
Mike Reed
05b729709c remove obsolete flag SK_SUPPORT_LEGACY_CANVAS_MATRIX_VIRTUALS
Change-Id: I7f8dabe249a29ffa59e3e6224292895831be13d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266196
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-01-23 15:12:46 +00:00
Brian Osman
22c44e7f5f Disable Programs test on MacBook10.1-Metal
Bug: skia:9817
Change-Id: I0cee480888a6e2da06d70750dbce9f98c7303516
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266197
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-01-23 15:12:06 +00:00
Michael Ludwig
87211cd0ba Add GM for crbug:10141204
Bug: skia:9779, chromium:10141204
Change-Id: If075e04373a141343ce368c1b28a494047a396f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265876
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-01-23 15:06:16 +00:00
Mike Reed
e4ddb8a7cd Revert "Specialize SkRectanzier to SkRectanizerSkyline"
This reverts commit 77e1f84a84.

Reason for revert: breaking google3 roll?

Original change's description:
> Specialize SkRectanzier to SkRectanizerSkyline
> 
> It looks like the pow2 rectanizer has never been used. Remove
> the unneeded abstraction for rectanizer everywhere.
> 
> Change-Id: Iba33f1c6faf37201d03928ce8409751c212480a0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265983
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,herb@google.com

Change-Id: I2573534f3ea95c98d089f9c19b027564e77015db
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266116
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-01-23 10:13:46 +00:00
skia-autoroll
20d0f92991 Roll ../src f2517d68dfde..7afe38da7578 (473 commits)
f2517d68df..7afe38da75


Created with:
  gclient setdep -r ../src@7afe38da75

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC benjaminwagner@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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
Tbr: benjaminwagner@google.com
Change-Id: If0d82cb2f158433ba7ac09e75881bc816af2fc04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266066
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-23 05:39:24 +00:00
skia-autoroll
fca88b6504 Roll third_party/externals/angle2 8c396a9cc4a8..135f8fcba837 (16 commits)
8c396a9cc4..135f8fcba8

git log 8c396a9cc4a8..135f8fcba837 --date=short --first-parent --format='%ad %ae %s'
2020-01-23 syoussefi@chromium.org Vulkan: Remove inactive uniforms in the translator
2020-01-23 spang@chromium.org Vulkan: Fix setupDraw when VK_EXT_transform_feedback is not enabled
2020-01-22 courtneygo@google.com Vulkan: Fix cast of float to unsigned int for ARM
2020-01-22 syoussefi@chromium.org Vulkan: Line raster emulation through specialization constant
2020-01-22 sugoi@google.com Enable GL_NV_fence with Vulkan backend
2020-01-22 syoussefi@chromium.org Manually roll spirv-headers
2020-01-22 syoussefi@chromium.org Add support for layout(early_fragment_tests) in;
2020-01-22 syoussefi@chromium.org Row-major test: Clarify std140's stride calculation
2020-01-22 syoussefi@chromium.org Add support for non-float mix
2020-01-22 courtneygo@google.com Update expectations after dEQP test fixes
2020-01-22 jmadill@chromium.org Vulkan: Fix naming in CommandGraphResource.
2020-01-22 aleino@nvidia.com Reduce fail expectations dEQP-GLES31.functional.program_interface_query.buffer_variable.*
2020-01-22 aleino@nvidia.com Reduce D3D11 skips in dEQP-GLES31.functional.program_interface_query.buffer_variable.*
2020-01-22 sugoi@google.com Extensions suffixes
2020-01-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 11cb891a01a2..b766e5e7fbf4 (1 commits)
2020-01-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 323a81fc5e30..ab7ac60f14ae (1 commits)

Created with:
  gclient setdep -r third_party/externals/angle2@135f8fcba837

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 benjaminwagner@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: benjaminwagner@google.com
Change-Id: I2f7ec6488a43da161cbb2251b92b3a2eb201ac36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266067
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-23 04:35:24 +00:00
skia-autoroll
17ea748d62 Roll third_party/externals/swiftshader b766e5e7fbf4..f324fe10ca65 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b766e5e7fbf4..f324fe10ca65

git log b766e5e7fbf4..f324fe10ca65 --date=short --first-parent --format='%ad %ae %s'
2020-01-22 sugoi@google.com Improve 565 and 5551 precision
2020-01-22 bclayton@google.com CMake: Make the use of endif() / endif(EXPR) consistent
2020-01-22 bclayton@google.com Vulkan debugger: Don't wait for debugger by default.
2020-01-22 bclayton@google.com CMakeLists: Allow overriding of building cppdap
2020-01-22 bclayton@google.com CMakeLists: Only expose options if they're not set as vars
2020-01-22 capn@google.com Don't use VK_TRUE comparisons

Created with:
  gclient setdep -r third_party/externals/swiftshader@f324fe10ca65

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC benjaminwagner@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:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: benjaminwagner@google.com
Change-Id: I55cbbb031d5954e6dafdfdb451dc88c8deb40cfa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266068
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-23 04:35:04 +00:00
Herb Derby
77e1f84a84 Specialize SkRectanzier to SkRectanizerSkyline
It looks like the pow2 rectanizer has never been used. Remove
the unneeded abstraction for rectanizer everywhere.

Change-Id: Iba33f1c6faf37201d03928ce8409751c212480a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265983
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-01-23 02:28:32 +00:00
Greg Daniel
ce3ddaa50f Pass readSwizzle into more proxy creation to not use config.
This is similar to the earlier change to createProxy but needs to be done
for all the lazy ones as well.

Bug: skia:6718
Change-Id: I3f5721541929e2e3fbfa746b5a2c4221b1af5b49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265960
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-01-23 02:21:02 +00:00
Greg Daniel
d51fa2f1e3 Remove GrPixelConfig from GrSurface and GrSurfaceProxy.
This also requires us to compute a scratch key from backend format instead of config.

Bug: skia:6718
Change-Id: I6bf4c5ba8188e354ddc5307ebf2ca10080df27cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265768
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-01-23 01:14:32 +00:00
Ben Wagner
ba16336168 Reduce binary size of GCC Debug builds
Change-Id: I2643a949d21bdacc7263f30d3a8b2ff9000929fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265878
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-01-23 00:08:52 +00:00
Robert Phillips
3a83392c9a Add missing 'GrProtected' parameter to createCompressedTexture call chain
This makes creation of a compressed textures better parallel creation of uncompressed textures

This CL is pulled out of the parameter reordering CL - which has become too large.

Change-Id: Iabdaced780af206c2398e55986d3e7698a083342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265582
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-01-22 23:28:32 +00:00
Michael Ludwig
52c68c4111 Account for negative w in GrQuad::bounds
Also avoids loading coordinates into SIMD for the simple 2D case. This
moved the 2d bounds benchmark from 3.2us to 2.2us on my Windows machine,
but there was no movement on my Linux workstation (stayed ~2.2us on it).

This will regress the 3d bounds benchmark because there is a fair bit
more work that happens when any w < 0 (about 1/10 of the executions in
the benchmark). While the math for w > 0 stays the same as the old
code in projectedBounds(), that case still has the overhead of checking.
The regression is necessary since the prior "fast" 3d code was incorrect.

This does not fix the panorama case described in 224618, because that test
still uses anti-aliasing. However, with this change applied and forcing
non-AA, it draws correct albeit not smoothed. Further work will be needed
to safely handle AA inset/outsetting when the coordinates have w < 0.

Bug: skia:9779, chromium:224618
Change-Id: I3b7b052b448850ed098b6c819d3acb578437d2b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265767
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-01-22 23:14:52 +00:00
Julia Lavrova
2ea20eae78 Another attempt to aling ellipsis behavior with TxtLib
Change-Id: If556d939e7f61ffa9f60cb68e0c177cb5ca05d49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265760
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-01-22 22:50:53 +00:00
Alan Screen
9ae6732c1f Update font descriptor selection workaround
Existing code in create_descriptor() has hard-coded removal of certain
font traits because of issues in recent operating system versions. [1]

With the arrival of a newer version of macOS there is yet another quirk
to be dealt with. [2]

Modify create_descriptor() to avoid problematic traits based on the
version of CoreText in use.

This is a temporary workaround until typefaces can be serialized instead
of relying upon identical selection in different processes.

[1] https://skia-review.googlesource.com/c/skia/+/158443/
[2] https://crbug.com/1018581

Bug: chromium:1018581
Change-Id: I4c4c675e77f15a092f4b738c932edfb0876efa27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260346
Commit-Queue: Alan Screen <awscreen@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2020-01-22 22:36:03 +00:00
Michael Ludwig
08f1a25aad Add GM reproducing perspective failures
Modeled on https://codepen.io/adamdupuis/pen/qLYzqB, this GM creates a
cube of rectangles with the camera at the center. It animates the FOV
since the original chrome issue was most visible when resizing the page
(which then updated the fov of the perspective css transform).

This draws correctly with the raster backend. There are two issues it
causes with Ganesh:

1. The input coordinates of some of the cube faces have 0 or negative ws.
  - When negative, the current bounds code does not perform clipping and
    just uses the mirrored point, which leads to misleading bounds.
  - When 0, the current bounds code produces infinities, and then GrOpsTask
    discards the op with non-finite bounds.
2. The anti-aliasing code also ignores w <= 0, and so all of its screen
   space math is incorrect.

This causes a mix of completely discarded draws and distorted draws on the
GPU backend.

Bug: skia:9779, chromium:224618
Change-Id: Ib00b909f51cbf7aaba5b89ed830ddc720ad3c73d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265763
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-01-22 22:03:59 +00:00
Mike Klein
db38022b7c extend -O1 hack to avx2 code as well
Remember this bug where things would draw completely
right then wrong then right then wrong in vertical
stripes, that boiled down to an inappropriate call
to vzeroupper before some Mac-specific stack checks?

At the time we thought it was limited to only AVX
code, but of course it applies to AVX2 as well.

This removes pinstripes from many GMs when at -O0.

Bug: skia:9709
Change-Id: I51bc347529b4e3b6c00db37f9cfa18230a614345
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265900
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-01-22 22:02:59 +00:00
Ben Wagner
470e0ac14a Revert "Revert "Revert "Complete rewrite of the SkSL interpreter"""
This reverts commit 7deb1c26ba.

Revert "maybe fixed?"

This reverts commit 7ad3f229c7.

Revert "removed extraneous change"

This reverts commit 682f299aa8.

Revert "test change"

This reverts commit 5f40986cef.

Revert "derp"

This reverts commit 4f830b8df3.

Revert "let's see what happens"

This reverts commit d5290563f0.

Change-Id: Ib3c13c2a6ade9fc42382509d036e212c7fe50cc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265979
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2020-01-22 21:59:48 +00:00
Ethan Nicholas
d5290563f0 let's see what happens 2020-01-22 16:45:31 -05:00
Ethan Nicholas
4f830b8df3 derp 2020-01-22 16:45:31 -05:00
Ethan Nicholas
5f40986cef test change 2020-01-22 16:45:31 -05:00
Ethan Nicholas
682f299aa8 removed extraneous change 2020-01-22 16:44:31 -05:00
Ethan Nicholas
7ad3f229c7 maybe fixed? 2020-01-22 16:44:31 -05:00
Ethan Nicholas
7deb1c26ba Revert "Revert "Complete rewrite of the SkSL interpreter""
This reverts commit 99c54f0290.
2020-01-22 16:44:31 -05:00
Kevin Lubick
4ca0dacbce [canvaskit] Roll to 0.12.0
Change-Id: I306f18b49574d264fa7091112a77dea158d8967a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265959
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-01-22 20:35:54 +00:00
Kevin Lubick
a538e46d5f [canvaskit] Fix color opaqueness
Bug: skia:9800
Change-Id: I61d50df47467dbcee6d90fd636749a4d19c4da8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265957
Reviewed-by: Brian Osman <brianosman@google.com>
2020-01-22 20:35:54 +00:00
Kevin Lubick
319524ba72 [canvaskit] Fix colorType bug
Bug: skia:9788
Change-Id: I1c7eeefb0e2883edc9095599ff2f10e8419f54c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265956
Reviewed-by: Brian Osman <brianosman@google.com>
2020-01-22 20:35:54 +00:00
Mike Reed
b26b4e7340 Revert "Revert "use SkM44 internally""
This reverts commit f79aacba2b.

Fix: had transposed when converting from colormatrix to m44

Change-Id: I6bc81d0c50bb1bf8d771e4dfa0c25c39de265b1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265765
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-01-22 20:19:16 +00:00
Florin Malita
cbf31d0a0e [skottie] Cleanup: convert shape layer adapters to new pattern
Split off most shape layer components into own CUs (naming convention
following AE), and convert to new DiscardableAdapter pattern.

TBR=
Change-Id: Iba7800cff1998d3d7cf81dfd89b4193d02b59559
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265147
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-01-22 20:16:36 +00:00
recipe-roller
d1a117f132 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/d5f7fbd67a6fb31d0491b5ba3e7f4a46c6668a37 Add autosubmit to recipes.cfg nontrival roll options (agable@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Idf95154833a2ee3ffddbf920327dd561137b91dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265898
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>
2020-01-22 20:05:27 +00:00
Brian Salomon
988f109b94 Fix usage enum with GL_NV_pixel_buffer_object.
This extensions adds PBOs but not new enum values for <usage>. Only the
ES2 enum values of STREAM_DRAW, STATIC_DRAW, and DYNAMIC_DRAW are valid.

Also change TransferBufferType to enum class.

Bug: skia:1040643
Change-Id: Id36808267a86548a25ac6c92f9b753c11764742e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265577
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-01-22 20:00:57 +00:00
Ben Wagner
32b45b32b7 Glyph 0xFFFF is a valid glyph.
Assert that the hb_codepoint_t passed to skhb_glyph_extents is in range
using SkTo, which is obviously correct (and consistently used elsewhere)
instead of the incorrect '< 0xFFFF' since 0xFFFF is a valid glyph id.

While doing so, rename the hb_codepoint_t parameters which are actually
glyph ids to reflect that they are glyphs and not codepoints (HarfBuzz
uses hb_codepoint_t for both).

Change-Id: I0bf2b7f12183dfb8254856b12168b8bee867c430
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265769
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-01-22 19:22:15 +00:00
Brian Salomon
2055827845 Disable Programs test on TecnoSparkPro3 Debug test bot
Bug: skia:9814
Change-Id: I6c78ac3fdf8c4b2abb111d68801779a01ed259d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265766
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-01-22 18:53:54 +00:00
Greg Daniel
7c165a4b8c Reland "Reland "Pass in a SkColorType into SkImage_Gpu ctor.""
This reverts commit 9ed88b3101.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Reland "Pass in a SkColorType into SkImage_Gpu ctor.""
> 
> This reverts commit 938106dccc.
> 
> Reason for revert: Most likely cause of Chrome roll failure:
> https://chromium-review.googlesource.com/c/chromium/src/+/2013502
> 
> Original change's description:
> > Reland "Pass in a SkColorType into SkImage_Gpu ctor."
> > 
> > This reverts commit 42032cb88f.
> > 
> > Reason for revert: Relanding now that pre CLS that fix initial issue landed
> > 
> > Original change's description:
> > > Revert "Pass in a SkColorType into SkImage_Gpu ctor."
> > > 
> > > This reverts commit 1d17543133.
> > > 
> > > Reason for revert: android bots
> > > 
> > > Original change's description:
> > > > Pass in a SkColorType into SkImage_Gpu ctor.
> > > > 
> > > > This allows us to get rid of using the GrPixelConfig on proxy to create
> > > > the SkColorType
> > > > 
> > > > Bug: skia:6718
> > > > Change-Id: I1758b79152fa1e8a1796e55d19f5e8ca0b0e8b7b
> > > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264396
> > > > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > > > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > > 
> > > TBR=egdaniel@google.com,robertphillips@google.com
> > > 
> > > Change-Id: I449e6b0750d611346791beb1dd1346106ad01741
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: skia:6718
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264469
> > > Reviewed-by: Mike Klein <mtklein@google.com>
> > > Commit-Queue: Mike Klein <mtklein@google.com>
> > 
> > TBR=egdaniel@google.com,mtklein@google.com,robertphillips@google.com
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: skia:6718
> > Change-Id: I8088b4e96d1f2c73be03d150fb8f8280a21db5de
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265496
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,robertphillips@google.com
> 
> Change-Id: Idded694199b5c090a727e9b84251ba4700716c1f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:6718
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265603
> Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
> Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>

TBR=egdaniel@google.com,benjaminwagner@google.com,robertphillips@google.com

Bug: skia:6718
Change-Id: Iaed2c5de04bfedcc85f75fb581f1c1fd2775bcde
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265762
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-01-22 18:41:06 +00:00