Commit Graph

61277 Commits

Author SHA1 Message Date
Greg Daniel
884a5240f6 Fix freeing of resources on imported AHB in MultiPictureDocumentTest.
Bug: skia:13445
Change-Id: Idab8d0fb581df75dc87785991e1bb2b5af303c05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556023
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-07-07 14:40:47 +00:00
Greg Daniel
6db6110a10 Have all vulkan android bots use API 26.
We have unit tests that require api 26 to run, but we have no vulkan
bots that would run them. API 26 is supported on all O devices and I
don't think we'll ever want to run Vulkan on previous android devices.
So I think it is fine for us to just test at api 26 for all our test
bots.

Change-Id: I8f92af6504960b7b688281ad71f5f307fdf57f49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556028
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-07-07 13:19:58 +00:00
John Stiles
82e0cef747 Revert "Simplify uniform padding in Metal (Ganesh)."
This reverts commit eaecd17d7a.

Reason for revert: works fine in practice, but with a debugger attached, the MTL built-in debug pipeline assertions trigger and report size issues e.g.:

Vertex Function(vertexMain): argument _anonInterface0[0] from buffer(0) with offset(0) and length(72) has space for 72 bytes, but argument has a length(80).
Fragment Function(fragmentMain): argument _anonInterface0[0] from buffer(0) with offset(0) and length(72) has space for 72 bytes, but argument has a length(80).


Original change's description:
> Simplify uniform padding in Metal (Ganesh).
>
> Previously, we would pad Metal uniforms to the nearest 16-byte size if
> they contained a float3, float4, or matrix type. This does not appear
> to be necessary (all tests pass without this level of padding).
>
> Since Metal is C++ based, it does have *some* struct padding, based on
> the basic type in the structure with the highest bit-width. Rather
> than track this amount, we just assume that it is 8 and round up
> Metal uniform blocks to the nearest 8-byte size. This will ~never be
> larger than our previous padding, since a typical Skia shader will
> generally always include a float2 uniform or larger (e.g. RTFlip is
> a float2), and will probably be tighter than before since most shaders
> include a color (float3/float4) or matrix uniform.
>
> Change-Id: Ic8dd49f33cb81a24a6415e9ba6e91c9f6faeb1b1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556216
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

Change-Id: Ib7749d09e603fb91b1c3f9ff706512b0205d2f16
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556357
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-07-07 13:17:03 +00:00
Ben Wagner
b950ac6d45 Optional OT-SVG support for DirectWrite.
This does not yet support gzip'ed svgDoc. DirectWrite just hands back
the raw svgDoc data here which may be in any format. It does not attempt
to check for the gzip header or flate the contents. Skia will eventually
need to do this itself for full support. At the moment glyphs which are
backed by a gzip'ed svgDoc will fall back to outlines.

Change-Id: I34a92b2285189ecdbdbc6a8b2a668bd4935bca15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541061
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-07-07 12:54:16 +00:00
skia-autoroll
7dae3ab350 Roll vulkan-deps from 6745d5386850 to c119749eff1f (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/6745d5386850..c119749eff1f

Also rolling transitive DEPS:
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools from dcee3a5de0e2 to 05de65037136

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 robertphillips@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: robertphillips@google.com
Change-Id: I02d9ff3e8fe079d53cbdbaf55f477e0488784dab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556399
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-07 09:21:22 +00:00
skia-autoroll
7a78e3ff4f Roll ANGLE from 5a65a2b1c688 to afcca86c6da3 (6 revisions)
5a65a2b1c6..afcca86c6d

2022-07-07 b.schade@samsung.com Fix ValidateCompressedTexSubImage3D compressed format check
2022-07-07 lehoangquyen@google.com Metal: Allow Surfaces to be created without depth & stencil
2022-07-07 syoussefi@chromium.org Vulkan: Resolve GoogleX MSRTSS conflict with EXT
2022-07-06 m.maiya@samsung.com Vulkan: min/mag filters follow chroma filter value
2022-07-06 eddiehatfield@google.com Merge getTempPath and CreateTemporaryFile
2022-07-06 rafael.cintron@microsoft.com Handle OOM in SwapChain11::getRenderTargetShaderResource

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 robertphillips@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: robertphillips@google.com
Change-Id: Iab8d17c8d471cc45d3721975fef095faa4a47dd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556397
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-07 05:56:56 +00:00
skia-autoroll
c541297166 Roll SwiftShader from 7987bda077c8 to 1d6a1036bdb3 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7987bda077c8..1d6a1036bdb3

2022-07-06 sugoi@google.com Always perform depth test using floating point values
2022-07-06 swiftshader.regress@gmail.com Regres: Update test lists @ 7987bda0

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 robertphillips@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: robertphillips@google.com
Change-Id: Iddcc6c88fb6e55b3432711b030f3fec753b6458a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556398
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-07 04:50:02 +00:00
skia-autoroll
25e2d505d9 Roll Dawn from 871c213d1b23 to 2c7440a13f5e (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/871c213d1b23..2c7440a13f5e

2022-07-07 zhaoming.jiang@intel.com tint: Implement f16 value binary representation
2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 488cb63b5b4d to 1d6a1036bdb3 (1 revision)
2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 34e0281e9664 to 6745d5386850 (1 revision)
2022-07-06 dneto@google.com Fix relative reference to docs/building.md
2022-07-06 dsinclair@chromium.org Roll third_party/webgpu-cts/ 5de908c54..8cfc317e2 (1 commit)
2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 9070e279a887 to 3e5de4acc1fa (4 revisions)
2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 7987bda077c8 to 488cb63b5b4d (1 revision)
2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5d976018641e to 34e0281e9664 (8 revisions)

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 dsinclair@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: dsinclair@google.com
Change-Id: I549813ed413a3190770dbc249db4cc3f6d90da1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556396
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-07 04:36:41 +00:00
Herb Derby
45600771c2 Add STSubRunAllocator, an inline SubRunAllocator
Bug: oss-fuzz:48695
Bug: oss-fuzz:48690
Change-Id: I9fb634df54f8e1e7dee84036e2be2512d7a395d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556030
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-07-07 00:42:22 +00:00
John Stiles
f0f4277443 Add UniformManager tests for mixed 16/32-bit scalar/vector packing.
Thankfully, this was already working; no changes in the uniform manager
were needed.

Change-Id: Ic2c4807e8efa63a05127d6f96d8a58ce785bbc1e
Bug: skia:13478
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556316
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-07-06 20:59:25 +00:00
skia-autoroll
f899fcfe4d Roll vulkan-deps from 5d1ce362f85f to 6745d5386850 (26 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/5d1ce362f85f..6745d5386850

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross from e6925974d1ff to d8d051381f65
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers from 36c0c1596225 to 0bcc624926a2
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools from 66d88508dd31 to dcee3a5de0e2
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers from 3be1df310be8 to 2c823b7f2759
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools from 4643f73ec79d to 1987cb233183

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 robertphillips@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: robertphillips@google.com
Change-Id: I5de66d6daebb8776b980ca7d1129552581fd9b21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556296
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-06 20:37:35 +00:00
John Stiles
db253e24a2 Do not optimize away intrinsics with non-finite results.
Previously, we would treat double values outside [-FLT_MAX, FLT_MAX]
as finite. In practice, this introduces many hazards; any place in the
code which handled the double value as a float would silently convert
the value to infinity. This includes high-traffic calls like
Literal::MakeFloat.

Note that the if checks are structured in a slightly awkward way to
ensure that NaNs are treated as non-finite.

The original buggy behavior can be seen at http://review.skia.org/556078

Change-Id: Ic126afe57c3d6c7aa3edf9c8f7e339abc5f77739
Bug: oss-fuzz:48592
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556080
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-07-06 20:37:29 +00:00
John Stiles
eaecd17d7a Simplify uniform padding in Metal (Ganesh).
Previously, we would pad Metal uniforms to the nearest 16-byte size if
they contained a float3, float4, or matrix type. This does not appear
to be necessary (all tests pass without this level of padding).

Since Metal is C++ based, it does have *some* struct padding, based on
the basic type in the structure with the highest bit-width. Rather
than track this amount, we just assume that it is 8 and round up
Metal uniform blocks to the nearest 8-byte size. This will ~never be
larger than our previous padding, since a typical Skia shader will
generally always include a float2 uniform or larger (e.g. RTFlip is
a float2), and will probably be tighter than before since most shaders
include a color (float3/float4) or matrix uniform.

Change-Id: Ic8dd49f33cb81a24a6415e9ba6e91c9f6faeb1b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556216
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-07-06 19:57:04 +00:00
skia-autoroll
6d57262159 Roll ANGLE from 9070e279a887 to 5a65a2b1c688 (6 revisions)
9070e279a8..5a65a2b1c6

2022-07-06 syoussefi@chromium.org Fix samples' arguments to SampleApplication
2022-07-06 antonio.caggiano@collabora.com Vulkan: Wayland resize callback
2022-07-06 chris@rive.app Add a test that passes image2D handles as function args
2022-07-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d1116fa9e9dc to 7987bda077c8 (1 revision)
2022-07-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 24ed8b7a6bd7 to 34e0281e9664 (9 revisions)
2022-07-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 532c25a8e2ac to 0820cef93768 (270 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 robertphillips@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: robertphillips@google.com
Change-Id: If1e3c9e98eed92d5d94172fbe2e8dccf15770d97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556098
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-06 19:17:53 +00:00
Arman Uguray
bed73de474 [sksl][spirv] Prevent unreachable blocks in loops
- Do not output statements that follow a continue/break statement
  inside loop block.
- Avoid writing an unreachable block when writing do-while statements.

Bug: skia:13484
Change-Id: Ifeac58b6dbd58e2fab7ca7b0233676f2b4bc0260
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555657
Commit-Queue: Arman Uguray <armansito@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2022-07-06 18:50:38 +00:00
Brian Osman
ad62d59450 SkVertices: Fix out-of-memory errors in deserialization
It was easy to construct a buffer that indicated enormous amounts of
memory had to be allocated. An easy guard is to bail out if the buffer
can't possibly fill those buffers.

Simplify the code a bit: Four years ago (well past the earliest
supported SKP version), we stopped writing out triangle fan data (by
converting to tri-lists at construction time). Remove the
deserialization support, which makes the code easier to follow.

Bug: oss-fuzz:48228
Bug: oss-fuzz:48231
Change-Id: I941da595a250f940316a48cb54caeaec47768973
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556021
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-07-06 18:38:46 +00:00
Ben Wagner
32871e6901 Use os.path.normcase in git-sync-deps
Avoid strange issues with path case insensitivity on Windows with
os.path.normcase.

Change-Id: I9327ba9c22cf5e3ff66b49af56bedd223b24efd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556025
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-07-06 18:32:50 +00:00
Ben Wagner
ae7ec913ca Add a gzip'ed svgDoc to SampleSVG.ttf
The OT-SVG specification allows individual svgDoc inside the SVG table
to be optionaly gzip'ed. Add a glyph to SampleSVG.ttf which uses a
compressed svgDoc so that this can be tested.

This font crashes vanilla FreeType 2.12.0 and 2.12.1. This issue was
fixed with [0] and backported to Debian in 2.12.1+dfsg-3 [1].

[0] c26872ed59
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013094

Change-Id: I45e115a743b8aa4d545f34c9668597d22e0a2bf4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/545779
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-07-06 17:59:18 +00:00
Robert Phillips
4a3521e119 Revert "Guard against divide-by-zero in drawing of last resort"
This reverts commit 7f8303d25a.

Reason for revert: red Graphite bots

Original change's description:
> Guard against divide-by-zero in drawing of last resort
>
> Exit early if there will be a divide by zero or if no pixels are
> to be drawn. Report that some glyphs have been excluded.
>
> Bug: oss-fuzz:48695
> Bug: oss-fuzz:48690
> Change-Id: Ifdb0fad656ffc27bac7253035c7cd05ee96c274c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556018
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Bug: oss-fuzz:48695
Bug: oss-fuzz:48690
Change-Id: I3342fc75ff3ba48db941f71d4abdfbfbe62fa589
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556081
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Robert Phillips <robertphillips@google.com>
2022-07-06 17:11:13 +00:00
Ben Wagner
2bc5447527 Let PDF know when TrueType isn't TrueType.
FreeType reports that the type of a font is TrueType when the font is
logically TrueType. However, the underlying data may not be TrueType and
may be encoded in woff or woff2. The raw woff or woff2 data should not
be embedded in the PDF. If the tables are accessed individually it is
possible to subset them into a TrueType font. However, the subsetters
are not currently capable of handling a font as tables so fall back to
Type3 for now.

Change-Id: I5235ad02fd73fd88759dc30adfcf80aa0e4d2feb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543921
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-07-06 16:44:59 +00:00
Robert Phillips
48cfc92ec8 Revert "[ganesh][dawn] Use GrRingBuffer for uniform buffer allocation"
This reverts commit 9da66d2a57.

Reason for revert: Seeing if this is blocking the G3 roll

Original change's description:
> [ganesh][dawn] Use GrRingBuffer for uniform buffer allocation
>
> The Dawn backend used its own GrDawnRingBuffer type to manage uniform
> buffer slices which always made new wgpu::Buffer allocations on-demand.
> It now uses the GrRingBuffer type for this purpose.
>
> While the Dawn backend does not use mapped buffers for uniform data
> uploads and buffers are ref-counted and freed by Dawn automatically
> after use, using GrRingBuffer allows it to share the same
> GrResourceProvider infrastructure as the other backends.
>
> Change-Id: Id2697f306f9ce3d5c6c85745b135585b092b6fb0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/553525
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Arman Uguray <armansito@google.com>

Change-Id: Id9960b0b2bdf9ecab5889ef2050425e422e86090
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556079
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-07-06 15:54:26 +00:00
Herb Derby
7f8303d25a Guard against divide-by-zero in drawing of last resort
Exit early if there will be a divide by zero or if no pixels are
to be drawn. Report that some glyphs have been excluded.

Bug: oss-fuzz:48695
Bug: oss-fuzz:48690
Change-Id: Ifdb0fad656ffc27bac7253035c7cd05ee96c274c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556018
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-07-06 15:30:22 +00:00
John Stiles
41a1d5f495 Remove redundant argument-list description code.
While reading through this code, I realized we implemented the same
function-argument stringizing loop three times. (A fourth version in
`description()` is similar, but prints the expressions, not types.)

Change-Id: I78610cdf6412b2d08984ac701e6421c356f25a83
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/556076
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-07-06 15:22:20 +00:00
Kevin Lubick
68d6ff9222 [includes] Reduce IWYU exports from SkTypes.h
SkTypes.h was found exporting <stddef.h> and <stdint.h>.
Thus if a Skia file includes SkTypes.h, it did not need
to include either of those files to use things like
size_t or uint8_t respectively. [1]

This also resulted in strange IWYU warnings like:
warning: size_t is defined in "include/core/SkTypes.h", which isn't directly #included.

Thus, this CL removes those additional exports, and as a result,
adds many more includes of <cstddef> and <cstdint>.

The second change this CL is to not use the default IWYU
mappings which are hard-coded into IWYU [2]. These defaults
are valid, but make suggestions for the C version of
headers and not the C++ ones (i.e. <stddef.h> over <cstddef>).

To make these recommendations align better with our preferred
style (the C++ ones), we use IWYU with --no_default_mappings
and then have to expand our existing mappings to better deal
with how IWYU would resolve some of these headers.

[1] https://codereview.chromium.org/1207893002/#msg49
[2] 4c0f396159/iwyu_include_picker.cc (L1221-L1234)

Change-Id: Iafebe190f8f3e86f252147b9f538c182bcc34af4
Bug: skia:13052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555516
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-07-06 14:52:55 +00:00
John Stiles
48b27317b4 Fix fuzzer-discovered error with range checks.
The fuzzer managed to create a NaN using a carefully-crafted mix of
intrinsics and constant folding. (`cosh(421)` is a very large double,
which becomes +Inf when cast to float, which is then multiplied by 0;
zero times infinity is NaN.)

Our code which checked to see if a value is in range of an int did not
consider NaNs and their always-false behavior, so it incorrectly
decided that NaN was in range. This CL reverses the check so that a NaN
will not pass, but all other values will behave the same.

Followup CLs should probably also tighten up the folding/optimizer
behavior so that NaNs/Infs are not created at all.

Change-Id: Idd2b0447ebe115e00bdba63ca7ff655f6c902fc6
Bug: oss-fuzz:48592
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555009
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-07-06 14:24:59 +00:00
skia-autoroll
bc15c6a548 Roll ANGLE from 86c735bfe650 to 9070e279a887 (5 revisions)
86c735bfe6..9070e279a8

2022-07-05 m.maiya@samsung.com Vulkan: Handle platforms that have imprecise float division issues
2022-07-05 ynovikov@chromium.org Roll chromium_revision b1ab0fbd60..532c25a8e2 (1020158:1020841)
2022-07-05 syoussefi@chromium.org Vulkan: Fix round-after-dither logic
2022-07-05 ukai@google.com angle: set $build/goma["use_luci_auth"] = True
2022-07-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8e3184380881 to 24ed8b7a6bd7 (2 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 robertphillips@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: robertphillips@google.com
Change-Id: I17642ea9356742cef44aca9566821c7b86cf6996
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555957
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-06 05:54:24 +00:00
skia-autoroll
046d0ce374 Roll SwiftShader from d1116fa9e9dc to 7987bda077c8 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/d1116fa9e9dc..7987bda077c8

2022-07-05 nicolas.capens@gmail.com Compute vertex clip flags using scalable SIMD

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 robertphillips@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: robertphillips@google.com
Change-Id: I61913c9a41b4d81b6d429a5b207cd0c185b86876
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555958
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-06 04:55:02 +00:00
skia-autoroll
019f67c30a Roll Dawn from b9ab0240030d to 871c213d1b23 (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/b9ab0240030d..871c213d1b23

2022-07-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 1154cc46d44d to 9070e279a887 (2 revisions)
2022-07-06 dneto@google.com Delete tests with invalid SPIR-V inputs
2022-07-05 dsinclair@chromium.org Roll third_party/webgpu-cts/ 7334f06d2..6c0f3bab4 (11 commits)
2022-07-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d1116fa9e9dc to 7987bda077c8 (1 revision)
2022-07-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 24ed8b7a6bd7 to 5d976018641e (1 revision)
2022-07-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 44d8bf7602e2 to 1154cc46d44d (4 revisions)

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 dsinclair@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: dsinclair@google.com
Change-Id: I9064033641a23b82c19afee6c3877be42594bf65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555956
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-06 04:42:56 +00:00
skia-autoroll
83c4cebc1e Roll ANGLE from da984303fda1 to 86c735bfe650 (4 revisions)
da984303fd..86c735bfe6

2022-07-05 chris@rive.app pls: Rename GL_DISABLED_ANGLE -> GL_DISABLE_ANGLE
2022-07-04 antonio.caggiano@collabora.com Vulkan: Support EGL_EXT_platform_wayland
2022-07-04 antonio.caggiano@collabora.com Vulkan: Support DRM_FORMAT_MOD_LINEAR
2022-07-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cf47f3e49a61 to 8e3184380881 (2 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 robertphillips@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: robertphillips@google.com
Change-Id: I2fb4a4886dd669e2f7612c86f658687d3b4448f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555816
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-05 05:53:12 +00:00
skia-autoroll
022cad13a1 Roll Dawn from c4f0232de2dc to b9ab0240030d (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/c4f0232de2dc..b9ab0240030d

2022-07-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2117cffa2620 to 24ed8b7a6bd7 (1 revision)
2022-07-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2a941833c838 to 44d8bf7602e2 (2 revisions)
2022-07-04 dsinclair@chromium.org tint: Remove semicolon as struct member delimeter
2022-07-04 dsinclair@chromium.org tint: Disallow write-only storage buffers
2022-07-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8e3184380881 to 2117cffa2620 (1 revision)
2022-07-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from da984303fda1 to 2a941833c838 (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 dsinclair@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: dsinclair@google.com
Change-Id: I869587b1ac3d08ed6fdedd16d6317d97bab9bf70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555817
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-05 04:41:12 +00:00
skia-autoroll
79b146dbf1 Roll ANGLE from defd99dc4cd5 to da984303fda1 (8 revisions)
defd99dc4c..da984303fd

2022-07-01 chris@rive.app Add a pls test for in-shader coherency
2022-07-01 chris@rive.app Add a pls test for load-only storage
2022-07-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from e22ec5fc4cbf to 867b77cee987 (1 revision)
2022-07-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 8bf3474ad33a to b1ab0fbd602a (1173 revisions)
2022-07-01 cclao@google.com Reland "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
2022-07-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 863435cf0898 to cf47f3e49a61 (19 revisions)
2022-07-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 90fdde382489 to d1116fa9e9dc (13 revisions)
2022-07-01 lexa.knyazev@gmail.com BlitGL: Fix LUMAWorkaround for half-float copies

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 robertphillips@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: robertphillips@google.com
Change-Id: I1ee548fa47b8f599a8bbbd298a0fe4ff2f5dffd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555737
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-04 05:52:47 +00:00
skia-autoroll
bb8406655f Roll Dawn from 24239fcc4786 to c4f0232de2dc (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/24239fcc4786..c4f0232de2dc

2022-07-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ad005b700de1 to 8e3184380881 (1 revision)
2022-07-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4a5fe6fb56e5 to da984303fda1 (6 revisions)
2022-07-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cf47f3e49a61 to ad005b700de1 (1 revision)
2022-07-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 76c2f42ea652 to cf47f3e49a61 (8 revisions)
2022-07-01 zhaoming.jiang@intel.com CTS: Update expectation for non-ASCII entry point name
2022-07-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4b745c2bfa6b to 4a5fe6fb56e5 (3 revisions)
2022-07-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 43183d8b4d0c to d1116fa9e9dc (7 revisions)

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 shrekshao@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: shrekshao@google.com
Change-Id: Ie73cb7d7ef89d0a3019ad20fd9418c6a5f21335e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555738
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-04 04:42:12 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
526c7435eb Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I4132f2a51da9e5c3da3002faef964b0a720b3965
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555736
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-07-03 08:24:12 +00:00
John Stiles
d1578cfe9b Add padding to properly align mixed-size uniforms.
The UniformManager would previously assert if it detected an alignment
error, but did not actually have any mechanism for automatically adding
padding between misaligned elements. If a user specifies a uniform
layout like `uniform float a; uniform float4 b;`, we now insert padding
between `a` and `b` so that `b` will be properly aligned. (This reuses
the logic that was originally used to trigger the alignment assertion.)

This CL fixes the bug and adds a test. The test is only active for
elements of matching size; mixed half- and full-precision elements
will need improved test logic.

Change-Id: I8c04eb6350fa73bdbcd1a08e1a45b17fee0d4194
Bug: skia:13478
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555440
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-07-02 20:19:12 +00:00
Brian Salomon
b2e4416a6b Update SkMesh buffer API to take const void* instead of SkData
Also expose a size() function on the public IB and VB types.

Bug: skia:12720
Change-Id: Ibeccf6d2d6ba411e9e77be582d0cb1622bc76ccd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555005
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-07-01 20:07:57 +00:00
Arman Uguray
9da66d2a57 [ganesh][dawn] Use GrRingBuffer for uniform buffer allocation
The Dawn backend used its own GrDawnRingBuffer type to manage uniform
buffer slices which always made new wgpu::Buffer allocations on-demand.
It now uses the GrRingBuffer type for this purpose.

While the Dawn backend does not use mapped buffers for uniform data
uploads and buffers are ref-counted and freed by Dawn automatically
after use, using GrRingBuffer allows it to share the same
GrResourceProvider infrastructure as the other backends.

Change-Id: Id2697f306f9ce3d5c6c85745b135585b092b6fb0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/553525
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-07-01 20:01:47 +00:00
Robert Phillips
79a71e7fd2 Remove special case arena-based allocation of Compose and Color shaders
This is set up to eliminate SkComposeShader.h and SkColorShader.h

Bug: skia:13438
Change-Id: I16d3ea233220061559f5499fb0824dba1e3e699d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555160
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-07-01 18:36:02 +00:00
Kevin Lubick
72ae8ebf5f Remove extra file
No-Try: true
Change-Id: I98ca99508f25dde7dc6c63b5cb38b0f7382bd762
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555517
Reviewed-by: Heather Miller <hcm@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-07-01 16:55:23 +00:00
Michael Ludwig
d289afdd6c [graphite] Use new Transform concat functions in text code
Uses Transform::Identity() and preTranslate() in places to simplify code
and reduce matrix copying/multiplications.

Reworks DirectMaskSubRun's boundsAndTransform() function to use
preTranslate() and concatInverse() to similarly reduce matrix copies
and multiplications. It keeps fInitialPositionMatrix as an SkMatrix as
long as possible, and similarly does not copy localToDevice until its
determined that concatInverse() and preTranslate() need to be used
(vs. the integer-only translation).

Change-Id: Ia2ba266f952d3c71fb3afc30f3ba0b904bb4bede
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555002
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-07-01 16:36:26 +00:00
Herb Derby
afe25662ee Reland "Replace SK_ARRAY_COUNT with std::size() all the rest"
This is a reland of commit f838f6f62f

Original change's description:
> Replace SK_ARRAY_COUNT with std::size() all the rest
>
> Added changes to IWYU_mapping.imp to allow std::size. This
> requires multiple entries because std::size can be defined from
> any number of files. Please see the following for reference:
> https://en.cppreference.com/w/cpp/iterator/size
>
> Please check that I got all the includes from the documented list.
>
> Change-Id: I8346834ea7f37128f2dc50f238af0665a1fcfd8d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550696
> Reviewed-by: John Stiles <johnstiles@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I4c50340ac2a970de479da57d7d1b55bbf267b617
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555004
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2022-07-01 16:20:51 +00:00
Brian Salomon
b8c26f8bfe Reland "Add option to GrGpuBuffer::updateData to *not* discard non-updated area."
This is a reland of commit a9b52ca52a

Original change's description:
> Add option to GrGpuBuffer::updateData to *not* discard non-updated area.
>
> Also support minimal map region in Dawn implementation when onUpdateBuffer uses mapping.
>
> Bug: skia:13427
> Change-Id: I5c8a2872b520e04f8a55085c86430e635da2f43f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/553585
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: skia:13427
Change-Id: I04e8a4cba5dd3d77e457a4df2d8c20397c2ae760
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/554997
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2022-07-01 15:45:07 +00:00
Herb Derby
cc01efda73 Revert "Replace SK_ARRAY_COUNT with std::size() all the rest"
This reverts commit f838f6f62f.

Reason for revert: Breaks G3 Roll and MSVC compiler

Original change's description:
> Replace SK_ARRAY_COUNT with std::size() all the rest
>
> Added changes to IWYU_mapping.imp to allow std::size. This
> requires multiple entries because std::size can be defined from
> any number of files. Please see the following for reference:
> https://en.cppreference.com/w/cpp/iterator/size
>
> Please check that I got all the includes from the documented list.
>
> Change-Id: I8346834ea7f37128f2dc50f238af0665a1fcfd8d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550696
> Reviewed-by: John Stiles <johnstiles@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I6282aeac9dacb31f753acb57d196a88447bce761
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555003
Auto-Submit: Herb Derby <herb@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-07-01 15:30:06 +00:00
Jim Van Verth
1f9173a477 [graphite] Fill in shader and vertex buffer for DirectMask subruns.
Doesn't handle the transformed case, for the moment.

Bug: skia:13118
Change-Id: I8f792713b224f2b153903f1e65cbb1707e36ca31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/554343
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-07-01 15:16:45 +00:00
Michael Ludwig
9d82f9e4b8 [graphite] Add more utility and SkM44/SkMatrix interop to Transform class
Change-Id: I028bd133778d14edcb22ccef0c35c5a8e3d7d552
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/554516
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2022-07-01 15:00:22 +00:00
John Stiles
987901fa3f Fix uniform manager handling of mat2 types.
The Stride() function in the UniformManager, when given a matrix type,
was intended to return the stride of a single matrix column. However, it
accidentally called `Stride(1)` instead of `Stride(kNonArray)`, which
meant that it was returning the stride for a `vec2[1]` (four floats)
instead of the stride of a `vec2` (two floats). Interestingly, this
still returned the correct answer for mat3 and mat4, because `vec3`,
`vec4`, `vec3[1]` and `vec4[1]` all have the same stride--four floats.

This CL fixes the bug and adds a test.

Change-Id: I9c06b7da7253a86c1d9545c7e177bc916b49c9b9
Bug: skia:13478
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555161
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-07-01 13:47:31 +00:00
Herb Derby
f838f6f62f Replace SK_ARRAY_COUNT with std::size() all the rest
Added changes to IWYU_mapping.imp to allow std::size. This
requires multiple entries because std::size can be defined from
any number of files. Please see the following for reference:
https://en.cppreference.com/w/cpp/iterator/size

Please check that I got all the includes from the documented list.

Change-Id: I8346834ea7f37128f2dc50f238af0665a1fcfd8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550696
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-07-01 13:39:17 +00:00
Kevin Lubick
e3d341ce20 Add --keep_going to IWYU enforcement
Change-Id: I7108e82d0cabb54964f97e81bebe7aedb97e0a54
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555416
Reviewed-by: John Stiles <johnstiles@google.com>
2022-07-01 13:03:51 +00:00
Peng Huang
1b075ff14e Add StrikePinner::assertValid() to diagnose cache missing problem
Bug: chromium:1316352
Change-Id: I54e50592fe5fc97a83e1ed7e40c92b98834bf331
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/554337
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-07-01 13:01:21 +00:00
skia-autoroll
86a9562a59 Roll ANGLE from 4884e9de1da9 to defd99dc4cd5 (10 revisions)
4884e9de1d..defd99dc4c

2022-07-01 mikes@lunarg.com Update MSRTSS vulkan struct to final version
2022-07-01 ianelliott@google.com Revert "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
2022-07-01 syoussefi@chromium.org Vulkan: Don't optimize away flush after clear for single buffer
2022-06-30 eddiehatfield@google.com Add presubmit check for .gclient file
2022-06-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1fe7a0ab555e to 863435cf0898 (7 revisions)
2022-06-30 geofflang@google.com Metal: Support GL_ANGLE_provoking_vertex
2022-06-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 470172656108 to 1fe7a0ab555e (1 revision)
2022-06-30 yuxinhu@google.com Suppress the new BestPractice VVL Error
2022-06-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from ec31f547750c to 90fdde382489 (6 revisions)
2022-06-30 cclao@google.com Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"

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 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: borenet@google.com
Change-Id: Id47e9e6c11d53379dac2175465553ad3c830471d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555316
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-01 05:55:18 +00:00
skia-autoroll
4d39707554 Roll SwiftShader from 90fdde382489 to d1116fa9e9dc (13 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/90fdde382489..d1116fa9e9dc

2022-07-01 capn@google.com Replace sw::SIMD aliases of 4-wide vectors with rr::SIMD types
2022-07-01 capn@google.com Temporarily support xyzw component swizzling for SIMD types
2022-07-01 capn@google.com Implement SIMD helper functions using 128-bit operations
2022-07-01 capn@google.com Implement 128-bit insert/extract
2022-07-01 capn@google.com Use SIMD types throughout graphics and compute pipelines
2022-07-01 capn@google.com Replace static SIMD::Width asserts with dynamic ones
2022-06-30 capn@google.com Make shader math functions SIMD width agnostic
2022-06-30 nicolas.capens@gmail.com Omit dynamic checks for equal or sequential pointer offsets
2022-06-30 nicolas.capens@gmail.com Construct SIMD pointers from an std::vector instead of array
2022-06-30 nicolas.capens@gmail.com Move rr::Pointer4 to SIMD source and header files
2022-06-30 nicolas.capens@gmail.com Avoid broadcasting data fields to 4-wide vectors
2022-06-30 swiftshader.regress@gmail.com Regres: Update test lists @ 90fdde38
2022-06-30 sugoi@google.com Prevent recompiling programs on changes to compareMask or writeMask

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 borenet@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: borenet@google.com
Change-Id: I1e8a4d02d1aa98530f0f39084f8300c2dd6bafa1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/555317
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-07-01 04:50:24 +00:00