Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update skia from m155 to m116 #122

Merged
merged 509 commits into from
Apr 14, 2024
Merged

Update skia from m155 to m116 #122

merged 509 commits into from
Apr 14, 2024

Conversation

mattleibow
Copy link

Description of Change

A smaller update from 115 to 116.

There are no really breaking changes except for the removal of the alpha threshold image filter that appears to not really be used by anyone.

API Changes

Removed:

sk_imagefilter_t* sk_imagefilter_new_alpha_threshold(const sk_region_t* region, float innerThreshold, float outerThreshold, const sk_imagefilter_t* input);

Behavioral Changes

None.

Required SkiaSharp PR

Requires mono/SkiaSharp#2829

PR Checklist

  • Rebased on top of skiasharp at time of PR
  • Changes adhere to coding standard
  • Updated documentation

drott and others added 30 commits June 7, 2023 15:38
Implement makeClone() based on makeFromStream/Data
implementations. Modify SkTypeface_Fontations constructor to accept
SkData instead of stream. Perform stream to data wrapping in
MakeFromStream function.

Modify test case to exercise makeClone() code path.

Bug: skia:14361
Change-Id: Ic87828fe25a3f983c243e527abba87e5acda6447
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708596
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Dominik Röttsches <drott@google.com>
This is just the starting point. I'll expand this in a follow-on CL to include:
  bitmap vs. pictures images
  rotation
  clipping
  fast vs. strict constraints

Bug: b/267656937
Change-Id: Id9edd6b49923d285a78691ba883cef255adc040e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708696
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:9282
Bug: b/283467830
Change-Id: I999f4d321fba78880a411ed627208b0b70a3a381
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/707583
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
There was some leftover code from a mid-CL revision that's no longer
needed. In addition, there was some missing Vulkan code.

Change-Id: Ic09ada84ba7430ac63f6f81910278e5abf5921de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708638
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This adds rotation and the fast/strict constraint into the mix.

Note that strict-constraint drawing of big images appears to be broken.

Bug: b/267656937
Bug: b/286239467
Bug: b/286256104
Change-Id: If62ae3690071fade4eaae3f7a9d6e4f43f0822e1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708797
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Previously, function parameters were used directly in the code.
Now, function parameters are given generic names (`_skParam1`) and
we synthesize variables for parameters which are assigned-to.
For parameters which aren't directly assigned-to, we create a let-
alias to the proper name instead; this shouldn't actually generate
any extra backend code.

Bug: skia:14356
Change-Id: I8813fda0c1d2ed862463019bba760ec053f4380d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708698
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This is a trivial statement, mirroring GLSL exactly. It unlocks two
additional tests.

Change-Id: I17e47029cd53068bb832df6d119eac0af05114fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708796
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
When we have determined that a for-loop has a fixed number of
iterations, we can move its termination check into the
`continuing` block. This saves one comparison, and also makes
the code read slightly more like idiomatic/user-authored WGSL.

Change-Id: I941c8b8eb3389af532611c0eac08a415c5cb5289
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708798
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Rotated NN is failing on the following bots:
  Win10/D3D
  Win10/ANGLE D3D11 ES
  Win10/Vulkan
  Win10/OpenGL

Bug: b/267656937
Change-Id: I0dbc4ae809a390685e5d92b157875b3350312f21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708976
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: chromium:1425773, skia:9378
Change-Id: I78f9c4854de8daece9473cb4542e02e3df875cee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/707584
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This moves all asFragmentProcessor methods from the src/shaders
and src/shaders/gradients into GrFragmentProcessors. As a requirement
to do so, all shaders have had a public header made with the class
declaration. Many classes required new getters to expose some
fields for the construction of the GrFragmentProcessor. I briefly
toyed with the idea of using friend functions, but decided against
it for 2 reasons: 1) the syntax was verbose and gnarly; 2) the
syntax would make the functions of GrFragmentProcessors callable
from other places and not be static / contained to just
GrFragmentProcessors.cpp.

Other notable changes:
 - SkShaderBase::GradientType::kColor removed, as it has been
   superseded by SkShaderBase::ShaderType::kColor for detecting
   "is this a color shader?" Callsites that needed the color
   now cast it to SkColorShader
 - SkPerlinNoiseShader class removed from public API
   (Chromium migrated in https://crrev.com/c/4591270) and
   used internally instead of SkPerlinNoiseShaderImpl for closer
   alignment with the ShaderType enum.
 - SkPerlinNoiseShader::PaintingData no longer uses #ifdefs
   to make the bitmaps for the GPU backends, but this is now
   explicitly done in a function generateBitmaps().
 - SkShaderBase::MatrixRec has been moved to the SkShaders
   namespace and had the Ganesh-specific apply() changed to
   applyForFragmentProcessor(). The Ganesh-parts (e.g. the creation
   of the GrMatrixEffect) were made the responsibility of
   the caller (e.g. in GrFragmentProcessors.cpp).
 - I thought it was strange that SkBitmapProcShader.h (but not
   the .cpp) was in public.bzl. I made that not necessary by
   #ifdef'ing the one include that was necessary removing
   other unnecessary ones. This is because G3 sets
   SK_DISABLE_LEGACY_SHADERCONTEXT

The following shader subclasses did not appear to have Ganesh
implementations and that is still the case:
 - SkEmptyShader
 - SpriteShader (appears SkVM only)
 - DitherShader (appears SkVM only)
 - SkTransformShader
 - SkTriColorShader
 - SkUpdatableColorShader

I enforced IWYU on src/shaders and all other new files I created
in this CL. This had some impact in wider files, but I do not
expect it to impact clients as no public #includes had #includes
removed.

Suggested Review Order:
 - SkShaderBase.h/.cpp, noting that much of the .cpp came from
   SkShader.cpp
 - GrFragmentProcessors.cpp, glancing at the relevant subclass
   .h and .cpp changes as necessary
 - SkPerlinNoise* and GrPerlinNoise* to make sure I didn't overlook
   something in the refactor/extraction
 - Another pass through other changes in src/shaders and
   src/shaders/gradients
 - All other files in any order.


Change-Id: Icf3db955d0653f97d7c793b167463162fb70d9f2
Bug: skia:14317
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/706216
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
https://chromium.googlesource.com/vulkan-deps.git/+log/5c35de42bbc6..c5a1402a455f

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+log/17d00edd97f11cbca0706e9d1316833f2bd60b2f..030d0be28c35bafebd20660c112852b1d8c8c6ca

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 borenet@google.com,skiabot@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: borenet@google.com
Change-Id: Ide82b10ee0d9cb607e274eabc0ec0a67a71bc1e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709076
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
https://dawn.googlesource.com/dawn.git/+log/fd2d24b01b67..d7b8efa431ad

2023-06-08 jrprice@google.com [ir][spirv-writer] VarForDynamicIndex transform
2023-06-08 jrprice@google.com [tint][utils] Add Offset and Truncate to Slice
2023-06-07 jrprice@google.com [ir][spirv-writer] BlockDecoratedStructs transform
2023-06-07 jrprice@google.com [tint][utils] Allow assignment of Slice to Vector
2023-06-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 1ad4ae4d63bf to 15a29438b099 (3 revisions)
2023-06-07 dsinclair@chromium.org [ir] Emit disassembly from the validator
2023-06-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from fc3439e6ae3f to 34f70fba9bab (31 revisions)
2023-06-07 bclayton@google.com [tint][ir] Add ControlInstruction
2023-06-07 jrprice@google.com [ir] Emit struct declarations in the disassembly
2023-06-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2780cb0b46f9 to 1ad4ae4d63bf (3 revisions)
2023-06-07 enga@chromium.org Revert "d3d11: Enable TextureZeroInitTests"
2023-06-07 enga@chromium.org More dawn:: namespacing cleanups
2023-06-07 bclayton@google.com [tint][ir] Add Initializer block to ir::Loop
2023-06-07 bclayton@google.com [tint][ir] Add Front() and Back() accessors to Block

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 cwallez@google.com,senorblanco@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;skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn
Bug: None
Tbr: senorblanco@google.com
Change-Id: Ibaff36aafbf8097079dced25fde281ef3534edef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709078
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
https://skia.googlesource.com/buildbot.git/+log/b54c2bdc9713..03004105c7e9

2023-06-07 sunpeng@google.com Fetch the response content of Pinpoint API.
2023-06-07 jcgregorio@google.com [perf] Split up writeTracesChunkSize into 3 constants.
2023-06-07 jcgregorio@google.com Move Gold to auth-proxy.
2023-06-07 aam@google.com Use better option to run regex-heavy dart license script.
2023-06-07 eduardoyap@google.com Show Anomaly icon in plot and display info when selected.
2023-06-07 funing@google.com Don't react to keyboard shortcut if query/bisect dialog is on.
2023-06-07 funing@google.com Update scss file to make bisect dialog broader
2023-06-07 borenet@google.com [autoroll] Add --gen-k8s-config flag to autoroll-be
2023-06-07 borenet@google.com [autoroll] Don't crash-loop if there are no matching GCS files
2023-06-07 borenet@google.com [autoroll] Skip RevisionFilters if the revision is already invalid
2023-06-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from b8f3bbf465f8 to b54c2bdc9713 (10 revisions)

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

To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/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

Bug: None
Tbr: kjlubick@google.com
Change-Id: If851d10d55529eb738865d57aca9677296a230bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708538
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
https://skia.googlesource.com/buildbot.git/+log/03004105c7e9..fc3aec58c346

2023-06-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from b54c2bdc9713 to 03004105c7e9 (11 revisions)

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 kjlubick@google.com,skiabot@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: kjlubick@google.com
Change-Id: Id2e571c20fd9d2669402cffa9b3a59b26d683480
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709081
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/angle/angle.git/+log/1ad4ae4d63bf..bc66167d304a

2023-06-08 prashanthsw@google.com Disable the roll of 'android_ndk'
2023-06-08 ianelliott@google.com Galaxy A23: add end2end expectations for crashing tests
2023-06-08 ianelliott@google.com Android: Galaxy A23 support
2023-06-07 prashanthsw@google.com Migrate Android NDK to CIPD [1/2]
2023-06-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 0c2e936905ea to f7613775cdc7 (3 revisions)
2023-06-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9e0b5e8b8a85 to fe5f79e217c4 (537 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 borenet@google.com,jmadill@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:Build-Mac-Clang-arm64-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: borenet@google.com
Test: Test: Verified local builds of ANGLE.
Change-Id: I66bcca0e32b98a14849373aa3c8cf8b3b3df5561
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709080
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
I added this during the refactor https://skia-review.googlesource.com/c/skia/+/706216
but it appears that it can happen in certain circumstances

Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext
-> gl gm  localmatrix_order

Change-Id: I21b6e7a51841e1c4c0ef9543d2a3117e894dfdec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709156
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I3462fe5aca4bea3b97ad345a9e861769b6c3f83f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/702096
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
Auto-Submit: Nicolette Prevost <nicolettep@google.com>
The legacy SkXfermode blend implementations relied on
`Sk4px::approxMulDiv255`, which ended up in `SkVx::approx_scale`.
Interestingly, `SkVx::div255` is exact (just `(x + 127)/255`), where
RP's div255 has a +/-1 bit approximation on non-NEON.

`approx_scale` also has this same error, but leads to better behavior
when blending. Particularly in the case of the linked bug where
repeated dstout blends were taking an unexpectedly long time to
saturate at `a=0`.

For example, lets say we start with an opaque da=255, and a near opaque
source sa=250. Repeated iterations of the RP dstout produces:
    `(255*(255-250) + 255)/256 = (6*255)/256 = 5`
    `(  5*(255-250) + 255)/256 = 280/256     = 1`
    `(  1*(255-250) + 255)/256 = 260/256     = 1`
    ... and it's stuck at `a=1`

Using the `approx_scale` instead produces the series:
    `(255*(255-250) + 255)/256 = (6*255)/256 = 5`
    `(  5*(255-250) +   5)/256 = 30/256      = 0`

The exact math would produce:
   `(255*(255-250)/255.0 = 5.0` or
       `(255*(255-250) + 127)/255 = 1402/255 = 5`
   `(  5*(255-250)/255.0 = 0.098` or
       `(  5*(255-250) + 127)/255 = 152/255  = 0`

Instead of making an RP clone of approx_scale, this just switches
the blend modes that historically had used approx_scale to use
div255_accurate.

Bug: chromium:145083
Change-Id: Ibe8120461ea7bcd056cea5c60985dd16e8265f54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708229
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Semaphore support will be needed to get Vulkan working in Viewer.
The Caps flag will be turned on for each backend once it's fully
working in that backend.

Bug: b/286088355
Change-Id: I83b6436f8484bc944ddc2def0e84afe1e3aa90f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708120
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
In practice, every call site was operating on an empty array, so
this was a straightforward fix. (In one case, it was not necessarily
clear that the array would be empty--even though it would in fact be
empty in practice--so I added array.size() anyway, just in case.)

Bug: skia:14316
Change-Id: I126e475fd5417f72c8f7495de37860c2273476f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709157
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
https://chromium.googlesource.com/vulkan-deps.git/+log/c5a1402a455f..dbc2d4fbc1cf

Also rolling transitive DEPS:
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/59b4febd819977b440692674f6a862d6d17731b5..1d7dec3c51dfcecaf10036448e9709ae02f877e5

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 borenet@google.com,skiabot@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: borenet@google.com
Change-Id: I66d96036df7e51bbffde2861865417b1edaa1c7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709239
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: skia:14076
Change-Id: I7ecd40c644f8a25e5778f8a38de3e697e11c82ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/639656
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: b/267656937
Change-Id: I5c4d05ee0a2389897a0b0693ffee0f2b8c7b930f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708936
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
For external memory import, compatible memory types are decided by the
Vulkan driver since the memory has been allocated externally. There are
usually special requirements against external memory. e.g. AHB allocated
with CPU R/W often usage bits is only importable for non-device-local
heap on some AMD systems.

Bug: b/285941817
Test: no crash in various cts
Change-Id: I93e27446ebb20e51bcea80f3af1fe3a533788206
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709099
Auto-Submit: Yiwei Zhang <zzyiwei@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Change-Id: Iaa3b6183e8eb1cf17ec3a270dfbd384e7ad5d201
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709200
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This necessitates recursively building up the comparison expression,
since WGSL only natively supports scalar and vector comparisons.
This can generate very large programs from small inputs when large
arrays are compared; WGSL is no different from the SPIR-V codegen
or glslang in this regard.

This change also exposed a WGSL issue that I wasn't aware of;
uniform arrays of scalars are not supported. (skia:14370) This leads
to error reports at the top of ArrayComparison.wgsl and
StructComparison.wgsl, because they both reference the `testArray`
uniform. However, this isn't related to the feature being added in
this CL.

Change-Id: Iee30e290cb116650af30834f478ddf956bcc8df9
Bug: skia:14082
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708977
Reviewed-by: Arman Uguray <armansito@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
As of http://review.skia.org/700799, WGSL now uses the shared test
file at `shared/LogicalOrShortCircuit.sksl` instead of maintaining
a simplified WGSL version.

Bug: skia:14082
Change-Id: I850d3b15bcd534711f9fa9cfe5e8f94f73d21da4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709202
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
This uncovered one real bug (skia:14372) where I preserved the
existing behavior since it is in performance-sensitive code. This
will be investigated further by the author (sky@).

In a few cases, I chose TArray::reserve as it seemed to be a
better fit for the intent of the surrounding code.

Bug: skia:14316
Change-Id: I203edb5ee8ecc9aa6c5b0ebdbd1ecc2a3d6b81ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708392
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Herb Derby <herb@google.com>
We now have `TArray::reserve`, which matches the behavior of
`vector::reserve`, and `TArray::reserve_exact`, which reserves
the exact number of elements that the user asks for.

Bug: skia:14316
Change-Id: I284e7cbe99e52d2c2fafd42204df7a7ab0aa994b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709203
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Herb Derby <herb@google.com>
gz83 and others added 27 commits June 20, 2023 14:39
Bug: skia:14392
Change-Id: Ie57e59adb298ab6577866bafddeed369cef0a1d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/713236
Auto-Submit: Ho Cheung <uioptt24@gmail.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
SkRP programs will no longer contain stages which fill in constant-
variable slots. Instead, we now have an `store_immutable_value`
instruction which fills in a slot with the desired value at
program-initialization time, but does not emit a Raster Pipeline
stage.

Change-Id: I1a8ead0f995dfa9a4b04e2aae41d1fc4246fff90
Bug: skia:14386
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/711823
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
If a variable has a compile-time-constant initial-value, and is
never written-to elsewhere, we can treat it as immutable whether
or not the author of the code used the `const` modifier.

Bug: skia:14386
Change-Id: I00f8f32593534b5273de83dde05738fc084a017e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712767
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Divide-by-zero was already being handled correctly in subsequent code.

Bug: oss-fuzz:59924
Change-Id: I8866c43c65f64a623bb13f8572f84b028c106fd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714058
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
We never updated the index range when AlphaThreshold was removed, so
many fuzzers would assert in debug builds.

Change-Id: I6a2032ca9515fcd8556ee13cdff87cbab135da62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714059
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
It looks like std::isfinite might produce slower code,
but it is not clear. Change it back to see if performance
reverts back.

sk_float_isfinite(float):                 # @sk_float_isfinite(float)
        movd    eax, xmm0
        not     eax
        test    eax, 2139095040
        setne   al
        ret

// std::isfinite
.LCPI5_0:
        .long   0x7fffffff                      # float NaN
        .long   0x7fffffff                      # float NaN
        .long   0x7fffffff                      # float NaN
        .long   0x7fffffff                      # float NaN
.LCPI5_1:
        .long   0x7f800000                      # float +Inf
test3(float):                              # @test3(float)
        andps   xmm0, xmmword ptr [rip + .LCPI5_0]
        ucomiss xmm0, dword ptr [rip + .LCPI5_1]
        setne   al
        ret

Change-Id: Ibafc8b82c38bb86f7a157b28cf4ad88205839309
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714057
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
The bulk of the fix was in skia CL 712277 which harden
the quadratic solver.

Add a nicer API that takes points, and calculates
the coefficients using doubles.

This is a reland of commit 46d65bb

Original change's description:
> Quad intersections for glyph underlines
>
> Introduce Intersect that takes two quadratics, and a
> toIntersect value. It finds the roots that intersect
> toIntersect in the first quadratic, and then uses those
> roots to generate values from the second quadratic.
>
> Use Intersect to implement underline for glyphs with
> quadratic curves.
>
> Bug: skia:14252
> Change-Id: I48c4f3edf687c0bfef3a6110251e3e34062d3b39
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/708379
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Bug: skia:14252
Change-Id: I197238285db880246b960a874f096ba86ca56295
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712437
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I48e80f3d011b7e09b740490985ba4092d9ee6783
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/713776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Wtih this CL, we attempt to use the fallback color type and backend
format in SurfaceContext::asyncRescaleAndReadPixels before bailing.

credit: thanks to vasilyt@ for pointing out the color fallback code
in GrCaps and explaining that this was the reason the async rescale
and read actually succeeded and to dtapuska@ for suggested looking
at the validity of the backend format in the needsRescale block.

Bug: skia:14389
Change-Id: I81f2e18fb5cafb4466920450795ccbeddceb9808
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712766
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ian Vollick <vollick@chromium.org>
Bug: oss-fuzz:59927
Change-Id: Ib5f8597bb8443dd7fcb295e5da34434825ad0738
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714056
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Add two gradient shader GMs that apply the shader paint to a Bezier
curve. This is to test the correctness of atlas path renders.

Bug: b/280927575
Change-Id: I63bc0bc568dc1c2cdade49d7837b1c37653041a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712677
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
Bug: skia:9282
Bug: b/263137049
Change-Id: I20fd6a5b626d67e37cf0c67d2d2a4c4cab277aab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712762
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:9282
Bug: b/263138152
Change-Id: Ie3f6183d3ba4982cbf2c345962a5d693c0ffb748
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/711687
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
This reverts commit bb74b51.

Reason for revert: Chrome roll

Original change's description:
> Remove SkScalarToFloat and SkFloatToScalar calls
>
> Change-Id: I48e80f3d011b7e09b740490985ba4092d9ee6783
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/713776
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

Change-Id: I17cf44deb18b02ecdeb7aa8fd339a232c1bdb9c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/713942
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Change-Id: I49d529ec55de8f696782c9cd4ec4519e3652cb78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714376
Commit-Queue: Chris Mumford <cmumford@google.com>
Auto-Submit: Rakshit Sharma <sharaks@google.com>
Reviewed-by: Chris Mumford <cmumford@google.com>
Change-Id: I8aa16d614a7cffb9843740add7644f1f24fa1bf1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/714378
Auto-Submit: Rakshit Sharma <sharaks@google.com>
Commit-Queue: Chris Mumford <cmumford@google.com>
Reviewed-by: Chris Mumford <cmumford@google.com>
This code was developed while building with msvc and clang adds some
additional checks. Discovered while working on
https://skia-review.googlesource.com/c/skia/+/714502 but should land
separately.

Change-Id: Ic3f6bf7bc7a458750ba0716040c4579025b859a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/718237
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
(cherry picked from commit 6e2a2f6)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/718557
Correctly convert the colors in the palette overrides and portably
assign to DWRITE_COLOR_F.

Change-Id: I9fb6c5ea3a41d230b21b276be9f0ed2f8cdf1458
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/718977
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
(cherry picked from commit c60ac28)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/719018
Auto-Submit: Ben Wagner <bungeman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
For excessively large crop rects, isEmpty() was returning true when
the width or height overflowed. isEmpty64() just checks left < right
and top < bottom, which makes it consistent with SkRect::isEmpty().

The large crop rects are now allowed through, and when they are
intersected with the desired output, become reasonable and usable.
Previously they were causing the entire operation to be dropped.

In the event that somehow we try to create a backing image for a
layer irect that is this large, but was previously being rejected with
the 32-bit isEmpty(), the width and height will still be negative and
image allocation will fail, which is still guarded.

Bug: chromium:1466359
Change-Id: I3045773e111bbb779826e155ea26da13212481bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/728676
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
(cherry picked from commit e99aea2)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/728958
Reviewed-by: John Stiles <johnstiles@google.com>
…0 GPUs.

This CL cherry-picks https://skia-review.googlesource.com/c/skia/+/729803.

Bug: b/40045524
Change-Id: I481a14ccdf4b75dfa6f18255d63aa067ada4987f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/732976
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Auto-Submit: Leandro Lovisolo <lovisolo@google.com>
Bug: chromium:1464215
Change-Id: I264d248f78b9991e2d49d9e42dcffe706e961518
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736359
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ic0ca6976759595e2a105f6fe6facffe4fceb397a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/718456
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
(cherry picked from commit 34f5d27)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746768
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
As per the linked bugs, this was causing a severe performance
regression.

Change-Id: Ibacf842408cee1eb434795437c8bbe0dc5244c8e
Bug: b/291711510, chromium:1475906
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750403
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
(cherry picked from commit 02fa147)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751516
…> APIs"

This reverts commit 37822b7.

Reason for revert: merge had not been approved

Original change's description:
> Fix unintentional cpu_sync=true and deprecate sk_sp<SkSurface> APIs
>
> As per the linked bugs, this was causing a severe performance
> regression.
>
> Change-Id: Ibacf842408cee1eb434795437c8bbe0dc5244c8e
> Bug: b/291711510, chromium:1475906
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750403
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Kevin Lubick <kjlubick@google.com>
> (cherry picked from commit 02fa147)
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751516

Bug: b/291711510, chromium:1475906
Change-Id: I77f1f786491da32e784669d26febb4902d7a4a9a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751576
Owners-Override: Kevin Lubick <kjlubick@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Change-Id: I1cd488c184bf82a1a03d12a754cba9fdf4394baf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/772440
Reviewed-by: Heather Miller <hcm@google.com>
@mattleibow mattleibow merged commit 8684edb into skiasharp Apr 14, 2024
1 check passed
@mattleibow mattleibow deleted the dev/update branch April 14, 2024 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.