Commit Graph

58108 Commits

Author SHA1 Message Date
Herb Derby
c1bbd1f190 generalize text geometry back pointer
This change allows types other than GrTextBlob to use the
geometry's lifetime to manage refs.

Change-Id: Iacb726cd4d097c87df146e119c476c014d4df99e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471616
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-11-15 15:33:39 +00:00
Safa Sofuoglu
25deba3516 Enable non-standalone builds with dawn
Bug: skia:12276
Change-Id: Iaf7311fef43bd9c37bfc7b7a6221f6bea25f196d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433696
Auto-Submit: Safa Sofuoglu <safasofuoglu@gmail.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Stephen White <senorblanco@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-11-15 14:57:10 +00:00
John Stiles
a3d2f24692 Simplify literal creation in SPIR-V.
We had several ways of creating one, zero, true, false, and arbitrary
literals throughout the code. These have all been simplified to
`writeLiteral(double, Type)`.

Change-Id: I8094f142d24b5068e1baf7db8a6148a22e864682
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471377
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-15 14:52:18 +00:00
Brian Salomon
7fab38d97a Don't check for framebuffer completeness on TSAN builds.
It causes the OOPR DDL TSAN Quadro P400 bot to fail readbacks
(even though glCheckFramebufferStatus reports GL_FRAMEBUFFER_COMPLETE).

Bug: skia:12644

Change-Id: Ie68251ac36285b8c3e13431504b95cd09fa22ea3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470956
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-11-15 14:49:11 +00:00
John Stiles
14a487fd54 Replace getConstantSubexpression with getConstantValue.
The only type of expressions that getConstantSubexpression could ever
return are Literal and nullptr. getConstantValue now returns an
optional<double>; nullopt indicates a non-constant value in the slot.
This simplifies most use cases, and allows us to get rid of some extra
"zero" and "one" Literal objects in some of our Constructor classes.

This change fixes a recent fuzzer issue. The fuzzer had discovered that
calling `getConstantSubexpression` on a ConstructorCompoundCast that
contained a compile-time-constant value would return literals of the
wrong type (the cast was not applied). By nesting repeated matrix casts,
this type confusion could be turned into an assertion.

Change-Id: Icee69219e6db2822ffdfab4e5ccdaff54584a4b6
Bug: oss-fuzz:41000
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471376
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-15 14:46:21 +00:00
John Stiles
7ab86bd3e3 Add variable slot information to SkVMDebugInfo.
This assigns a human-readable name to a debug slot. The slot map is
emitted into skslc output files, and will be used in the future to
display human-readable names in the debugger.

Change-Id: I288358de305239005faa5814bd1d77a38b5e05b0
Bug: skia:12614
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470400
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-15 14:24:08 +00:00
John Stiles
6460541ee4 Reland "Fix Metal codegen error with structs containing compound types."
This reverts commit 3aaed99930.

Reason for revert: removing changes to PrecisionQualifiers

Original change's description:
> Revert "Fix Metal codegen error with structs containing compound types."
>
> This reverts commit 2a6c41571b.
>
> Reason for revert: causing Mali G7x failures on tree
>
> Original change's description:
> > Fix Metal codegen error with structs containing compound types.
> >
> > While working on an unrelated test, I accidentally triggered a bug in
> > Metal code generation. Our struct-equality helper functions did not
> > properly handle vector fields. Wrapping each comparison in `all(...)`
> > fixes the problem. (all() on a scalar is allowed and does nothing.)
> >
> > Our struct comparison tests now include a vector and a matrix.
> >
> > Change-Id: I59061ae9c3c3ab2c2dbdcb5257bc23e2257152af
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470399
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
>
> TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com
>
> Change-Id: Ieb5d5a1839978fb82525863488e9d54fdf44adbd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471097
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>

Change-Id: I8ee90df3de075cf82c0fcf3b4787577b09bb1a70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471156
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-15 13:29:06 +00:00
skia-autoroll
cf7be0f3a7 Roll ANGLE from eefb41112624 to ae3f67ab4a3a (12 revisions)
eefb411126..ae3f67ab4a

2021-11-12 abdolrashidi@google.com Implement GL_EXT_multi_draw_indirect
2021-11-12 syoussefi@chromium.org Forward extra --deqp-* flags to deqp
2021-11-12 penghuang@chromium.org Add EGL_VULKAN_GET_INSTANCE_PROC_ADDR
2021-11-12 syoussefi@chromium.org Vulkan: Add wait semaphores to queueSubmitOneOff
2021-11-12 jmadill@chromium.org Roll third_party/vulkan_memory_allocator/ e0216a548..5e49f57a6 (87 commits)
2021-11-12 gman@chromium.org Fix ASAN issue with GLVertexIDIntegerTextureDrawElements
2021-11-12 m.maiya@samsung.com Bug fix in unpack buffer validation
2021-11-12 syoussefi@chromium.org Vulkan: Prefer aggregate barriers on SwiftShader
2021-11-12 syoussefi@chromium.org Vulkan: Add external's pNext to ANGLE_external_objects_flags
2021-11-12 syoussefi@chromium.org Vulkan: Differentiate perf warnings and RP closure events
2021-11-12 syoussefi@chromium.org Vulkan: Output the reason for RP closure in command buffer
2021-11-12 jmadill@chromium.org Revert "Vulkan: Allow SystemInfo to pick ICD."

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 jlavrova@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: jlavrova@google.com
Test: Test: BufferStorageTestES3.TexImage2DPixelUnpackBufferMappedPersistently
Change-Id: Ie211a01dc38c63450748cd3e6b1138d6df1cac93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471315
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-15 05:25:39 +00:00
skia-autoroll
65189fede0 Roll SwiftShader from e878186acaee to 6885768e737f (12 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e878186acaee..6885768e737f

2021-11-13 liyl@google.com cmake: Add VK_USE_PLATFORM_METAL_EXT for macOS builds
2021-11-13 sugoi@google.com Structure conversion cleanup
2021-11-12 sugoi@google.com Fix Xcb depth
2021-11-12 capn@google.com Produce a Visual Studio error for unreferenced local variables
2021-11-12 capn@google.com Rename ImageInstructionState to ImageInstructionSignature
2021-11-12 capn@google.com Separate the SPIR-V image and sampler as part of ImageInstruction
2021-11-12 capn@google.com Determine SPIR-V zero constants from SPIR-V binary only
2021-11-12 capn@google.com Parse OpImageRead and OpImageWrite into an ImageInstruction
2021-11-12 swiftshader.regress@gmail.com Regres: Update test lists @ 678d3931
2021-11-12 capn@google.com Make sw::Constants a member of vk::Device
2021-11-12 capn@google.com Pass the vk::Device to every routine as an extra parameter
2021-11-12 capn@google.com Split image sampling into routine lookup and function call

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 jlavrova@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: jlavrova@google.com
Change-Id: Icc200ab7a1f232ac0e308416edfcd5b1e4d1d63f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471314
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-15 05:09:10 +00:00
skia-autoroll
199194c116 Roll Chromium from 0339eeae1454 to 4b7455c44bc0 (507 revisions)
0339eeae14..4b7455c44b

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

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: jlavrova@google.com
Change-Id: I230ecef80ea0cd1ea99d818c8b9391e4cf661fd0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471313
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-15 04:47:45 +00:00
skia-autoroll
7134d4a572 Roll Dawn from 792b94ffeeca to 12e51f6efaaa (9 revisions)
https://dawn.googlesource.com/dawn.git/+log/792b94ffeeca..12e51f6efaaa

2021-11-13 vadimsh@google.com Declare "role/configs.validator" binding.
2021-11-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3a84ef5e30bd to ae3f67ab4a3a (2 revisions)
2021-11-13 enga@chromium.org Test shader robust buffer access for dynamic buffer bindings
2021-11-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from eb3ef08eefdd to 3a84ef5e30bd (7 revisions)
2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from eefb41112624 to eb3ef08eefdd (3 revisions)
2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from e7a94965c1cf to 4cfa725fb329 (5 revisions)
2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ee941238f568 to eefb41112624 (3 revisions)
2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 2423df3e0485 to e7a94965c1cf (20 revisions)
2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 558981c1e21f to ee941238f568 (4 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 2423df3e0485 to 4cfa725fb329

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 sarahmashay@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: sarahmashay@google.com
Change-Id: Id7be2804bea7ecc6e64a8cb98460f61c1446bc3a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471356
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-15 04:38:46 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
eecf0af951 Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I2deca16102fa1b3c8f808d28e45491b06be4cd25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471303
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>
2021-11-14 23:46:08 +00:00
Ravi Mistry
48585f5c50 Copy only SKPs over
We were also copying over dm.json which was causing some bots to fail

Cq-Include-Trybots: luci.skia.skia.primary:Housekeeper-Nightly-RecreateSKPs_DryRun
Bug: skia:12648
Change-Id: Ibc00f7314cfe1a6bc792b544e18d5583e6c8bb7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470837
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-11-14 20:43:28 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
db8a7e6d8d Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: Idd631d6b9a0f738a884664fce734c9c48214c817
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471296
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>
2021-11-14 08:41:09 +00:00
skia-autoroll
95c876164b Roll SK Tool from 48428a99b46f to 5fcf63524c82
https://skia.googlesource.com/buildbot.git/+log/48428a99b46f..5fcf63524c82

2021-11-14 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update CIPD Packages

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 borenet@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: borenet@google.com
Change-Id: I274484bf39131be3a03c8938c74cd35a7c947264
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471193
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-14 06:20:08 +00:00
Jim Van Verth
300f51ac51 [graphite] Be explicit about pending draws on DrawContext destruction
Bug: skia:12466
Change-Id: I266ee1ae865e85f778191c7812b690e203bb4df4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471096
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-11-13 00:52:05 +00:00
Brian Salomon
87e9d52f2a Saturate subtract translation in SkOffsetImageFilter
Fuzzer has figured out it can overflow.

Bug: chromium:1268401
Change-Id: Ia25b8ab382a0ab868a3ca6dd9ea5f68f16d07504
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471017
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-11-13 00:50:24 +00:00
John Stiles
3aaed99930 Revert "Fix Metal codegen error with structs containing compound types."
This reverts commit 2a6c41571b.

Reason for revert: causing Mali G7x failures on tree

Original change's description:
> Fix Metal codegen error with structs containing compound types.
>
> While working on an unrelated test, I accidentally triggered a bug in
> Metal code generation. Our struct-equality helper functions did not
> properly handle vector fields. Wrapping each comparison in `all(...)`
> fixes the problem. (all() on a scalar is allowed and does nothing.)
>
> Our struct comparison tests now include a vector and a matrix.
>
> Change-Id: I59061ae9c3c3ab2c2dbdcb5257bc23e2257152af
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470399
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Ieb5d5a1839978fb82525863488e9d54fdf44adbd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471097
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-12 23:09:34 +00:00
Kevin Lubick
ef3d6af042 [infra] Add POC Bazel rules for CanvasKit
Many things are not enabled currently (e.g. Skottie, Paragraph),
but we can render many APIs using WebGL.

To turn on Paragraph, etc, we'll need to tackle fonts, which
is a separate effort.

This also changes where the build artifacts go. ./build/ is
easier to deal with than the old way of sticking them in
./npm_build/bin

Change-Id: Ia377360af580a887d03630670438fea2e3157e90
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470682
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-11-12 21:38:46 +00:00
Jim Van Verth
23dafe81e0 [graphite] Implement fullscreen clear as LoadOp
Bug: skia:12466
Change-Id: Ie8bbacd22375b4cb4a5fe7e39055cdba3a3d0896
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469519
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-11-12 21:20:37 +00:00
Chris Dalton
c02dceb227 Add checks around tessellation buffer allocations
Bug: chromium:1264666
Change-Id: I9aea38d2f7b60077fd6940062ab6e02db815c8d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471056
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-11-12 21:11:47 +00:00
Brian Salomon
babbec12ff On Mali-TXXX driver version <= 1.26 rebind color target after
glCheckFramebufferStatus.

Bug: skia:12640

Change-Id: If51a62bbe6d512aae2af51437871fe99fe0e24b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470462
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-11-12 21:01:39 +00:00
Greg Daniel
6388f0e8ef Don't try to use FanBuffer in PathInnerTriangulateOp if allocation failed.
Bug: chromium:1264666
Change-Id: I49bb2b7bb99a80bc1189c150c978b8bd797c7a34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/471016
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-11-12 20:53:19 +00:00
Kevin Lubick
799abb7bb8 [canvaskit] Set unsupported WebGL caps to false
The defaults were true for these, but if there was no
support, they should be set to false.

This was causing some warnings from the console, like:
WebGL: INVALID_ENUM: enable: invalid capability

Change-Id: I53b6120c969174a9ecd6d47df001870c71231352
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470737
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-11-12 18:04:03 +00:00
Kevin Lubick
e393e72484 [canvaskit] Add ImageInfo to Texture APIs
Change-Id: Ib030c1ab47a1d1338518815915a5f59e7f9d606c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470736
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-11-12 18:03:38 +00:00
Robert Phillips
e96b25c622 Disallow direct readback of compressed textures in Metal
Bug: skia:12592
Change-Id: Ic07b68c7101850a5d2b7aa921f592a93dbfff196
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470836
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-11-12 17:33:42 +00:00
skia-autoroll
152299ee42 Roll skcms from 0d5496480324 to 9019104061d8 (1 revision)
https://skia.googlesource.com/skcms.git/+log/0d5496480324..9019104061d8

2021-11-12 borenet@google.com [infra] Update Mac dimensions to target MacMinis

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

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Cq-Include-Trybots: skia/skia.primary:Canary-Chromium
Tbr: bsalomon@google.com,brianosman@google.com
Change-Id: I8c3f3249a666b179cfa3e606b92e2f292c3e9551
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470781
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 16:50:37 +00:00
John Stiles
87686e3f8c Disable broken tests on Tegra3.
This GPU does not support for-loops with exit conditions that cannot be
determined at compile time. (This is out of spec for ES2.)

Change-Id: I8c6d50afafc735d268808013a3d6474f855acea7
Bug: skia:12477
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470796
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-12 16:04:18 +00:00
John Stiles
2a6c41571b Fix Metal codegen error with structs containing compound types.
While working on an unrelated test, I accidentally triggered a bug in
Metal code generation. Our struct-equality helper functions did not
properly handle vector fields. Wrapping each comparison in `all(...)`
fixes the problem. (all() on a scalar is allowed and does nothing.)

Our struct comparison tests now include a vector and a matrix.

Change-Id: I59061ae9c3c3ab2c2dbdcb5257bc23e2257152af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470399
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-12 15:54:41 +00:00
Chris Dalton
09ece934af Move breadcrumb and inner-fan triangles out of PathCurveTessellator
The callsites output these triangles now. This removes the final
direct Ganesh dependency from the tessellator code.

Bug: skia:12524
Change-Id: Id0d16839ed35a2bd9a812b8747ca8669fac5bed8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470196
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-11-12 15:26:51 +00:00
Jim Van Verth
5182ed33a9 [graphite] Revise RenderPassTask construction
RenderPassTask should only represent a single RenderPass with possible
subpasses (represented by DrawPasses). This reconstructs the RenderPass
setup to match this thinking. RenderPassDesc now stores TextureProxys for
the attachments, since we may not have instantiated the Textures by the
time we create the RenderPassTask.

Bug: skia:12466
Change-Id: I4f8cab77a297aaf76bea7dd1cc3afd00143b8103
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470460
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-11-12 15:10:24 +00:00
skia-autoroll
1061a4cdba Roll ANGLE from 9c486b67528f to eefb41112624 (4 revisions)
9c486b6752..eefb411126

2021-11-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 73a6940a2d14 to 678d39313950 (4 revisions)
2021-11-12 gman@chromium.org Add test for gl_VertexID and DrawElements
2021-11-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 44723f7dd122 to 02bf0f96483c (416 revisions)
2021-11-12 syoussefi@chromium.org Capture/Replay: Mark another ImageTest test as FLAKY

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 bsalomon@google.com,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: bsalomon@google.com,robertphillips@google.com
Change-Id: I475dfd7cf51b2fa75ae06fccba8e321b4d545e2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470697
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 14:33:15 +00:00
John Stiles
6df1871cc2 Replace fSkVMDebugTrace program setting with SkVMDebugInfo.
When calling ProgramToSkVM, you can now pass in a pointer to an
SkVMDebugInfo struct. Passing in this pointer now enables trace opcodes,
removing the need for a dedicated `fSkVMDebugTrace` flag.

In this CL, the struct is empty, but in followup CLs it will contain
mapping tables that can be used to translate trace instructions into
human-readable results (e.g. slot numbers to variable names).

Change-Id: I6b38ec559723babed1f6d2efc4c5c2579c3b99db
Bug: skia:12614
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470398
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-12 14:13:14 +00:00
John Stiles
1991780081 Update LoopFloat/LoopInt tests to reduce hoisting.
Previously, none of our `runtime` tests relied on the input coordinate
in any way, so all of the logic was hoisted above the main loop in every
test. This CL adds an artificial reliance on the input coordinate so
that we have at least some SkVM tests with real code in the main loop.
This lets us see debug trace instructions interleaved with real code.

The input coordinate is clamped against a known uniform value
(`colorGreen` always contains 0101) so that the final test output
remains consistent in practice.

Additionally, I noticed that this test was only enabled in ES3, but
it doesn't seem to have anything ES3-specific in it, so it's now
enabled across the board.

Change-Id: Ie82f40b1060edb6071e300040ac59fb7d27094b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470397
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-11-12 13:45:59 +00:00
skia-autoroll
7ee4dec0e5 Roll ANGLE from b5adbe272e48 to 9c486b67528f (4 revisions)
b5adbe272e..9c486b6752

2021-11-12 syoussefi@chromium.org Unoverride upstreamed dEQP fix
2021-11-12 syoussefi@chromium.org Vulkan: Write perf warnings in command buffer
2021-11-12 b.schade@samsung.com Vulkan: Reset mFramebuffer when mFramebufferCache is cleared
2021-11-12 syoussefi@chromium.org Vulkan: Make write-after-invalidate checks more precise

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 bsalomon@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: bsalomon@google.com
Test: Test: --deqp-surface-type=fbo --deqp-case=KHR-GLES31.*
Change-Id: Ia50994b00c16c0dcb7f96ad3e26a12b03dc4a367
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470595
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 05:24:08 +00:00
skia-autoroll
4ab1218a92 Roll SwiftShader from 73a6940a2d14 to e878186acaee (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/73a6940a2d14..e878186acaee

2021-11-11 sugoi@google.com VK_KHR_copy_commands2 support

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 bsalomon@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: bsalomon@google.com
Change-Id: I8ae95a5254cb65ac798044588309640766013d6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470616
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 05:15:38 +00:00
skia-autoroll
20a2328f9f Roll Chromium from b720fbc74d97 to 0339eeae1454 (409 revisions)
b720fbc74d..0339eeae14

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

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: bsalomon@google.com
Change-Id: Id542bf86d3781c12ffb0f4d4f130e3cbd393139b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470594
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 05:03:07 +00:00
skia-autoroll
c7074cb7ab Roll Dawn from e9c84c071ff8 to 792b94ffeeca (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/e9c84c071ff8..792b94ffeeca

2021-11-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b5adbe272e48 to 558981c1e21f (1 revision)
2021-11-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 92bdb59b3c26 to b5adbe272e48 (9 revisions)
2021-11-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b8d6331d53cf to 92bdb59b3c26 (1 revision)
2021-11-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ec5d3795f34d to b8d6331d53cf (1 revision)
2021-11-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 133cf4be6460 to ec5d3795f34d (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 sarahmashay@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: sarahmashay@google.com
Change-Id: I46b495e50b3d4ea860f2d453edb758ef436dafa8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470617
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 04:35:14 +00:00
Chris Dalton
32451cf9bc Fix PatchAttribs issues with explicit curve type
- PathTessellator was accidentally not updating its own attribs when
  kExplicitCurveType was needed.

- GrPathTessellationShader was asserting too broadly surrounding
  kExplicitCurveType.

Bug: skia:12524
Change-Id: Iafe543cbc65c2225a9a99f14d7172182033e92c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470518
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Auto-Submit: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-11-12 02:30:09 +00:00
Brandon DeRosier
c0ff5a8560 Add flag that can be used to disable std::shared_mutex use in VMA.
This is needed for enabling Skia's Vulkan backend for Flutter on Windows and iOS 9, as the standard libraries in both of these contexts don't have `std::shared_mutex`.

When disabled on Windows, VMA falls back to using Win32 SRWLock.
The `vulkan.h` import in `vk_mem_alloc.h` which would normally import `windows.h` is commented out for Skia, and so the relevant symbols need to be declared before importing `vk_mem_alloc.h`.

Relevant Flutter Engine PR: https://github.com/flutter/engine/pull/29520

Change-Id: I2b1a621417155071b21e5c6d3b5ccc375c92a622
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469207
Reviewed-by: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brandon DeRosier <bdero@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-11-12 01:35:08 +00:00
Chris Dalton
f0f447c2f0 Yank GrPathTessellationShader out of PatchTessellators
The tessellators are now agnostic of the shader class, which makes
them mostly usable by Graphite now. Also moves the code for writing
the middle-out vertex and index buffers into the PatchTessellators,
which makes sense since they also write the instance buffers.

Bug: skia:12524
Change-Id: I6c415645e389e056c0db1d93663b1b295d6b4535
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469631
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-11-11 22:28:40 +00:00
skia-autoroll
6d823b35fa Roll ANGLE from 92bdb59b3c26 to b5adbe272e48 (9 revisions)
92bdb59b3c..b5adbe272e

2021-11-11 jmadill@chromium.org Vulkan: Allow SystemInfo to pick ICD.
2021-11-11 syoussefi@chromium.org Vulkan: Fix rendering to RGB external images
2021-11-11 jmadill@chromium.org infra: Remove remaining references to 'master'.
2021-11-11 jmadill@chromium.org infra: Remove outdated "master" ref in CI config.
2021-11-11 jmadill@chromium.org infra: Add tests to ASAN configs.
2021-11-11 syoussefi@chromium.org Remove stray deqp override file
2021-11-11 jmadill@chromium.org EGL: Validate CreatePbufferSurface attributes.
2021-11-11 syoussefi@chromium.org Vulkan: Fix VVL warnings on extensions that are not enabled
2021-11-11 jmadill@chromium.org Add attribute validation for context creation.

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 bsalomon@google.com,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: bsalomon@google.com,robertphillips@google.com
Change-Id: I1b21fc85da8d78d00272512ddc99e09b19cd0347
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470505
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-11 20:29:42 +00:00
Kevin Lubick
8ed49ea6e3 [infra] Add Bazel rules for codecs.
This ports the third_party BUILD.gn files related to codecs
(with a best-effort on arm/SIMD stuff). This includes:
 - libpng
 - libjpeg-turbo
 - libwebp
 - wuffs (gif)
 - libgifcodec
 - dng_sdk and piex (raw codec)

This expands the string_flag_with_values macro to allow
multiple values to be set at once. This was added in Bazel 5.0.0,
however the latest pre-release version of that has a bug [1]
which slows down compilation dramatically. This was fixed at
ToT, but not released. As a result, I started using the Bazel
6 pre-release (via bazelisk).

The macro select_multi makes writing select() where multiple
elements could be on possible/easier.

One can try compiling certain codecs by running:
bazel build :skia-core --config clang --include_codec=raw_codec --include_codec=png_codec

Suggested Review Order:
 - bazel/macros.bzl
 - bazel/common_config_settings/defs.bzl and its BUILD.bazel
   to see how the codec options are defined.
 - BUILD.bazel to see how the codec settings are used.
 - src/codec/BUILD.bazel to see the inclusion of Skia files to
   deal with specific codecs.
 - third_party/BUILD.bazel (while referencing the corresponding
   BUILD.gn files, such as third_party/libwebp/BUILD.gn)
 - Everything else.

Change-Id: I797375a35fa345d9835e7b2a2ab23371c45953c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469456
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2021-11-11 20:10:01 +00:00
Chris Dalton
08a971126e Reland "Implement batching for convex tessellated paths"
This is a reland of 9613060bdf

Original change's description:
> Implement batching for convex tessellated paths
>
> Moves the view matrix transformation onto the CPU (when local coords
> are not used), and plumbs a color attrib through the tessellation
> patches.
>
> Bug: skia:12524
> Change-Id: Ic4740048b4fc85cb18e7235a7754d57762db3daf
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/468997
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

Bug: skia:12524
Change-Id: I77cd079d8921b224925bd2f7364c564822886d61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470436
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-11-11 20:01:40 +00:00
John Stiles
05c41162fb Allow inlining of functions with unassigned out-params.
Our inliner would ignore any functions with `inout` parameters, because
inlining them properly was more complex than just leaving the function
call. However, real-world code can sometimes contain helper functions
that have `inout` params that are never used at all (e.g. an uber-shader
with some features turned off).

We now read the ProgramUsage and check to see whether or not the
`inout`-qualified parameter is actually modified. If it's never changed,
the function now remains a candidate for inlining.

Change-Id: I92e494f94cc070801cb9aa28bd13faa689b806b6
Bug: skia:12636
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470299
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-11 19:33:06 +00:00
John Stiles
6ee5d9e3c9 Improve index-folding of arrays and matrices.
Yesterday's implementation was close but I realized later that it wasn't
quite ideal.
- Array index-folding was gated on `isCompileTimeConstant`, which is too
  strict. The real limitation is `hasSideEffects`. If an array contains
  a side-effecting expression, we should leave it alone. Otherwise it
  is safe to pluck out an element from the array and toss the rest.
- Matrix index-folding was gated on `getConstantSubexpression` for the
  extracted elements, but did not check the other elements at all. This
  was too lenient; we now only proceed to the folding step if
  `hasSideEffects` returns false.

I added some tests to verify the final behavior and also discovered a
small related issue. Diagonal matrices were not substituting literals
in for constant-values, which inhibited folding as well and would break
constant-expression evaluation. This is now fixed.

Change-Id: Idda32fd8643c1f32ba21475251cd4d4dd7cea94c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470396
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-11 18:59:04 +00:00
John Stiles
74410023ac Add tests for inlining functions with out/inout params.
Functions which don't write to their out params should be safe to
inline, but we currently don't recognize this.

Change-Id: I753e48067c7be4473675ef6c95e61af17dc5ae41
Bug: skia:12636
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470298
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-11-11 18:46:21 +00:00
John Stiles
107ea94139 Add support for clamp($genUType, ...) in SkSL.
We never used it internally, but the shaders used by Filament rely on
it. It doesn't exist in ES2 so this doesn't affect Runtime Effects.

Change-Id: Idb2afb15ff160b950ad02101bf6381a5d5c56468
Bug: skia:12635, skia:11209
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470156
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-11-11 18:43:42 +00:00
Brian Salomon
0e956d5bdd Fix runtimecolorfilter_vertices_atlas_and_patch GM size
Change-Id: I7d441b5d4773b806be6cfc885b6ca13b6590dd46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470456
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-11-11 17:35:41 +00:00
Kevin Lubick
cb94b57ad2 [canvaskit] Add ability to make texture image across surfaces.
Change-Id: Ie82e8257c9f0990d3be99a2429e034ac400b9580
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469759
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-11-11 17:32:30 +00:00