From mac's man libtool
Libtool with -static is intended to replace ar(5) and ranlib
Libtool allows RSP files, and has -no_warning_for_no_symbols
Change-Id: I1d61095db02ae83fdf491c26eae7d9d4cefc2d17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250337
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.
Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This is a reland of cba64462d2
... with a fix to SkColorFilterShader::onAppendStages() to
copy out the alpha. The blitters sometimes outlive the shader.
Original change's description:
> hide color filters from blitters
>
> This is all guarded by the old define we never rebaselined.
>
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader. Our pipeline's order of operations
> is
>
> 1) shader
> 2) scale by paint alpha
> 3) color filter
>
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
>
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN
Change-Id: Ia98dbeaba6220a60d195c0ef967772c9dce882a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250596
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Make better use of SkISize and GrImageInfo.
Change-Id: Ie3c9f16d7db05e6527baf1aae4607d74d020ee49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250577
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
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/1906f405ba0f00b960b89b751d36630d558a4211 gclient: When deleting untracked files, gracefully handle symlinks that point to dirs. (bpastene@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iab3b0a0d226baccce148a80e388bd81772d2b970
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250601
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>
Reduce the number of branches, similar to GrHSLToRGBFilterEffect.fp.
colorfilter_matrix_hsla 500.92 -> 482.47
Change-Id: I7d11a226f7db314dd284be538eee37fbe59f60b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250339
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
There is a bug on Pixel and Pixel2 devices where the program
eventually terminates with a non-zero exit code. Closing the
outResultsFile between JSON flushes seems to fix it (for whatever
reason).
Bug: b/143074513
Change-Id: I935e982e88758fda19292129c8031f8501cca615
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249821
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is mostly the patch we've been looking at, rebased,
with some of my comments from the review folded in.
The perf speedup is qualitatively the same as I saw on the other patch.
On that same Snapdragon 835, with draw_bitmap_aa_rotate runs about 30%
faster (543.39 vs 712.71us) and draw_bitmap_noaa_rotate about 15% faster
(481.93 vs. 572.13us).
The main thing I have omitted is the NEON specialization of matrix
procs. It looks like both nofilter_affine() and filter_affine() are
autovectorized well, and we seem to perform fine enough without manual
specialization here. I'm even tempted to remove [no]filter_scale_neon()
as a follow up.
Image diffs look mostly fine. This unexpectedly fixes rotated lighting
shaders in GMs. Clearly that lighting shader must get a lot of use...
Change-Id: I67ee0b3ab92d6e56584ece05feb6e66d6fb7c660
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249860
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
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/3671a6a21726da161152fd4f8a7816ba512e78fa Revert "git-cl: Add diff lines of context setting." (jmadill@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iff91ce40d30041f7e16414d98dc09c7bf1e21d87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250597
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>
GrTestingBackendTextureUploadTest creates backend textures from BGRA
pixmaps. There is a bug on desktop GL. We choose a RGBA format for the
texture. We then infer the color type of the data from the format (via
a hop through GrPixelConfig) as RGBA and upload it as such.
Currently we don't fail the test because the test fails to read the data
back (because we don't support direct reading of BGRA data from textures
in GL).
Fixing the read back causes the test to fail.
This change removes the inference of color type from the format and
instead uses the pixmaps' color type.
This doesn't fix several larger issues, including:
1) The intended color type is not specified when creating a texture of a
solid color so we still infer it from the format in that case.
2) We may not support direct uploading of data in the pixmaps' color type
to the chosen texture format but must first convert it to some other
color type on the CPU.
Change-Id: I3b1022c40201fc107cb39bbb5cca775795c828e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250336
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
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/ad557c41da7ce606ef3c26cf9ab465f9e4c81456 presubmit: deprecate vpython_spec_path (tikuta@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7808d89cf55eccaf0a0edae3c2fe86a9a03e9ae7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250539
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>
d4affcdd2a..b2885bc4a4
git log d4affcdd2ac9..b2885bc4a40f --date=short --no-merges --format='%ad %ae %s'
2019-10-23 tobine@google.com Vulkan:Enable UpdateBufferInUse test on AMD
2019-10-23 xinyi.he@arm.com Vulkan: Mipmap is unconditionally enabled in ANGLE
2019-10-23 tobine@google.com Vulkan:Roll Loader
2019-10-23 tobine@google.com OES_depth32 is for render buffer capability
2019-10-23 tobine@google.com Vulkan:Store full 64bit handle in GarbageObject
2019-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader a68a80a4dbf9..7738ed713e7b (6 commits)
2019-10-23 jmadill@chromium.org GN: Separate out constructor/destructor warnings.
2019-10-23 lehoangq@gmail.com Move Vulkan GlslangWrapper code to a shared location.
Created with:
gclient setdep -r third_party/externals/angle2@b2885bc4a40f
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 michaelludwig@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=michaelludwig@google.com
Change-Id: Ia206b5ff62f4b3ee57f6680c45d5d84970935996
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250427
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 (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/8ded266425e8a197ce33cf2794374d2a9df707f5 depot_tools: Always use depot_tools .vpython to execute presubmit recipes. (ehmaldonado@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iee260bca0eddde481f3f44bafa7ed47059774ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250340
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>
Currently, there are two methods for drawing paths. The device metrics
version that uses the glyphs from the mask paths directly, and the common
path (font size 64) version that uses scaling to generate the paths.
This change removes the device metrics version. This is a very rare execution
path because, the font size needs to be < 132, but still generate a glyph with
dimensions > 256. I have only seen this in the wild once.
This change simplifies the code, and does not change the behavior very much.
There are only two GMs show big numerical changes. One has visible differences
(textblobmixedsizes), and the other is very slight visible difference(mixedtextblobs),
but it is not wrong.
Change-Id: Ieb10cd73c81196c66be5f791d591471e15175917
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249888
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
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/ea98ebbe654ab38b812c8dfe1f4affc081c1cb73 chromite_wrapper: modernize a bit (vapier@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic900dd8e4a5e71f5c9e61d7ea72e848ce2bbd943
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250299
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>
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/efd15ecf30fa1ed2376e6a0ea3cf1b3659732f05 Avoid accessing the None json output on gclient sync failure. (gbeaty@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I58eef1b7e1c1351678b2d8181db87b556840426d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250298
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:
Change-Id: Idfe709836a9c0be5ce9b6fd200956ff8e284596d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249981
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This fixes the fpcoordinateoverride GM, and others.
Change-Id: I715e39201a4c77aa49395a3b9259caaf3ca0328e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249893
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This reverts commit cba64462d2.
Reason for revert: ASAN failures: https://logs.chromium.org/logs/skia/4812b6e5916f3d11/+/steps/symbolized_dm/0/stdout
Original change's description:
> hide color filters from blitters
>
> This is all guarded by the old define we never rebaselined.
>
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader. Our pipeline's order of operations
> is
>
> 1) shader
> 2) scale by paint alpha
> 3) color filter
>
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
>
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
TBR=mtklein@google.com,reed@google.com
Change-Id: Icc3a3916ca763de979c01d65746d74c49e14544c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250261
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This is all guarded by the old define we never rebaselined.
Had to make some upgrades to SkColorFilterShader to support
replacing an SkPaint's shader and color filter with a single
merged SkColorFilterShader. Our pipeline's order of operations
is
1) shader
2) scale by paint alpha
3) color filter
but SkColorFilterShader had no way to get that paint alpha in
the middle there, so I added one.
Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Implementation is shared with with AsyncReadPixels.
Change-Id: If40705e96cc7fb073ab6024ab59819784c8be0ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244717
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
These names are more appropriate after:
https://skia-review.googlesource.com/c/skia/+/241356 (Always create an approx-size texture for approx-fit proxies))
Note that this CL does have one substantive change in GrCoordTransform::hasSameEffectAs where we use our knowledge of the size at which the backing stores will be allocated to remove a sly usage of GrSurfaceProxy::underlyingUniqueID.
Change-Id: Ibbb8cb23c4503f267abbdf4794610f3262a6f515
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250257
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This centralizes the information we are preparing and reduces duplicate computation (e.g., of the VertexSpec).
Change-Id: Iac2c4d0890389e641ee9a7453dace31c0a4ca965
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249983
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This reverts commit 766b4c9c21.
Reason for revert: GMs and bots
Original change's description:
> Rename sampleVariablesSupport() to sampleMaskSupport()
>
> We have only implemented support for the sample mask. Renaming the cap
> to reflect that.
>
> Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com
Change-Id: I712169e86ee479bffd71d6665710f731d6c0e042
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250179
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
5335faaece..d4affcdd2a
git log 5335faaece2a..d4affcdd2ac9 --date=short --no-merges --format='%ad %ae %s'
2019-10-23 jmadill@chromium.org Vulkan: Roll validation layers.
2019-10-23 jmadill@chromium.org Vulkan: Fix sampler object lifetime.
2019-10-23 jie.a.chen@intel.com Remove forceNonZeroScissor workaround
2019-10-23 jie.a.chen@intel.com Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
2019-10-22 geofflang@chromium.org GL: Emulate primitive restart when PRIMITIVE_RESTART_FIXED_INDEX is unavailable.
2019-10-22 tobine@google.com Vulkan: Enable VK_EXT_line_rasterization
2019-10-22 mihu@microsoft.com Fix EXT_multisample_render_to_texture perf regression
2019-10-22 jmadill@chromium.org Metal: Move ldflags to Metal backend config.
2019-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 834ee546f93d..5e634c8999e6 (3 commits)
Created with:
gclient setdep -r third_party/externals/angle2@d4affcdd2ac9
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 michaelludwig@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=michaelludwig@google.com
Change-Id: I92b833fb4898433e58b5d7ed05f6a95aa171a2b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250157
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 (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/b1ae481f7fe335d11f579854e2a2fefd07d7623d git-cl: Remove hack to ask for random mirrors when querying Gerrit. (ehmaldonado@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iab3ecb9fceaae817dc1447299c393dc2845ab02e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250164
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>
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/401b25c878da7821eda5d3f60b0970d799666659 presubmit: Convert literals to strings before setting env variables. (ehmaldonado@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I58436d0b9f28de3c2847a4d54d182402e93ce8fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250129
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>
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/db1e79c1c5deb122aa3b05de8a83179dfae37446 Fix gclient crash with unicode strings in .gclient files. (dpranke@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I5040dfb486b03e87ed6fea3369df3cebeaf94ba0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250121
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>
Rewrite program instructions so that each value becomes available as
late as possible, just before it's used by another instruction. This
reorders blocks of instructions to reduce them number of temporary
registers in flight.
Take this example of the sort of program that we naturally write,
noting the registers needed as we progress down the right:
src = load32 ... (1)
sr = extract src ... (2)
sg = extract src ... (3)
sb = extract src ... (4)
sa = extract src ... (4, src dies)
dst = load32 ... (5)
dr = extract dst ... (6)
dg = extract dst ... (7)
db = extract dst ... (8)
da = extract dst ... (8, dst dies)
r = add sr dr (7, sr and dr die)
g = add sg dg (6, sg and dg die)
b = add sb db (5, sb and db die)
a = add sa da (4, sa and da die)
rg = pack r g ... (3, r and g die)
ba = pack b a ... (2, b and a die)
rgba = pack rg ba ... (1, rg and ba die)
store32 rgba ... (0, rgba dies)
That original ordering of the code needs 8 registers (perhaps with a
temporary 9th, but we'll ignore that here). This CL will rewrite the
program to something more like this by recursively issuing inputs only
once needed:
src = load32 ... (1)
sr = extract src ... (2)
dst = load32 ... (3)
dr = extract dst ... (4)
r = add sr dr (3, sr and dr die)
sg = extract src ... (4)
dg = extract dst ... (5)
g = add sg dg (4, sg and dg die)
rg = pack r g (3, r and g die)
sb = extract src ... (4)
db = extract dst ... (5)
b = add sb db (4, sb and db die)
sa = extract src ... (4, src dies)
da = extract dst ... (4, dst dies)
a = add sa da (3, sa and da die)
ba = pack b a (2, b and a die)
rgba = pack rg ba ... (1, rg and ba die)
store32 rgba ... (0)
That trims 3 registers off the example, just by reordering!
I've added the real version of this example to SkVMTest.cpp.
(Its 6th register comes from holding the 0xff byte mask used
by extract, in case you're curious).
I'll admit it's not exactly easy to work out how this reordering works
without a pen and paper or trial and error. I've tried to make the
implementation preserve the original program's order as much as makes
sense (i.e. when order is an otherwise arbitrary choice) to keep it
somewhat sane to follow.
This reordering naturally skips dead code, so pour one out for ☠️ .
We lose our cute dead code emoji marker, but on the other hand all code
downstream of Builder::done() can assume every instruction is live.
Change-Id: Iceffcd10fd7465eae51a39ef8eec7a7189766ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249999
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
We have only implemented support for the sample mask. Renaming the cap
to reflect that.
Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>