Commit Graph

60739 Commits

Author SHA1 Message Date
Jason Simmons
3860cfd7b4 Apply styles when painting lines containing only placeholders
See https://github.com/flutter/flutter/issues/104077#issuecomment-1133771312

Change-Id: I7522ecdc943a3629f902369d2116456dc9202bb6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543758
Commit-Queue: Jason Simmons <jsimmons@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2022-05-25 18:47:24 +00:00
Herb Derby
bb43e141ec Move SkGlyphPositionRoundingSpec to Glyph
SkGlyphRunPainter will soon disappear. Move the
SkGlyphPositionRoundingSpec helper class to a better location.

Change-Id: Id6d3db9b149d5c904964552b662b3b85f4a66218
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543918
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-05-25 18:36:27 +00:00
Herb Derby
052566d8cc Remove all uses of SkGlyphRunPainterInterface
Change-Id: I97321a101a246399fca5667718fdaf6778530e6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543917
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-25 17:57:51 +00:00
Herb Derby
4ce55b0c2f Inline all the process* SubRun routines into CategorizeGlyphRunList
At this point all the SlugImpl::process* and TextBlob::process*
routines are the same. Inline the process{DeviceMask|SourcePaths
|SourceDrawables|SourceSDFT|SourceMask} into CategorizeGlyphRunList.

Change-Id: I963033250b2d096a58bc1bc29feed35307643b31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543916
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-05-25 17:00:34 +00:00
Herb Derby
b3a74c7d8b move CategorizeGlyphRunList to TextBlob.cpp
Change-Id: I37290f1cc02db275d30d158a4b98463d75982fbe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543489
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-05-25 16:48:21 +00:00
Lei Zhang
c41f07bd1d Clean up includes in Swizzle.h.
Replace unnecessary includes with what's actually needed to reduce the
build cost.

Change-Id: Ib5b30652f82a34b79ebaa85550dbe5b3ebfae01b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543696
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Lei Zhang <thestig@chromium.org>
2022-05-25 16:01:47 +00:00
Nicolette Prevost
bfc9b94840 Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class
First incremental step to incorporating Perfetto tracing into Skia, more CLs to follow

NOTE: The presubmit check is failing. This appears to be due to the known issue where the presubmit check bugs out if the DEPS file is edited, which it was on this CL (modified to include Perfetto).

Bug: skia:13303
Change-Id: I908be0392b520e8da14b34588b842bf6d955bd93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543081
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
2022-05-25 14:50:57 +00:00
Tyler Denniston
b946b55586 Revert "Create updateResourceLabel method."
This reverts commit 605f92c7d7.

Reason for revert: breaking bots on CQ

Original change's description:
> Create updateResourceLabel method.
>
> In this CL, the GrSurfaceProxy's and GrDrawOpAtlas's label strings
> are plumbed so that it can be stored in the label string of
> GrGpuResource. updateResourceLabel method, which is called from
> setLabel method, will add labels to Skia OpenGL backend using ANGLE's
> labeling API.
>
> Bug: chromium:1164111
> Change-Id: I370715d186357e920d260d624d77586cdddd11e8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541230
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Bug: chromium:1164111
Change-Id: I1f2d8585fefde6b74d23f2ea14d91ee6d3e1e60d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543486
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-05-25 14:36:13 +00:00
Aditya Kushwah
605f92c7d7 Create updateResourceLabel method.
In this CL, the GrSurfaceProxy's and GrDrawOpAtlas's label strings
are plumbed so that it can be stored in the label string of
GrGpuResource. updateResourceLabel method, which is called from
setLabel method, will add labels to Skia OpenGL backend using ANGLE's
labeling API.

Bug: chromium:1164111
Change-Id: I370715d186357e920d260d624d77586cdddd11e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541230
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-05-25 14:02:55 +00:00
skia-autoroll
70e432e727 Roll vulkan-deps from f2e3235f6ca7 to c8893896acff (3 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/f2e3235f6ca7..c8893896acff

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I54b63dd3ed9d390ba4bb213d4279deef73b41686
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543764
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-25 08:26:23 +00:00
skia-autoroll
5934f0e640 Roll ANGLE from 58fd315775c8 to c608df696874 (34 revisions)
58fd315775..c608df6968

2022-05-25 ffz@google.com Code Cleanup
2022-05-25 lfy@google.com Add ffz@google.com to OWNERS
2022-05-25 senorblanco@chromium.org D3D: implement whole-struct assignment in SSBOs.
2022-05-24 lexa.knyazev@gmail.com Fix ValidCompressedSubImageSize for 3D uploads
2022-05-24 m.maiya@samsung.com Vulkan: Bug fix in GL_QCOM_shading_rate
2022-05-24 mark@lunarg.com Add Vulkan backend support for texture labels
2022-05-24 cnorthrop@google.com Capture/Replay: Allow repeated Gen-on-Bind for resources
2022-05-24 jmadill@chromium.org GN: Add angle_build_tests.
2022-05-24 syoussefi@chromium.org Vulkan: Dump graphics pipeline cache graph
2022-05-24 yuxinhu@google.com Revert "util/X11Window: Set PMinSize and PMaxSize hints."
2022-05-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 99a468a0505d to d624307d6d25 (438 revisions)
2022-05-24 hailinzhang@google.com Vulkan: Fix EXT_texture_buffer support condition
2022-05-24 antonio.caggiano@collabora.com dEQP: Support Wayland
2022-05-24 antonio.caggiano@collabora.com Vulkan: Use packed enum for present modes
2022-05-23 cnorthrop@google.com Traces: Update restricted_trace_perf.py
2022-05-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 880c9e0050c6 to 82a65519c521 (5 revisions)
2022-05-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 73679602bc0b to b5cb037f0292 (2 revisions)
2022-05-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f0d8ec07c77f to 99a468a0505d (698 revisions)
2022-05-22 syoussefi@chromium.org Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint
2022-05-22 syoussefi@chromium.org Capture/Replay: Make sure replay tests build libEGL
2022-05-21 ayzhao@google.com Silence all std::iterator deperecation warnings
2022-05-21 syoussefi@chromium.org Drop support for 64xMSAA+
2022-05-21 syoussefi@chromium.org Vulkan: Dynamic state for primitive restart enable
2022-05-20 sunnyps@chromium.org Enable EXT_texture_norm16 on ES2/D3D11
2022-05-20 syoussefi@chromium.org Vulkan: Dynamic state for depth bias enable
2022-05-20 syoussefi@chromium.org Vulkan: Dynamic state for rasterizer discard enable
2022-05-20 syoussefi@chromium.org Vulkan: Optimize pipeline desc w.r.t dynamic state
2022-05-20 m.maiya@samsung.com Account for GL_ANGLE_yuv_internal_format when setting yuv state
2022-05-20 jmadill@chromium.org Move trace loader code to a common location.
2022-05-20 thakis@chromium.org Temporarily disable deprecation warnings for VK-GL-CTS
2022-05-20 senorblanco@chromium.org D3D: fix whole-array assignment to SSBOs.
2022-05-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c37d1e2ab98c to 880c9e0050c6 (19 revisions)
2022-05-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 2933d3126969 to 73679602bc0b (4 revisions)
2022-05-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 170d12460fd5 to f0d8ec07c77f (430 revisions)

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 tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-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
Tbr: tdenniston@google.com
Test: Test: ImageTestES3.SourceYUVTextureTargetExternalRGBSampleYUVSample*
Test: Test: Star Wars: KOTOR MEC
Test: Test: restricted_trace_perf.py
Change-Id: I0643ff0aeb7d1811673a2f76e91a19171dc99e5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543760
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-25 05:51:22 +00:00
skia-autoroll
9b037f4081 Roll Dawn from c45f11ddb539 to f8a3a7c121a3 (9 revisions)
https://dawn.googlesource.com/dawn.git/+log/c45f11ddb539..f8a3a7c121a3

2022-05-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aae529072cf3 to 3ddf465ad15a (6 revisions)
2022-05-24 bclayton@google.com tint: Clean up CMakeLists.txt file list
2022-05-24 bclayton@google.com tint: Implement abstract-numeric materialization
2022-05-24 dsinclair@chromium.org Remove outdated lint suppression.
2022-05-24 bajones@chromium.org Update createView default logic to match spec
2022-05-24 enga@chromium.org Remove device-child wire hack and enable DeviceLifetimeTests on the wire
2022-05-24 enga@chromium.org Move clearing DeviceBase::mQueue from Destroy() to WillDropLastExternalRef
2022-05-24 yunchao.he@intel.com Re-suppress WebGPU expectations
2022-05-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 96612da0dde0 to aae529072cf3 (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bclayton@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: Ibf3cddbba364f703b8d2eb531d7458ddaf454f6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543761
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-25 04:39:30 +00:00
skia-autoroll
45ecc58628 Roll vulkan-deps from aae529072cf3 to f2e3235f6ca7 (5 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/aae529072cf3..f2e3235f6ca7

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers from 1b4f46a3cc69 to 245d25ce8c33
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools from 689140c20446 to 6be9971a3737

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I9f43f9a6bee4fc394056177a4eaff967b2188ebe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543465
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 19:46:54 +00:00
Herb Derby
fb7d1e5d7b Simplfy namespaces in TextBlob
Change-Id: I7ff3cd59401392c55ac27c9da9183fe9a3f62e4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543083
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2022-05-24 19:00:57 +00:00
skia-autoroll
a6ae38df98 Roll SK Tool from 2542e37b1fba to 127d9926e6f5
https://skia.googlesource.com/buildbot.git/+log/2542e37b1fba..127d9926e6f5

2022-05-24 lovisolo@google.com [bazel] Refactor //bazel/cipd -> //bazel/external/cipd.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC erikrose@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Tbr: erikrose@google.com
Change-Id: I05a260ab5bbe6c005e310cdad097fbcfaf595ed5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543463
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 19:00:34 +00:00
Ben Wagner
225c8861b7 [pdf] Differentiate text from byte strings.
In PDF there are two different physical encodings of strings (as a
sequence of bytes). There is the literal string encoding which is
delimited by '(' and ') which stores the bytes as-is except for '(',
')', and the escape character '\' (which can introduce octal encoded
bytes). There is also the hex string encoding delimited by '<' and '>'
and the bytes are encoded in hex pairs (with an implicit '0' at the end
for odd length encodings).

The interpretation of these bytes depends on the logical string type of
the dictionary key. There is a base abstract (well, almost abstract
except for legacy purposes) string type. The subtypes of the string type
are `text string`, `ASCII string`, and `byte string`. The `text string`
is logically further subtyped into `PDFDocEncoded string` and `UTF-16BE
with BOM`. In theory any of these logical string types may have its
encoded bytes written out in either of the two physical string
encodings.

In practice for Skia this means there are two types of string to keep
track of, since `ASCII string` and `byte string` can be treated the
same (in this change they are both treated as `byte string`). If the
type is `text string` then the bytes Skia has are interpreted as UTF-8
and may be converted to `UTF-16BE with BOM` or used directly as
`PDFDocEncoded string` if that is valid. If the type is `byte string`
then the bytes Skia has may not be converted and must be written as-is.

This means that when Skia sets a dictionary key to a string value it
must, at the very least, remember if the key's type was `text string`.
This change replaces all `String` methods with `ByteString` and
`TextString` methods and updates all the callers to the correct one
based on the key being written.

With the string handling corrected, the `/ActualText` string is now
emitted with this new common code as well for better output and to
reduce code duplication. A few no longer used public APIs involving
these strings are removed. The documentation for the URI annotation is
updated to reflect reality.

This change outputs `UTF-16BE with BOM` with the hex string encoding
only and does not attempt to fix the literal string encoding which
always escapes bytes > 0x7F. These changes may be attempted in a
separate change.

Bug: chromium:1323159
Change-Id: I00bdd5c90ad1ff2edfb74a9de41424c4eeac5ccb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543084
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-24 18:46:42 +00:00
Kevin Lubick
88e0e75380 [canvaskit] Fix uniform handling for makeShader and MallocObj
shaders.skia.org was passing in a Malloc'd TypedArray for uniforms
(to avoid unnecessary copying of that buffer on every frame).

However, CanvasKit would always take ownership of that buffer and
free it when the shader was freed. CanvasKit should only take
ownership (and clean up) the uniform buffer if it was not
copied into pre-malloc'd memory.

This also adds a handy make target that builds CanvasKit
and copies it into the proper place in the infra repository
to run the shaders app locally.

See also: https://skia-review.googlesource.com/c/buildbot/+/543436

Change-Id: I6c6b7f94f8c8571f9ce0613ccdd7fceb0f315a12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543416
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-05-24 16:33:17 +00:00
Herb Derby
4c26a927a6 Fix compile error on chrome bots
Change-Id: Ie1d94106a741a9cc51dfd13813f143374392489a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543516
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-05-24 16:08:14 +00:00
Michael Ludwig
0221e79b8b Remove SkNx entirely
Also cleans up the scattered references remaining in the code base
(including in files I thought I got already...).

Change-Id: I7004354b1e9cea9f9d9f45b791d8ab9ce557ba01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542647
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-24 15:57:57 +00:00
Jim Van Verth
a25aeff052 Move GrTextBlobRedrawCoordinator to sktext:gpu namespace.
Also makes SDFMaskFilter available.

Bug: skia:13118
Change-Id: I27ca3ed85a057267387841be5dad10d8e6c7f7bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543079
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-24 15:36:34 +00:00
Michael Ludwig
36b8d05921 [graphite] Add uniforms for transform to stroke render step
Bug: skia:12703
Change-Id: I913a8411ab15f61e61512012061dd9f7fdbb0740
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540857
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-24 15:12:56 +00:00
Kevin Lubick
66ef531e8d [bazel] Temporarily remove IWYU CI job
Appeasing IWYU and the Gazelle-generated BUILD.bazel files is currently
annoying for devs working on non-linux environments.

I have been experimenting with removing the gazelle rules (but still
keeping our BUILD.bazel rules organized), which would alleviate
some of the burden here. Until that is finished, we can stop one
of the two jobs.

Change-Id: Id6c43bd98c6ce41e1ae9a6bfc1102ff47a6e5b1f
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543496
Reviewed-by: Brian Salomon <bsalomon@google.com>
2022-05-24 14:58:10 +00:00
Herb Derby
163db5205d Ref to initialPositionMatrix on SubRun
Remove the need for the Slug/Blob at SubRun creation. This needed
to combine the SkGlyphRunPainterInterface for Slug and Blob.

Change-Id: I8ba1db4590a5db26d1542d025e5414a2625ad88f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543082
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-24 14:46:07 +00:00
Kevin Lubick
e526b7ed68 [canvaskit] Expose Canvas.getDeviceClipBounds()
Change-Id: Ie70e34873e755701fcfb04d0fcedf796ad9a4516
Bug: skia:13347
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543296
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2022-05-24 13:28:25 +00:00
skia-autoroll
8ad30fcbbe Roll Dawn from 318f6acd56c0 to c45f11ddb539 (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/318f6acd56c0..c45f11ddb539

2022-05-24 jie.a.chen@intel.com Add VideoViewsTests.CreateVideoTextureWithoutInitializedData
2022-05-24 brandon1.jones@intel.com Change External Texture YUV-To-RGB Matrix To Be Optional
2022-05-23 cwallez@chromium.org Make Chromium's recurse_deps in Dawn get GLFW.
2022-05-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 82a65519c521 to 96612da0dde0 (1 revision)
2022-05-23 cwallez@chromium.org Add nullable annotations to webgpu.h
2022-05-23 cwallez@chromium.org Roll third_party/webgpu-cts/ e48651de0..9618103c4 (3 commits)
2022-05-23 cwallez@chromium.org CommandAllocatorTests: Fix a couple use-after-move.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bclayton@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I4df16abf6ff98a4004fc54e2bb94b34f306fefc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543185
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 04:40:56 +00:00
skia-autoroll
c00eb65799 Roll vulkan-deps from 96612da0dde0 to aae529072cf3 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/96612da0dde0..aae529072cf3

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I2eebbc8791c557b7a7af4608eb723d15cace1ee0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543183
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 04:02:59 +00:00
Jim Van Verth
791f4bcf3e Fix up Ganesh and Graphite defines.
SK_SUPPORT_GPU needed to be set to 1, and SK_GRAPHITE_ENABLED should
be checked to see if it's defined, not its value.

Change-Id: Ib762c590ceaa570ec98a76558657bbcee672c254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543080
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-05-23 20:51:28 +00:00
Herb Derby
0fcf38ce16 Pass the SubRun storage to draw to be counted in the op
This is a CL to make the APIs for SubRuns more Blob/Slug
agnostic. The aim is to make the process* code for Blobs and
Slug the same.

Change-Id: I087da97ea4c56e5d37619a43b2aa2458bc58914c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542648
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-23 20:47:05 +00:00
Robert Phillips
dfabbfc0e3 [graphite] Add SkCombinationBuilder.h
This is cleanup left over from a prior CL's review. We will want to
use the combination builder outside of graphite.

This CL is mainly just moving stuff around except for the addition
of the SkCombinationBuilder.buildCombinations method and CreateKey
more accessible outside of Graphite.

Bug: skia:12701
Change-Id: If2cae6fcff5670e488bc14473b7b1d2f9b1fecd7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543196
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-05-23 20:26:17 +00:00
Greg Daniel
8fd61eea0d [graphite] Add SkBudgeted field to Resources.
This also adds support for making a Resources unbudgeted state when it
is pulled out of the cache to be used for an SkImage or Surface. It
then puts the resources back as budgeted when returned to the cache.

Bug: skia:12754
Change-Id: I469ace602aa6f5f708b82655e94557ff8ad45a72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/538046
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-05-23 17:59:54 +00:00
Kevin Lubick
7ca19d2a56 [pathkit] Expose res_scale
Bug: skia:13301
Change-Id: I20be23d748afca28012e39dfc62898ac0f25614b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541536
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-05-23 17:46:48 +00:00
Michael Ludwig
767586b330 Update Sk4px to use skvx instead of SkNx
Adds a saturated_add function that was on SkNx and used in
SkXfermode_opts, but hadn't been ported to skvx yet.

Removes the Sk4px_opts variants and simplifies some of its functions;
many were already defined skvx.

The largest change is that Sk4px does not extend skvx::byte16, since it
used to extend Sk16b. Now it just has a vector as a data type. This
was necessary so that we could define operators that were typed for
Sk4px and Wide w/o conflicting with the free operators that were
defined for the base skvx types.

Change-Id: I8c667ba86f662ccf07ad85aa32e78abfc0a8c7ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542645
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-23 17:41:53 +00:00
Jim Van Verth
3149a7b283 Moving GrTextBlob to sktext::gpu
Bug: skia:13118
Change-Id: Id7c92b2e1af9febb3e576c244fcff3aedd27f408
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542646
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-23 17:09:39 +00:00
Michael Ludwig
ccf94835ee [graphite] Flesh out stroke patch writing
Bug: skia:12703
Change-Id: Ic24f7c29583946f29b4b500194f2e951b1037655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540856
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2022-05-23 16:58:40 +00:00
Michael Ludwig
230c535dfe Manual dawn roll
Change-Id: Ib4f2ae63ceee424eb93d098c7cd65e6ea8ac92f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543056
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2022-05-23 16:22:20 +00:00
skia-autoroll
8d7729ee6a Roll vulkan-deps from 82a65519c521 to 96612da0dde0 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/82a65519c521..96612da0dde0

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I818657df0d85d8db4a3bb5c294da27676826c625
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543107
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-23 15:22:53 +00:00
Michael Ludwig
86323276b2 [graphite] Add shell for TessellateStrokeRenderStep
Bug: skia:12703
Change-Id: I9cc44db555a7bb03e4afeaedac4052c796349c5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540621
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-05-23 15:10:06 +00:00
Tyler Denniston
193c16380f Revert "Eliminate DSLPossibleExpression."
This reverts commit f2d000328f.

Reason for revert: breaking google3 roll

Original change's description:
> Eliminate DSLPossibleExpression.
>
> The Possible(Expression|Statement) classes were added at
> http://review.skia.org/375069. These classes were responsible for
> capturing `__builtin_FILE()` and `__builtin_LINE()` when an
> expression or statement was added to a hand-authored DSL program. This
> allowed errors to be reported on the C++ file/line where they were
> encountered. This was a good feature to have, when the plan was to
> author the majority of SkSL code via DSL.
>
> Later, IRNode positions were converted from an integer line number to
> SkSL Positions at http://review.skia.org/518137. This gave us range
> tracking, but at a high memory cost (16 bytes per IRNode, versus four
> bytes when we tracked line numbers only).
>
> Positions were reduced to 8 bytes at http://review.skia.org/521005 by
> removing the filename, which was only used for hand-authored DSL. (The
> size was pared all the way back to 4 bytes at
> http://review.skia.org/533699 by packing the data more efficiently.)
>
> __builtin_FILE/LINE capturing was removed entirely at
> http://review.skia.org/528366; the filename was discarded anyway and
> the line number didn't have a range and wasn't very meaningful without
> a filename. Also, it didn't matter very much since we no longer intended
> to hand-craft our programs in DSL.
>
> At this stage, DSLPossibleExpression stopped adding value and simply
> served to move Expressions around.
>
> Change-Id: I29ac33e08dcc1804cc0619c1e8856ba28ebcc51d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542145
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Change-Id: I33badbdcce8760200246bf50e4932d42721ea952
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543078
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Owners-Override: Kevin Lubick <kjlubick@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2022-05-23 15:04:00 +00:00
Michael Ludwig
8e870728db Update filters to use skvx instead of SkNx
Change-Id: I1a5490f546a3cb046c64b114a30be991d2d9f2cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541064
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-23 14:38:11 +00:00
John Stiles
f2d000328f Eliminate DSLPossibleExpression.
The Possible(Expression|Statement) classes were added at
http://review.skia.org/375069. These classes were responsible for
capturing `__builtin_FILE()` and `__builtin_LINE()` when an
expression or statement was added to a hand-authored DSL program. This
allowed errors to be reported on the C++ file/line where they were
encountered. This was a good feature to have, when the plan was to
author the majority of SkSL code via DSL.

Later, IRNode positions were converted from an integer line number to
SkSL Positions at http://review.skia.org/518137. This gave us range
tracking, but at a high memory cost (16 bytes per IRNode, versus four
bytes when we tracked line numbers only).

Positions were reduced to 8 bytes at http://review.skia.org/521005 by
removing the filename, which was only used for hand-authored DSL. (The
size was pared all the way back to 4 bytes at
http://review.skia.org/533699 by packing the data more efficiently.)

__builtin_FILE/LINE capturing was removed entirely at
http://review.skia.org/528366; the filename was discarded anyway and
the line number didn't have a range and wasn't very meaningful without
a filename. Also, it didn't matter very much since we no longer intended
to hand-craft our programs in DSL.

At this stage, DSLPossibleExpression stopped adding value and simply
served to move Expressions around.

Change-Id: I29ac33e08dcc1804cc0619c1e8856ba28ebcc51d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542145
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-05-23 13:56:41 +00:00
skia-autoroll
d3cbea4114 Roll SwiftShader from 73679602bc0b to b5cb037f0292 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/73679602bc0b..b5cb037f0292

2022-05-20 swiftshader.regress@gmail.com Regres: Update test lists @ 73679602
2022-05-20 penghuang@cromium.org Adjust {min,max}ImageExtent to {0,0} and 4K

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 tdenniston@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: tdenniston@google.com
Change-Id: Ie3f95f4ff0299e02e147beb8de6a9147aa5b0a8e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543037
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-23 04:50:22 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
fb7f03aeac Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: Ib6f8e15be676f5c13bbf709af285da3dbb7bbe8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542976
Commit-Queue: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Bot-Commit: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2022-05-22 08:23:54 +00:00
skia-autoroll
ade84dfd2b Roll vulkan-deps from 5fcdc8144e78 to 82a65519c521 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/5fcdc8144e78..82a65519c521

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC jmbetancourt@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: jmbetancourt@google.com
Change-Id: Iaea55618875075f33e8c51fc53b256f1f69fafa3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542916
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-21 09:03:25 +00:00
John Stiles
7f4a5f2ebb Remove dead code in PossibleStatement/PossibleExpression dtors.
~DSLStatement and ~DSLExpression previously called
`fFragBuilder->codeAppend`. ~DSLPossibleStatement and
~DSLPossibleExpression would convert themselves to DSLStatements and
DSLExpressions (if otherwise unreleased) in order to leverage this
side-effect. DSL FP support was removed at
http://review.skia.org/540301, and those side-effects were removed.
At that point, these destructors became dead code.

Change-Id: Iec801d66b9ee9ea8c93f7c851966af38c6446037
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542526
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-05-21 00:37:06 +00:00
skia-autoroll
0d8b218f8a Roll SK Tool from 97525e74ca36 to d66bc1818def
https://skia.googlesource.com/buildbot.git/+log/97525e74ca36..d66bc1818def

2022-05-20 rmistry@google.com [status] Display repo-specific Gold statuses
2022-05-20 rmistry@google.com [npm-audit-mirror] Add Chromium Dash as a supported project
2022-05-20 kjlubick@google.com [bazel] Make cipd_install take a configurable BUILD file
2022-05-20 lovisolo@google.com [bazel] Install cpython3 CIPD package with cipd_install. Delete CIPD from RBE toolchain container.
2022-05-20 lovisolo@google.com [bazel] Remove vpython-native CIPD package from RBE toolchain container.
2022-05-20 lovisolo@google.com [bazel] Install vpython CIPD package with cipd_install.
2022-05-20 lovisolo@google.com [bazel] Add helpers under //bazel/cipd to get paths to CIPD binaries.
2022-05-20 kjlubick@google.com [task_scheduler] Remove conflicting init configuration
2022-05-20 borenet@google.com [autoroll] Fix comment in meta-config generator
2022-05-20 borenet@google.com [sk] Attempt to automatically derive the bucket for tryjobs

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC jcgregorio@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Tbr: jcgregorio@google.com
Change-Id: Ic9481c703a96cbf4f01242898ffb844fdf4abd49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542724
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 21:32:54 +00:00
Ben Wagner
9ae91aa2c0 [pdf] Reduce nesting in gradient functions.
Previously the function emitted for complex gradients looked like

    if (t <= 0) {
      ret = color[0]
    } else {
      if (t <= stop[1]) {
        ret = interp(t, color[0], color[1])
      } else {
        if (t <= stop[2]) {
          ret = interp(t, color[1], color[2])
        } else {
          if (t <= stop[3]) {
            ret = interp(t, color[2], color[3])
          } else {
            if (t <= stop[4]) {
              ret = interp(t, color[3], color[4])
            } else {
              ret = color[4]
            }
          }
        }
      }
    }

So a gradient with many color stops could end up with extreme nesting of
ifelse. This could cause some viewers to reject the function due to
implementation limits. Even when not rejected the drawing would be slow
due to the linear testing of each range.

Change the function's structure to a binary search with special cases
for the begin and end ranges.

    if (t <= 0) {
      ret = color[0];
      t = 0;
    }
    if (t > 0 && t <= stop[4]) {
      if (t <= stop[2]) {
        if (t <= stop[1]) {
          ret = interp(t, color[0], color[1]);
        } else {
          ret = interp(t, color[1], color[2]);
        }
      } else {
        if (t <= stop[3] {
          ret = interp(t, color[2], color[3]);
        } else {
          ret = interp(t, color[3], color[4]);
        }
      }
      t = 0;
    }
    if (t > 0) {
      ret = color[4];
    }

This change allows gradients with many stops to work in all known
viewers and greatly speeds up their drawing in viewers which did manage
to render with the old function. The function text is slightly larger
with this change, but minimally. If this becomes a size issue it may be
possible to size optimize gradients with few stops in the future.

Props to Bram De Cooman for suggesting this form for the function, the
initial implementation [0], and testing to make sure this approach would
resolve the issue.

[0] https://skia-review.googlesource.com/c/skia/+/540136

Bug: chromium:1316377
Co-authored-by: Bram De Cooman <bram.decooman@gmail.com>
Change-Id: Ib29cbb17220b9c32105b02222c1e1615ce0196bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541639
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-20 21:24:08 +00:00
Herb Derby
5c9d1a90eb Introduce someExcludedGlyphs to align Slug and Blob processing
Change-Id: I82786ace477796afe099dea26e95c295a5a31271
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542637
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-20 20:58:04 +00:00
skia-autoroll
e803e61f4f Roll skcms from dcb0286a1e17 to 9c30a95f0f16 (1 revision)
https://skia.googlesource.com/skcms.git/+log/dcb0286a1e17..9c30a95f0f16

2022-05-20 brianosman@google.com Fix "implicit conversion from 'int' to 'float' may lose precision"

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC brianosman@google.com,jmbetancourt@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: brianosman@google.com,jmbetancourt@google.com
Change-Id: Ibd8f1fc3eec9a853fc766979419e9c4ad5af049d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542718
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 20:43:00 +00:00
skia-autoroll
30cec70bef Roll vulkan-deps from 880c9e0050c6 to 5fcdc8144e78 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/880c9e0050c6..5fcdc8144e78

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-skia-autoroll
Please CC jmbetancourt@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: jmbetancourt@google.com
Change-Id: I7df79c7fd698adc5c94c940f70ef357181744967
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542721
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 20:27:02 +00:00
Michael Ludwig
c43555b2f9 [graphite] Delete unused/refrenced cpp file
Change-Id: I4ea10bd1354d6f68a6940fd48782bfa00bb3b343
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542417
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
2022-05-20 20:10:32 +00:00