Commit Graph

41376 Commits

Author SHA1 Message Date
Eric Boren
522efc438c [infra] Add chrome_release_branch script
Bug: skia:8932
Change-Id: I258fd8f5262e5f87800b85f9bcbd0c4982ef1e3d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208503
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-04-16 19:46:10 +00:00
Mike Klein
12de0c1bd4 roll libpng to 1.6.37
Adds NEON accelerated palette expansion.

Change-Id: I8a1378c58175c2343541a69b2bd7a1f476931a99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208580
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-16 19:35:50 +00:00
Mike Klein
9a885b27f3 pass SkVx::Vec arguments as const&
Yet another surprising finding when looking at ARM code generation is
that passing these values to functions by const& does make a difference,
even when fully inlined.  I can only guess that the compiler's somehow
more sure that way that the values won't change?  Anyway, convert all
skvx functions that take Vec arguments to take const Vec& instead.

This tweak is enough to let the natural implementation of mull()
actually produce good code generation, so I've promoted that to SkVx.h
and added a unit test.  Notice in the NEON case we've got a base case at
N=8 and two recursive cases, one down to 8 as usual when N > 8, but also
one up to 8 when N < 8.

This also is another big speedup for ARMv7 NEON, bringing it to nearly
the same speed as ARMv8 NEON on the same device.

Bug: chromium:952502
Change-Id: I0f19bab45cf02222ccc8090053ea2a4a380f1dfe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208582
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-04-16 19:24:50 +00:00
Greg Daniel
e9c375cd3d Revert "Add GrDisableColorXPFactory::makeXferProcessor()"
This reverts commit 11157ef97a.

Reason for revert: breaking bots

Original change's description:
> Add GrDisableColorXPFactory::makeXferProcessor()
> 
> This allows us to access the actual XP for working directly with
> pipelines.
> 
> Bug: skia:
> Change-Id: I71e7c2e9d69f464685e28b4f4a85847f0496b864
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208345
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com

Change-Id: Ia12f17d955702b13f33753b352cb3ae232881175
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208662
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-04-16 19:19:52 +00:00
Ben Wagner
0a8da21fba Remove generateCharFromGlyph and charToGlyphID.
The methods on SkScalerContext are no longer used.

Change-Id: I6a5a5f2eb7018cb6369ea90649ab5a65b5a6660a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208660
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-04-16 18:49:40 +00:00
Ethan Nicholas
151a883e86 added more SPIR-V RelaxedPrecision decorations
Bug: skia:
Change-Id: I5717dc2c6d78f5a09ad4e948a73414fe514a4613
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208513
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2019-04-16 18:35:50 +00:00
Mike Klein
50303b9adc Revert "align skvx::Vec<N,T> to N*sizeof(T)"
This reverts commit e3b110dc6e.

Reason for revert: bot failures

Original change's description:
> align skvx::Vec<N,T> to N*sizeof(T)
> 
> This increases the alignment of these vector types.  I would have liked
> to keep the alignment minimal, but it's probably no big deal either way.
> 
> In terms of code generation, it doesn't make much difference for x86 or
> ARMv8, but it seems hugely important for good ARMv7 NEON code.  It's a
> ~10x difference for the bench I've been playing around with that spends
> most of its time in that SkOpts::blit_row_color32 routine.
> 
> Bug: chromium:952502
> Change-Id: Ib12caad6b9b3f3f6e821ed70bfb57099db37b15f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208581
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>

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

Change-Id: I72357b9775685efcc2cd75db220711c8145b8ac4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:952502
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208680
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-16 18:25:54 +00:00
Herb Derby
5dd7f84ae4 Reduce use of path generation
Since the prepare for draw generates a path when needed,
a lighter weight hasPath() can be used. The generatePath
only needs to be used until the bitmap device
path ARGB fallback is worked out.

Change-Id: I4b2c6d7907e0f818078841caa166a58a0a989827
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208510
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-04-16 18:24:40 +00:00
Mike Klein
e3b110dc6e align skvx::Vec<N,T> to N*sizeof(T)
This increases the alignment of these vector types.  I would have liked
to keep the alignment minimal, but it's probably no big deal either way.

In terms of code generation, it doesn't make much difference for x86 or
ARMv8, but it seems hugely important for good ARMv7 NEON code.  It's a
~10x difference for the bench I've been playing around with that spends
most of its time in that SkOpts::blit_row_color32 routine.

Bug: chromium:952502
Change-Id: Ib12caad6b9b3f3f6e821ed70bfb57099db37b15f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208581
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-16 17:59:22 +00:00
Chris Dalton
11157ef97a Add GrDisableColorXPFactory::makeXferProcessor()
This allows us to access the actual XP for working directly with
pipelines.

Bug: skia:
Change-Id: I71e7c2e9d69f464685e28b4f4a85847f0496b864
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208345
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-04-16 17:57:18 +00:00
Brian Salomon
30182b482b Ensure that insetting for blur texture domain doesn't invert domain rect.
Bug: chromium:949422
Change-Id: I9046ee89f5cfb56fc25c50bd3b9bd617f07a3a73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208514
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-16 17:52:38 +00:00
Ben Wagner
393981d1db Remove deprecated SkPaintFilterCanvas::onFilter.
No longer used by any clients. The new onFilter is made pure virtual to
enforce that it is implemented and the existing fallback forwarding
implementation is removed.

Change-Id: I8ce522db78d28a1e83779fbfa6979e6e16a0cee5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208507
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-04-16 17:52:13 +00:00
Kevin Lubick
0e3342cfcd WASM build cleanups
Fix debugger includes (broke on https://skia-review.googlesource.com/c/skia/+/208226)

Fix canvaskit building w/o fonts

Change-Id: I1279d92ee1ac749a974830e75b41e97e9f75f578
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208515
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-04-16 17:48:53 +00:00
Herb Derby
8bd22ae8de Remove non-canonical font color
Change-Id: I65563e0a1814d0e59734a5fac794b906aa939f04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208511
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-04-16 17:45:44 +00:00
Brian Salomon
68aeec07de Clarify that buffers of type GrGpuBufferType::kXferGpuToCpu are mapped for reading.
Don't allow GrGpuBuffer::updateData on kXferGpuToCpu (in GL this can resize the buffer
to a smaller size).

Don't call glBufferData with NULL prior to mapping for reading.

Don't set GL_MAP_WRITE_BIT when using glMapBufferRange for reading only.

Bug: skia:8962
Change-Id: I605d83fa40c7b170082c48a456436d97cf3b70a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206707
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-16 16:52:44 +00:00
Jim Van Verth
c809832930 Convert 565 and 4444 bitmaps to 8888 for Mac Metal.
Fixes a large number of GMs.

Bug: skia:8243
Change-Id: I8053ac218d894205d36a3a3cdc8b7a7ea2e27e71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208320
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-04-16 15:29:14 +00:00
Chris Dalton
8c4cafd297 Don't flush pipeline state when querying sample locations in GL
This was a relic from back when we could use EXT_raster_multisample.
Since MSAA is now always baked into the framebuffer attachments, this
is no longer necessary.

Bug: skia:
Change-Id: I47c66fcdbd008e057dab5eae457bb70ec8e6bb9f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208460
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-04-16 15:21:33 +00:00
Mike Klein
c48bf3a34b just some refactoring for fm_bot.go
A couple little spots starting to look unwieldy.

Change-Id: If2971b71ae202b152f54ec3df6896d906c34a081
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208276
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-16 14:41:51 +00:00
Greg Daniel
4aa13e7da3 Remove deprecated SkSurface::prepareForExternalIO and related uses of the name.
In a future CL I intend to use prepareForExternalIO to be a specific operation
to do to an SkSurface/SkImage so this is a pre CL that removes our use of that
phrase when related to flushing.

Bug: skia:8802
Change-Id: I3efe4c4061fe962e2fc1339185feb5ded6e23005
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208223
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-04-16 14:08:09 +00:00
Brian Salomon
26de56ef09 GrSurface -> GrGpuBuffer transfer improvements:
GrCaps now only provides the offset alignment requirement. The row bytes
is always bpp * width.

GrGpu::transferPixelsFrom now just returns bool since row bytes value is
implicit. It now asserts offset is aligned with GrCap's provided value
in base class.

Implement caps for GL.

Bug: skia:8962
Change-Id: I3299b62efe9fe05bfe02f2a6a4c2704f647d0f8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206686
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-16 14:05:34 +00:00
Brian Salomon
c0d79e525f Avoid multiplication by alpha in fragment shader when known to be 1.
Implemented for image shaders, image draws, and gradient shaders.

Reimplement GrFragmentProcessor::OverrideInput as GrOverrideInputFragmentProcessor.fp.
It allows specification of whether the replacement input color should be
a literal in the shader code or a uniform. For above use case use with literal white.

Make key in variables in fp files work for 4f colors.

Fix issue in CPP code gen from .fp where when + key vars that pushed multiple values
into the shader key only skipped the first key value when the when condition is not
true.

Bug: skia:7722

Change-Id: Id7c865132d620e8cdea8b00f2a627103eef171ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201985
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-04-16 14:03:04 +00:00
Brian Osman
6c431d5202 Towards a simpler SkSL -> GLSL pipeline (and better shader reflection)
The pretty printer didn't actually need the original (separate) strings,
so make it just operate on a single SkSL::String. Also remove the unused
line numbering, and the unit test. (Testing of test code, yay!)

With that done, cut down on passing around arrays of char* + length, and
just do the compaction to a single SkSL::String in the program builder.

Change-Id: Ieef9d9a8e3c5620c011b17477f1b0f9a9faa6273
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208226
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-16 13:49:17 +00:00
skia-recreate-skps
5bee533ef3 Update go_deps asset
Automatic commit by the UpdateGoDEPS bot.

TBR=borenet@google.com

Change-Id: I384d9ff501ec9ea0841f5c4c4e6e0ac13c7f931a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208520
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-04-16 05:44:04 +00:00
skia-autoroll
6642803e94 Roll third_party/externals/angle2 065f8dc35f9d..e7da32f1c73e (7 commits)
065f8dc35f..e7da32f1c7


git log 065f8dc35f9d..e7da32f1c73e --date=short --no-merges --format='%ad %ae %s'
2019-04-16 jiajia.qin@intel.com Fix the failure in UpdateImageTextureInUse
2019-04-15 jonahr@google.com Use primaryGPUIndex over activeGPUIndex when determining the system GPU.
2019-04-15 syoussefi@chromium.org Fix LineLoopStateChangeTest to actually draw square and hourglass
2019-04-15 jonahr@google.com Uniform buffers not dirtied for gl_VertexID workaround on D3D11.
2019-04-15 jmadill@chromium.org Correct texImage uses of texture type -> target.
2019-04-15 geofflang@chromium.org Update suggested reviewers documentation.
2019-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 98b3f26c2f1f..102e430a88db (2 commits)


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

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=herb@google.com

Change-Id: I7df15d085bf3db182a4b38f52e804ab0e3c53978
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208483
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-16 05:06:54 +00:00
skia-autoroll
a6f480b148 Roll ../src b2d31144d9af..95629c4c410f (449 commits)
b2d31144d9..95629c4c41


Created with:
  gclient setdep -r ../src@95629c4c41

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=herb@google.com

Change-Id: I5809194611bb5bb20102d3f4ce96e09069077825
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208482
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-16 04:47:24 +00:00
skia-autoroll
121b0d0e81 Roll third_party/externals/swiftshader 64b761a8af9b..25be5bb97518 (11 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/64b761a8af9b..25be5bb97518


git log 64b761a8af9b..25be5bb97518 --date=short --no-merges --format='%ad %ae %s'
2019-04-16 chrisforbes@google.com Add support for BuiltInFrontFacing
2019-04-16 chrisforbes@google.com Pass baseVertex to vertex shader
2019-04-15 bclayton@google.com Reactor: Copy new debug macros to Reactor.
2019-04-15 chrisforbes@google.com Add support for shader draw parameters query
2019-04-15 chrisforbes@google.com Support color write mask in pipeline
2019-04-15 chrisforbes@google.com Add support for querying device group present capabilities
2019-04-15 sugoi@google.com Allocation failure fix
2019-04-15 swiftshader.regress@gmail.com Regres: Update test lists @ 64b761a8
2019-04-15 sugoi@google.com Do not attempt to initialize dynamic state vars with pipeline state
2019-04-15 sugoi@google.com Image type and view type compatibility check fix
2019-04-15 sugoi@google.com vkCmdResolveImage implementation


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

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=herb@google.com

Change-Id: Ieba4423cef4a81e7a6ce4c11aec2b5b8ea16905e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208484
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-16 04:34:54 +00:00
recipe-roller
9d10206b7a 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.
depot_tools:
  https://crrev.com/4b79c3870c5135c39c75822919eb76ac2d5633f4 git_cache: add OVERRIDE_BOOTSTRAP_BUCKET option. (tandrii@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I3109b23a11f600675dbd7ca86fdb567d3a93fead
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208321
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>
2019-04-16 00:24:53 +00:00
Mike Klein
d51d00745b add _M_ARM64 support
¯\_(ツ)_/¯

Cq-Include-Trybots: skia.primary:Build-Win-MSVC-arm64-Debug
Change-Id: I48dd439fffff004c9ee7f36ecbe834a964286726
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208279
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-15 21:27:55 +00:00
Chris Dalton
19cc00f19a Support multisample in GrProxyProvider::MakeFullyLazyProxy
Bug: skia:
Change-Id: I5784a309b8775b9a805f1240e2c6ba7cc1bab70c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208145
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-04-15 20:58:54 +00:00
Mike Klein
acb8be89d1 add retries to fm_bot
Change-Id: Ibcc6ee83cde537caaab824658721bbda300abc18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208273
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-15 20:41:24 +00:00
Jim Van Verth
6f8bfba1b7 Fix fontcache GMs on Metal.
Inline uploading wasn't set up.

Bug: skia:8243
Change-Id: I3f8ab0287d760d009127adec147d5522cc5b9a22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208225
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-04-15 20:01:29 +00:00
Mike Reed
194cab0fd3 use slope-guess for faster charToGlyph
Made up a threshold between linear and slope searching.
For a count of 100 here are the before and after timings.
The first two lines are being changed. The latter 2 are
the native look-ups for mac.

Before

  15/15  MB	115	2.33µs	2.34µs	2.34µs	2.34µs	0%	▆▁▄█▇▇▂▄█▆	nonrendering	cmap_findcache_charToGlyph
  15/15  MB	66	3.47µs	3.48µs	3.49µs	3.55µs	1%	█▁▁▁▂▁▁▁▁▄	nonrendering	cmap_addcache_charToGlyph
  15/15  MB	1	1.1µs	1.13µs	1.21µs	1.98µs	22%	█▂▁▁▁▁▁▁▁▂	nonrendering	cmap_face_charToGlyph
  15/15  MB	190	1.09µs	1.1µs	1.19µs	1.64µs	17%	▁▁▁▆█▁▁▁▁▁	nonrendering	cmap_font_charToGlyph

After

  15/15  MB	447	448ns	449ns	448ns	449ns	0%	▂▅█▅▁▆█▂▁▆	nonrendering	cmap_findcache_charToGlyph
  15/15  MB	95	2.79µs	3.03µs	3µs	3.06µs	3%	▇▇▇▇▇███▄▁	nonrendering	cmap_addcache_charToGlyph
  15/15  MB	1	1.15µs	1.16µs	1.25µs	1.99µs	21%	█▂▁▁▁▁▁▁▁▁	nonrendering	cmap_face_charToGlyph
  15/15  MB	186	1.09µs	1.1µs	1.12µs	1.27µs	5%	█▁▁▁▂▁▁▁▁▁	nonrendering	cmap_font_charToGlyph


Bug: skia:
Change-Id: If7da4eef3cce248393815071f342607f0c8140bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208044
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2019-04-15 19:35:59 +00:00
Herb Derby
e74192103c Reland "Convert the CPU mask case to use prepareForDrawing"
This is a reland of c48879ed40

BUG=952629

Original change's description:
> Convert the CPU mask case to use prepareForDrawing
>
> Change-Id: I3a36084544e12730f4815dbf5b6c78a1cd719f1b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207761
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I382901e2a4cc186b206450cd4ae8058c6c0e2149
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208042
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-04-15 19:23:09 +00:00
Mike Klein
bf15b66768 dump stack trace in FM on failure
In CrashHandler...
  - make CrashHandler a non-noop... don't know why it's disabled
  - fix bitrot since we last built it
  - update to demangle symbols on Linux too, not just Mac
  - catch SIGTRAP, which will catch SK_ABORT / SkASSERT,
    unless otherwise hooked (e.g. by a debugger)

In fm...
  - use CrashHandler
  - convert exit_with_failure to SK_ABORT so they'll also dump a trace
  - flush stdout after printing what's running

Change-Id: Ib20d0e4f442d73c28e193396dc6e85935fc58544
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208151
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-15 19:15:39 +00:00
Leon Scroggins III
bcc75323f9 Implement SkHeifCodec::onRewind
Bug: 130458015
Test: Id2d70e95d2d879d2ff5e2cb985d3542731108909

SkHeifCodec needs to reset some of its state between decoding calls. Do
so in onRewind. This mimics SkJpegCodec, on which SkHeifCodec is
modelled.

Change-Id: I380a8ed88c98eaedc6f6ff1ff115bb2dea68bd56
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208180
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-04-15 18:48:39 +00:00
Mike Klein
3d50730e12 restore vmull_u8() in color32()
vmull_u8() does u8 * u8 -> u16, 8 at a time.  This keeps the loop as
tight as possible in NEON, basically {load,mull,addhn,store,loop}.

Drop N to 4 pixels at at time to make this easier.  Depending on how
performance charts go, I may circle back to bring this back up to 8.

Bug: chromium:952502
Change-Id: I17ba6b60c0cc6c6da71b05a4af269d87d76672b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208140
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-15 18:09:39 +00:00
Brian Osman
a71b4ce346 Guard GrRadialGradientLayout::TestCreate against Empty shaders
With certain degenerate params (decal mode and a very small radius), we
could produce an SkShader that's an instance of SkEmptyShader, which
then failed to create an FP.

Bug: skia:8660 skia:8860 skia:8982
Change-Id: I47142572cd0c75d15c6ee1e66e3140786431371f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208221
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-15 18:06:38 +00:00
Florin Malita
e1c275e360 [skottie] 'Add' layer blend mode support
BM now exports an enum for 'add' blending [1]. This corresponds to
SkBlendmode::kPlus.


[1] 86874c1018

Change-Id: I3c9a52e4055563f50bb68f460eda27fed1c4a411
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208220
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-04-15 17:47:39 +00:00
Mike Klein
bc537fac4b step carefully in decal_nofilter_scale
can_truncate_to_fixed_for_decal() is correct to check that we can step
fx by dx count-1 times without overflowing, but as written we actually
step count times, and sometimes the final fx does overflow.  Fuzzers
equipped with UBSAN have noticed.

There's no real bug here, as we ignore that final fx, but we can step
carefully to avoid this with very little impact on code complexity or
performance.

Bug: chromium:951264
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I5446dbdffdc5fa873c843c26654894bd79202971
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207921
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-15 17:26:28 +00:00
skia-autoroll
662d67133a Roll skia/third_party/skcms 0da672fc2c69..668026c511f3 (1 commits)
https://skia.googlesource.com/skcms.git/+log/0da672fc2c69..668026c511f3

2019-04-15 mtklein@google.com remove need for -Wno-narrowing


The AutoRoll server is located here: https://autoroll.skia.org/r/skcms-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux-blink-rel
TBR=herb@google.com

Change-Id: I6d0f5de8d878ec5319ca3986599e62d9f5d17aef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208150
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-15 16:32:18 +00:00
Mike Klein
930c29511f always zero SkMallocPixelRefs
I'm getting tired of trying to figure out where
clients screw up and forget to clear these buffers,
and I'd like a safer safety net for our own screw ups.

Bug: chromium:934161, many more
Change-Id: I6ada4c821da6dd173e54c6402c17d6946ff05fdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207857
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-15 15:50:58 +00:00
Ben Wagner
1875353110 Add LenovoYogaC630 (Win arm64 bot)
Change-Id: I70f4e01a2c55e85ee5e17a29f7f05a4a4aff2ae2
Bug: skia:8569 skia:8976
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204264
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-15 15:35:48 +00:00
Mike Reed
e71641479c removed localmatrix getter
Change-Id: I0325719c44993ddefec207d65fcb4babff807f70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208097
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-04-15 14:40:18 +00:00
Brian Osman
be2062c430 Extend --writeShaders to output SPIR-V
Changed the python script to operate on all shaders in the directory,
handling SPIR-V appropriately, and collating data across backends.
Made the output CSV, so that it imports into spreadsheets directly
(and handles missing columns cleanly).

Removed all the JSON digest logic - this was overkill at the moment,
and it made it tricky once we were combining information from GL and
Vulkan. Also, the hit count data was probably misleading - it didn't
count hits at the program cache level, just the persistent cache.

Change-Id: If354cde943c96f84e7bcc20a137afefca3b59358
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207960
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-04-15 14:04:18 +00:00
Greg Daniel
a3aa75ab29 Add callback to flush for knowing when gpu is finished work.
Bug: skia:8802
Change-Id: I093c2a4e879b635b169a849d9af3e9f7a3d84a88
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207870
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-04-15 13:52:28 +00:00
Robert Phillips
831a29341c Plumb sk_sp through the GrOpList class hierarchy
This is preparing the ground for having proxies be atomically reffed

Change-Id: Ice48c41120d4ec10a758f696a69028b6363e8a7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207762
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-04-15 12:21:45 +00:00
Robert Phillips
1fe0b86f17 Remove some unused GrSurfaceProxy methods
Change-Id: I3762ce179cc50c452c28dabbdadb3c50d529b271
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207884
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-04-15 12:17:55 +00:00
skia-recreate-skps
e1c5ea6779 Update go_deps asset
Automatic commit by the UpdateGoDEPS bot.

TBR=borenet@google.com

Change-Id: I22302f20863d8440c8f13e58d7ada4c1596371b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208089
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-04-15 05:51:21 +00:00
skia-autoroll
f697b0cdc1 Roll third_party/externals/angle2 cfc73cc1af5e..065f8dc35f9d (12 commits)
cfc73cc1af..065f8dc35f


git log cfc73cc1af5e..065f8dc35f9d --date=short --no-merges --format='%ad %ae %s'
2019-04-12 timvp@google.com Vulkan: Set appropriate GL conformant bit for returned configs
2019-04-12 courtneygo@google.com Always enable NPOT for Vulkan backend
2019-04-12 benjaminwagner@google.com Fix 'not all control paths return a value' and add to extra_warnings
2019-04-12 jmadill@chromium.org Update test result output from ANGLE dEQP gtests.
2019-04-12 jmadill@chromium.org Move ANGLE CQ to linux-angle-rel and mac-angle-rel.
2019-04-12 jmadill@chromium.org Ensure deleteTexture preserves correct texture cache.
2019-04-12 jmadill@chromium.org Vulkan: Add design docs on line segment raster.
2019-04-12 jmadill@chromium.org Vulkan: Write design doc explaining SPIR-V generation.
2019-04-12 ynovikov@chromium.org Suppress flaky dEQP 3.1 test
2019-04-12 tobine@google.com Incorrectly placed extension directive is an error
2019-04-12 thakis@chromium.org Remove explicit -Wextra-semi, -Winconsistent-missing-override flags.
2019-04-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 82ebbbba15c2..98b3f26c2f1f (2 commits)


Created with:
  gclient setdep -r third_party/externals/angle2@065f8dc35f9d

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=herb@google.com

Change-Id: I9f342d4622526f695ab6348017b961296fc3b1d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208101
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-15 05:01:51 +00:00
skia-autoroll
f5bb65efc0 Roll ../src 6506f553b36c..b2d31144d9af (500 commits)
6506f553b3..b2d31144d9


Created with:
  gclient setdep -r ../src@b2d31144d9

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=herb@google.com

Change-Id: I83b8c3fa751a98e3b48941610d9692621cae9d70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208100
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-15 04:36:51 +00:00