Commit Graph

61094 Commits

Author SHA1 Message Date
Arman Uguray
61b36e1264 [ganesh][dawn] Fix bazel WASM build
Dawn headers and symbols for WASM are provided by emscripten and a
direct dependency on Dawn native leads to conflicts in those builds.
Fixed the ganesh/dawn Bazel rules to only depend on Dawn on non-wasm
builds.

Bug: skia:13427
Change-Id: Ie1fa0b2c1a6486b4db3a9adb2366645c9c8c5e7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550257
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-06-17 01:39:12 +00:00
Herb Derby
e25c114f94 Replace SK_ARRAY_COUNT with std::size() for skia/bench
Change-Id: I63ce1643364c6d2dd50e3622d66c64bdb3091418
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550704
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-06-17 00:25:28 +00:00
Greg Daniel
0f1738dea7 [Graphite] Remove CommandBufferTest.
It has served use well, but its time to let it enjoy its life in
retirement.

Change-Id: I47213a7a74a890aa0b04e906fb236c7cc4aabb61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550621
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
2022-06-17 00:06:19 +00:00
Arman Uguray
c0271d8db1 [canvaskit] Enable WebGPU in GN build
* Skia GN can now build the Dawn backend without depending on Dawn
  native, provided that webgpu_cpp.h/webgpu_cpp.cpp is provided by
  emscripten.
* Split gpu.js into webgl.js and webgpu.js. None of the CanvasKit API
  functions are wired up to WebGPU yet so it will use the CPU renderer.
* Added new macros and GN args to distinguish between WebGPU and WebGL
  builds in CanvasKit, instead of relying on Skia GN args.
* Renamed CANVASKIT_NO_ALIAS_FONT macro to CK_NO_ALIAS_FONT to match
  style.

Bug: skia:12512
Change-Id: Ifc4191da046bd7af73492cfba6e3ca530590d722
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/548603
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-06-16 23:14:17 +00:00
skia-autoroll
3ff83a038e Roll vulkan-deps from 156f19ea4009 to 800c6ee46990 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/156f19ea4009..800c6ee46990

Also rolling transitive DEPS:
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools from bfc611b03e0f to fbcb6cf4c820
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers from ec9b96aae53e to 3be1df310be8

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 johnstiles@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: johnstiles@google.com
Change-Id: I90abcf125bc8905f003936ffb197c517026586f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550568
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-16 22:25:52 +00:00
Greg Daniel
b2cecde549 Fix not using texture barrier on StrokeTessOp.
Previously we were overwriting the renderpassXferBarriers flag on
ProgramInfo to set it to kNone. This flag is meant to say whether or not
the entire render pass uses barriers or not. This is needed in Vulkan
because all pipelines in a render pass that has an input attachment
must bind the input attachment regardless if it is used or not. So the
pipeline must be created with a layout for an input attachment
descriptor set.

This change just removes to performance optimization to only use the
barrier on the stencil and not fill draw. This use case shouldn't
come up too often and also shouldn't be a big perf hit regardless.
The way GrAppliedClip is created/used it is hard for us to create
multiple different Pipeline objects: one for stencil and one for the
fill.

Bug: skia:13402
Change-Id: I15ce74b4d41b90d3dd4169a1f4fb77ed87c8b26d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549898
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-06-16 22:06:34 +00:00
Brian Salomon
ba7f4773c1 Remove assert that non-dynamic GrGpuBuffers are only written once
This was added during a refactor to detect behavior regressions and
in anticipation of removing kStream_GrAccessPattern. That removal
wasn't completed because of skbug.com/11297. Given the advent of
Graphite it likely will never be fixed.

The assert is only detecting whether our behavior conforms to what
is effectively a hint and is making it harder to modify
GrGpuBuffer. It's also a bit of heavy hammer in that for some backends the writes to the buffer are effectively gpu->gpu and so
don't violate the spirit of the hint.

Bug: skia:12720
Change-Id: I27e8d89b63df54a667879f2f7e4452e3c37da264
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550620
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-06-16 21:01:15 +00:00
John Stiles
5e2bbe5651 Finish PaintParamsKey support for SkColor4f in a key.
The API for keys containing colors was unfinished--there was a way to
add a single color to a key, but there were was no support in
BlockReader to read the color back out, and only fCount == 1 was
supported.

This CL fills in these gaps, and adds a test verifying that SkColor4f
data can round-trip through a PaintParamsKey successfully.

Change-Id: I9586fbd59e1a091970f44751322c03ad493888f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550698
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-06-16 20:28:39 +00:00
Herb Derby
5623d9e36f Replace SK_ARRAY_COUNT with std::size() for skia/docs
Change-Id: I9569ba4760546be6302c24658e64cb58c7db86e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550697
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-06-16 20:09:58 +00:00
Jim Van Verth
4f050c8528 [graphite] Add PathSubRun draw support
Bug: skia:13118
Change-Id: I37fa38012ba752026c03266466a713221bd746be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550616
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-06-16 18:35:07 +00:00
John Stiles
6e87a54ba6 Add method to calculate size of a DataPayloadField.
Using a switch lets the compiler flag an error if we add a
DataPayloadType and forget to update this function.

Despite initial appearances it's quite efficient when compiled:
https://godbolt.org/z/vqoaddGn4

Change-Id: I5f650afdf81205942966fb318643ff4af5a29252
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550501
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-06-16 18:32:43 +00:00
Brian Salomon
00bead8e63 Add glCopyBufferSubData to GrGLInterface
Will be used in SkMesh buffer update API and likely for unit testing of changes related to Issue 13427.

Bug: skia:13427
Bug: skia:12720

Change-Id: I487ee512d4b8bb61c533c7047bdbffcde9779885
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549570
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-06-16 18:12:23 +00:00
John Stiles
a87d30ecd2 Add data payload type for "pointer index."
This will give us stable data in the payload, so that the key itself
will match with operator== regardless of the pointer value. We can
extract pointers from the pointer-data block efficiently, even in the
case of multiple/nested children with embedded pointers, by using the
pointer-index value to fetch from the pointer-span.

Change-Id: Ic3b5f823a631257fd50ec6989b7c0fd1c70e6178
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550497
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-06-16 17:51:23 +00:00
John Stiles
87f9e464bf Add SkPaintParamsKey::Header structure.
This was originally done with the intent of adding a third field
(number of pointers in the data) but we may be able to get away with
keeping the two-byte Header after all. Having the data in an actual
struct does make refactoring a lot easier, at any rate.

Change-Id: I25a4e46b45f3f9c93eb16bc4d51b6624d7e319ba
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550183
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-06-16 17:51:10 +00:00
Robert Phillips
47a67a7f4f [graphite] Use CombinationBuilder to create SkPaintParamsKeys directly
Bug: skia:12701
Change-Id: I53bbabb2aba44e3bfc215df81dae1ae59d149263
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544319
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-06-16 17:16:30 +00:00
John Stiles
a444743005 Remove SK_MAYBE_UNUSED.
[[maybe_unused]] is built in to C++17.

Change-Id: I5e49d0801878fd9fbca62ab28080aa856e33ca79
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550500
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-06-16 16:52:53 +00:00
Brian Osman
ac0923b567 Remove CPU_ES3 SkSL test flag
The only remaining test was the ES3 matrix constructor test (using
non-square matrices). Ideally, we'd run this on GPU, but it fails on
a huge number of devices.

With this change, we no longer have tests that break the version rules
for CPU (ie, disable ES2 restrictions because we know a test uses a
subset of features known to work). This will simplify version logic.

Bug: skia:11209
Change-Id: Ida07ec943d81539c327bd1125da22bad68df26f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550498
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-06-16 16:38:25 +00:00
Michael Ludwig
5cb9eb4057 [graphite] GridBoundsManager
And a little bit of unit tests and benchmarking...

Change-Id: I56252846c2c00f35e70472e5d8272717d6ec4b25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/545897
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-06-16 15:46:01 +00:00
Nicolette Prevost
39fe4360fd Update Perfetto reference following fix for b/234001590
Change-Id: I024d9ab105537c4d45e2b25e00215a7823b6e408
Bug: skia:13303
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/545677
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
2022-06-16 15:16:55 +00:00
skia-autoroll
27b07c71e1 Roll ANGLE from 7c01db8f9387 to a62204c35579 (19 revisions)
7c01db8f93..a62204c355

2022-06-16 brianosman@google.com Guard all imports of wayland.gni with angle_use_wayland
2022-06-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 20c04524ee8a to cfcb44322bcc (4 revisions)
2022-06-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from c8885f7596b7 to e6f032b42bce (339 revisions)
2022-06-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1762849caed4 to 21fa1f0acbfa (11 revisions)
2022-06-15 dnfield@google.com Missing include for std::isdigit
2022-06-15 romanl@google.com Ensure ANGLERenderTest.mTestParams lifetime using unique_ptr
2022-06-15 jmadill@chromium.org Expose the EGL Display Context Set in the DisplayState.
2022-06-15 romanl@google.com Turn missing {trace_name}.json trace files into test failures.
2022-06-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 664494793778 to c8885f7596b7 (146 revisions)
2022-06-15 romanl@google.com Always log FATAL, ERR messages
2022-06-15 ianelliott@google.com Enable perFrameWindowSizeQuery on Android
2022-06-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 41a77d56876c to 664494793778 (497 revisions)
2022-06-15 constantine.shablya@collabora.com Add GL_NV_read_depth_stencil
2022-06-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from ee0d0b41a626 to 20c04524ee8a (21 revisions)
2022-06-14 hob@chromium.org Enable X11 defines on ChromeOS
2022-06-14 gert.wollny@collabora.com Vulkan: set storage external memory before the description
2022-06-14 antonio.caggiano@collabora.com GN: Wayland build overrides
2022-06-14 ynovikov@chromium.org Skip flaky hanging MultithreadingTestES3 on Linux SwANGLE
2022-06-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 66a3aa3f63de to 41a77d56876c (471 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 johnstiles@google.com,brianosman@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: johnstiles@google.com,brianosman@google.com
Change-Id: Ia0a24effbdab47d87845010407883d15f27975d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550375
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-16 15:11:54 +00:00
skia-autoroll
1c272f26a5 Roll vulkan-deps from 3fa0753fea3a to 156f19ea4009 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/3fa0753fea3a..156f19ea4009

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross from 197a273fd494 to 89b1c24bdced

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 johnstiles@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: johnstiles@google.com
Change-Id: I52357ea10c591d89020d53e7995faf365f3d7ab4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550373
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-16 09:45:45 +00:00
skia-autoroll
7ae0801384 Roll SwiftShader from 20c04524ee8a to cfcb44322bcc (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/20c04524ee8a..cfcb44322bcc

2022-06-15 antto.makinen@siru.fi Fix the linear-to-sRGB conversion on SRGB storage image writes
2022-06-15 capn@google.com Patch regression in FSR tests
2022-06-15 sugoi@google.com OpTypeForwardPointer support
2022-06-15 sugoi@google.com bufferDeviceAddress: opaqueCaptureAddress 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 johnstiles@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: johnstiles@google.com
Change-Id: I1af02a2ca251723b8a2cbc4040e1e4771aef586a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550368
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-16 04:50:43 +00:00
skia-autoroll
383d46895d Roll Dawn from 314840bba107 to 4a63612cd2af (13 revisions)
https://dawn.googlesource.com/dawn.git/+log/314840bba107..4a63612cd2af

2022-06-16 shrekshao@google.com Fix alphaToCoverageEnabled and sample_mask output validation
2022-06-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 21fa1f0acbfa to 3fa0753fea3a (1 revision)
2022-06-15 jrprice@google.com tint: Remove support for smoothStep builtin
2022-06-15 bclayton@google.com tint/clone_context.h: Template the vector allocator type
2022-06-15 bclayton@google.com tint/transform: Remove use of StorageClass on parameter
2022-06-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4e67065f9f8e to 21fa1f0acbfa (10 revisions)
2022-06-15 dneto@google.com Fix comment on constructor parameter
2022-06-15 hogehoge@gachapin.jp Validate zero-attribute for VertexBufferNotUsed buffers
2022-06-15 bclayton@google.com dawn/node: Fix build
2022-06-15 bclayton@google.com tint: Add ast::ParameterList, use it
2022-06-15 bclayton@google.com tint: Clean up Func() usage
2022-06-15 dneto@google.com spirv-reader: Don't hoist builtin vars.
2022-06-15 jiawei.shao@intel.com Remove Depth24Unorm-stencil8 from IsDepthOrStencilFormat

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 rharrison@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: rharrison@google.com
Change-Id: I283c2c9f27aab2b374dbc2fd55cbe70f707f2223
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550366
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-16 04:43:45 +00:00
John Stiles
9644e7d675 Add 'packed' to description of SK_BEGIN_REQUIRE_DENSE.
Spent 10 minutes searching for this macro because I expected it to have
"pack" in the name, like __attribute__((packed)) or #pragma pack.
Adding a little lifeline for future me.

Change-Id: I8c4f8cbd4febdea6bcd5698d267a2673246295e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550184
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-06-15 22:59:43 +00:00
John Stiles
008d60e58c Revert "Move SkSubRun to src/text"
This reverts commit 4a375fe213.

Reason for revert: breaks google3, probably needs public.bzl fix

Original change's description:
> Move SkSubRun to src/text
>
> Change-Id: I5c1040b8236dc792de20495a3fea3c0be6e31c20
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549847
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: Ic6f3ecd81e2bfd03320f820bb5301b0d1c5d6c9a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550181
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-06-15 22:33:12 +00:00
Jim Van Verth
2ec1d9019d [graphite] Add stubs for text RenderSteps.
Bug: skia:13118
Change-Id: I49ce429913b9ac06d30250401434e68ef4e5da18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550180
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2022-06-15 21:12:47 +00:00
skia-autoroll
c4521247d1 Roll vulkan-deps from 21fa1f0acbfa to 3fa0753fea3a (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/21fa1f0acbfa..3fa0753fea3a

Also rolling transitive DEPS:
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools from 76ebfb989f9d to bfc611b03e0f

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 johnstiles@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: johnstiles@google.com
Change-Id: I2a4429c2ab4bb17661ccd04515510e6dfd45b8ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550360
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-15 21:04:41 +00:00
Herb Derby
4a375fe213 Move SkSubRun to src/text
Change-Id: I5c1040b8236dc792de20495a3fea3c0be6e31c20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549847
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-06-15 20:37:16 +00:00
Herb Derby
255f1c87a2 Remove some unneeded SkSpan calls
Change-Id: Ic2052c326581f67bd9b9480ed1912997272471f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550219
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-06-15 20:05:01 +00:00
John Stiles
53be43fbb7 Add pointer-data fields to PaintParamsKey and KeyBuilder.
The BlockReader does not yet support pointer-data; that will be
implemented in a followup CL.

Change-Id: I01cd3712241071095fdb9cde741b8566d2761926
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550179
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-06-15 20:03:21 +00:00
Ethan Nicholas
4144b8abb4 Added preliminary SkSL Metal compute shader support
This adds mostly-functional compute shader output to SkSL. This does not
add overall compute shader support to Skia; it still needs to be
integrated into the Skia pipeline before it is possible to actually use
compute shaders in practice.

Change-Id: Ic5c69863704f141d16bb191224a817e44f4a8565
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/539060
Reviewed-by: Arman Uguray <armansito@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-06-15 18:52:42 +00:00
Jason Simmons
22fe5606a0 Adjust LineMetrics ascent/descent based on the line height multiplier
See https://github.com/flutter/flutter/issues/104153

Change-Id: I52ffc78d47faecd0b0438f40e4e1cc3661432d76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542777
Commit-Queue: Jason Simmons <jsimmons@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2022-06-15 18:27:41 +00:00
Brian Osman
9a50a9fdc3 Disable wayland in ANGLE
Bug: angleproject:7434
Change-Id: I77dcdcbe288f531698abc8ff0fd89b421066935d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550217
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2022-06-15 18:24:40 +00:00
Jason Simmons
48d421cc98 Fix the offset applied to clip rectangles for painting text shadows
See https://github.com/flutter/flutter/issues/105546

Change-Id: If344679dc04fed0421141f072bcdd6c2d6bb4f4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/548358
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Jason Simmons <jsimmons@google.com>
2022-06-15 17:55:05 +00:00
Herb Derby
8ccbeeebc3 Remove SkMakeSpan
Change-Id: I33121076bac3ceca19c81ff9fb47e4b024a14230
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549838
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-06-15 17:26:32 +00:00
John Stiles
de3e1964cf Prevent kDefaultFontFamilies from being destroyed during atexit.
Change-Id: Ie9324622c27fefe2d876f462b7c106dbc2a4f2cb
Bug: skia:13432
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550177
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-06-15 17:22:41 +00:00
John Stiles
b9307774a2 Prevent test-factory objects from being destroyed during atexit.
Change-Id: Ic35cea78c95b33c0037cc6b32a78c864c0e65c07
Bug: skia:13432
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550178
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-06-15 17:20:30 +00:00
Nicolette Prevost
6dbbf38dc8 [graphite] Refactor Shape to be wrapped into a Geometry class
Create a new Geometry class that encapsulates Shapes, but can later encapsulate Vertices & text subruns. DrawGeometry has been renamed to DrawParams for clarity and now stores a Geometry object instead of a Shape.

Bug: skia:13352
Change-Id: I42781b3eecff9845b893aa99fe78c08fd50fb995
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/547281
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
2022-06-15 16:46:19 +00:00
Nicolette Prevost
29dffe9ba4 Reland "Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class"
This reverts commit d78d52a86f.

That reason this CL was reverted in the first place is that it broke the Android roller - perfetto.h could not be located.
We now disable the use of perfetto for Android in the gn_to_bp.py script, so the roller should be good to go.

Reason for revert: Relanding

Original change's description:
> Revert "Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class"
>
> This reverts commit bfc9b94840.
>
> Reason for revert: new dependency causing Android build error
>
> Original change's description:
> > Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class
> >
> > First incremental step to incorporating Perfetto tracing into Skia, more CLs to follow
> >
> > NOTE: The presubmit check is failing. This appears to be due to the known issue where the presubmit check bugs out if the DEPS file is edited, which it was on this CL (modified to include Perfetto).
> >
> > Bug: skia:13303
> > Change-Id: I908be0392b520e8da14b34588b842bf6d955bd93
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543081
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Nicolette Prevost <nicolettep@google.com>
>
> Bug: skia:13303
> Change-Id: Ia2b883bbab1f8fb4f3914b63104a39240cc60e86
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544239
> Reviewed-by: Tyler Denniston <tdenniston@google.com>
> Auto-Submit: Tyler Denniston <tdenniston@google.com>
> Reviewed-by: Nicolette Prevost <nicolettep@google.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Tyler Denniston <tdenniston@google.com>

Bug: skia:13303
Change-Id: Ibd369b9c8c0e69fc9615fc05cf588ee4440c8ed5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544244
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
2022-06-15 16:35:05 +00:00
Kevin Lubick
06dd185839 [infra] Remove broken SwiftShader+MSAN job
It's been broken for quite some time.

Change-Id: Ic75f75e2062e9c1f624aa59c2d8de8909a208ea2
Bug: skia:12830
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550256
Reviewed-by: Eric Boren <borenet@google.com>
2022-06-15 15:18:44 +00:00
John Stiles
8ecb2f35fc Update GrSkSLFP::Make to take a raw pointer.
This also pinpointed one more case where we had an sk_sp<> inside a
static.

Change-Id: I01af66213249334667f107bcb95d53e4ce6f4c52
Bug: skia:13426, skia:13432
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550020
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-06-15 15:03:38 +00:00
John Stiles
061a80c264 Update color-space flags to avoid shutdown destructors.
Note that both `unordered_map` and `sk_sp` had non-trivial
destructors.

Change-Id: I39ffc2193c7935e71aab9b5c7474a64b5f93f753
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550176
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-06-15 14:15:16 +00:00
Jim Van Verth
70b01b9f4f Remove unnecessary check when unpacking glyphs.
There is a very old bug (http://crbug.com/510931) that was fixed back
then via a special check when unpacking glyphs. However, it was noted in
another CL that it doesn't seem this should still be possible. The only
case where expectedMaskFormat != maskFormat is when we have a 565 glyph
but a RGBA8 texture due to lack of 565 support. Otherwise they should be
the same. There is no access of the glyph cache that should change the
maskFormat.

Change-Id: I4a6ea11e5095f47f4ce5cc095db8bee084dd8a31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549846
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-06-15 13:42:37 +00:00
skia-autoroll
79aaa7c4d2 Roll vulkan-deps from 0a81903bb729 to 21fa1f0acbfa (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/0a81903bb729..21fa1f0acbfa

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 johnstiles@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: johnstiles@google.com
Change-Id: I87240f0336a39751ffb31a656cfb3cb2b1af568c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550083
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-15 08:22:12 +00:00
skia-autoroll
1f6b4de401 Roll SwiftShader from bea8d2471bd9 to 20c04524ee8a (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/bea8d2471bd9..20c04524ee8a

2022-06-14 antonio.caggiano@collabora.com GN: Wayland build overrides

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 johnstiles@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: johnstiles@google.com
Change-Id: I2814c86fbf712e2eb00da5c4745abd684d7c1926
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550079
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-15 04:48:42 +00:00
skia-autoroll
a4768487bc Roll Dawn from ff2dc652f530 to 314840bba107 (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/ff2dc652f530..314840bba107

2022-06-15 jiawei.shao@intel.com Remove call of TextureFormatSupportsRendering from TextureValidationTest/SampleCount
2022-06-14 bajones@chromium.org Remove support for depth24unorm-stencil8
2022-06-14 cwallez@chromium.org dawn::wire::client: Make ObjectBase destructor virtual.
2022-06-14 cwallez@chromium.org dawn::wire::client::ObjectBase: encapsulate remaining members.
2022-06-14 cwallez@chromium.org dawn::wire::client: Track the object generation on the objects
2022-06-14 cwallez@chromium.org dawn::wire: Separate ObjectHandle to its own header.
2022-06-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 59476401ff73 to c31e783fb845 (3 revisions)
2022-06-14 cwallez@chromium.org dawn::wire::client: Write ObjectBase constructor params in a struct.

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 rharrison@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: rharrison@google.com
Test: Test: dawn_unittests
Change-Id: Ia48dae0f50a2d0c359d8e84b99c6f44813d83019
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550077
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-15 04:36:21 +00:00
John Stiles
78c1845e66 Update SkMakeRuntimeEffect to return a raw SkRuntimeEffect*.
Previously, we were storing sk_sp<SkRuntimeEffect> objects in static
variables. This would presumably lead to destructors executing during
atexit time, which is unnecessary and can lead to shutdown bugs. We no
longer attempt to free these objects.

Change-Id: I0b09d7ab3dc67c9b8fbc35c81d72ff57b0592c03
Bug: skia:13426
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549658
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-06-14 23:37:34 +00:00
John Stiles
d99ae45386 Add 'num-pointers' field to SkShaderSnippet.
Most snippets have zero, but anything involving a runtime effect will
expect one pointer. At present this value isn't used anywhere.

Change-Id: I796e8c26433fa74512e39be65e7df76fba99f996
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550018
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-06-14 23:15:44 +00:00
John Stiles
f3873a978b Remove numExpectedChildren() getter.
Most fields in this struct are already accessed directly (including
`fNumChildren`) and this accessor didn't do anything interesting to
justify its existence.

Change-Id: I11e97b384a9272f2f3fc0417849fbb5a59761d8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550019
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-06-14 23:10:12 +00:00
John Stiles
77ed6cc47e Add unit test for BlockReader class.
We didn't have any unit tests confirming that BlockReader can read back
the data out of a block. This seemed like a gap worth filling.

Change-Id: Iefbd5aec199a520ca1ca84b53faef4fd2f2d9ab4
Bug: skia:13428
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550017
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-06-14 22:46:27 +00:00