Commit Graph

56542 Commits

Author SHA1 Message Date
John Stiles
2195f94a0c Add unit test for array narrowing conversions.
Change-Id: Ibadda2a10e19984c7a0efb66fd3187f280666445
Bug: skia:12248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436996
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-06 13:05:35 +00:00
John Stiles
e3f85e07fa Add improved regression test for oss-fuzz:36655.
Most of the code generated by the fuzzer is nonsense, but there is a
method to its madness. The crash is only triggered under specific
conditions:
- The runtime effect has enough helper functions to mostly fill up the
  call graph hash-map. It won't rehash until it gets close to capacity.
- There must be several calls to built-in functions, in order to add
  elements to the call graph to force a rehash.

The fuzzer-generated code manages to satisfy both these requirements.

Change-Id: I9a1d7535557fedd4e9bfece3930ac86ede291ffe
Bug: oss-fuzz:36655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437118
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-08-06 13:03:32 +00:00
John Stiles
699736b063 Fix crash in PipelineStageCodeGenerator with recursive calls.
We assumed that any time a function call was emitted, we could look up
the mangled function name in our function-name map and it would exist.
This was not true for self-recursive calls, as the function name is
only added to the map after the function is emitted.

We now use the `functionName()` accessor to retrieve the function name,
which will synthesize a mangled name and add it to the map if it is
missing.

(It looks like recursive calls will not actually work properly, though,
because `writeFunctionPrototype` doesn't emit any code, and the SkVM
compiler can't handle recursion at all.)

Change-Id: I021f5009709d9eed8306eb71cb7f42cbc4c29ae9
Bug: oss-fuzz:36655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437117
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-06 13:00:22 +00:00
John Stiles
e3ae968f5f Enable comparison of arrays of different precision types.
GLSL allows an array of `lowp float` to be compared against `highp
float` seamlessly because the types are considered to be the same. SkSL,
however, treats these as different types, so we need to coerce the types
to allow this comparison to work.

In other words, these comparisons can cause an array to be implicitly
casted. The expression `myHalf2Array == float[2](a, b)` should be
allowed when narrowing conversions are enabled. To allow this to work,
we need a dedicated IR node representing this type coercion.

We now allow implicit coercion of array types when the array's component
types would be implicitly coercible, and have a new IR node representing
that implicit conversion.

This CL fixes array comparisons, but array assignment needs additional
fixes. It currently results in:
    "type mismatch: '=' cannot operate on (types)".

Bug: skia:12248
Change-Id: I99062486c081f748f65be4b36a3a52e95b559812
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436571
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-06 12:57:10 +00:00
Ben Wagner
68403f131d Fix CMake HarfBuzz build.
CMake is the only build system which ensures all the referenced headers
actually exist. In the last HarfBuzz roll a header file was removed
because support for an old table was dropped but the header was not
removed from the BUILD.gn file. Remove the file from the build since it
no longer exists.

Change-Id: I3093e215cfa001534247208787a365db73629f2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437196
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-08-06 06:33:41 +00:00
skia-autoroll
b8c6e2bc5f Roll ANGLE from 9da4e52b5bb6 to 9b646c132d63 (12 revisions)
9da4e52b5b..9b646c132d

2021-08-06 cnorthrop@google.com Tests: Add Final Fantasy trace
2021-08-05 ianelliott@google.com Match DebugAnnotator::{begin|end}Event() calls
2021-08-05 syoussefi@chromium.org Translator: Helpers to derive precision
2021-08-05 timvp@google.com FrameCapture: Fix setCaptureActive() and MEC timing
2021-08-05 syoussefi@chromium.org Translator: General clean up
2021-08-05 cnorthrop@google.com Capture/Replay: Fix reset for immutable textures
2021-08-05 syoussefi@chromium.org Translator: Simplify RecordConstantPrecision
2021-08-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 0eb84cfc3d3f to bf3d63599bad (5 revisions)
2021-08-05 syoussefi@chromium.org Translator: Make precise-ness a property of AST nodes
2021-08-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2395f179eff3 to 5a3686a46647 (30 revisions)
2021-08-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d4483095765e to e4b7794ddbee (2 revisions)
2021-08-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9177048d3b1a to 4867b99b3f43 (252 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 nifong@google.com on the revert to ensure that a human
is aware of the problem.

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: nifong@google.com
Test: Test: Final Fantasy MEC
Test: Test: angle_perftests --gtest_filter="*final_fantasy*"
Change-Id: Id8b86117836ed42ac6c9666dec8180804ae92cb0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437162
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-06 05:24:15 +00:00
skia-autoroll
99a3ec5293 Roll SwiftShader from e4b7794ddbee to b2af6a85583d (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e4b7794ddbee..b2af6a85583d

2021-08-06 swiftshader.regress@gmail.com Regres: Update test lists @ 8532b0f2
2021-08-05 capn@google.com Implement VK_EXT_custom_border_color
2021-08-05 swiftshader.regress@gmail.com Regres: Update test lists @ e4b7794d

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

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: nifong@google.com
Change-Id: I8e20386b8efbbb1f5192965575b7d1cf88ad6684
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437163
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-06 05:18:08 +00:00
skia-autoroll
5ca56dd074 Roll Dawn from 1ee777fcd578 to 9096fc290f86 (11 revisions)
https://dawn.googlesource.com/dawn.git/+log/1ee777fcd578..9096fc290f86

2021-08-06 bajones@chromium.org Remove createRenderPipeline2 and GPURenderPipelineDescriptor2
2021-08-06 jiawei.shao@intel.com Roll third_party/tint/ 11c6fcdb5..b612c5059 (3 commits)
2021-08-06 senorblanco@google.com Remove SPIRV-Cross usage from Metal backend.
2021-08-05 juanmihd@chromium.org Adding APICopyTextureToTextureInternal
2021-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 4038fa7f4326 to 11c6fcdb514d (3 revisions)
2021-08-05 jrprice@google.com Fix linker error with iOS build
2021-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from b5025dbc82e1 to 4038fa7f4326 (1 revision)
2021-08-05 enga@chromium.org Add Buffer::GetAllocatedSize()
2021-08-05 aleksi.sapon@faro.com Fix bind groups not being applied
2021-08-05 enga@chromium.org D3D12: Check for device lost after ID3D12Fence::GetCompletedValue
2021-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from a5d73ce965a7 to b5025dbc82e1 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from a5d73ce965a7 to b612c505939b

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

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: enga@google.com
Change-Id: If28f01f5291643521fe7d83c4758d548b9ef1a0f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437164
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-06 05:01:14 +00:00
Garret Rieger
66684b17b3 Roll HarfBuzz from 2.6.4 to 2.8.2-147
3a74ee5282..368e957887

Additionally adds a build option that switches to the new
harfbuzz subsetting api which is coming in the next version
of harfbuzz.

Change-Id: I924a7b4978412d636d4c8d19f5c6021ea3c73d21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433737
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-08-06 02:54:40 +00:00
Ben Wagner
058e936671 Remove declaration of surfaceFillContext
The implementation of skgpu::v2::Device::surfaceFillContext() was
recently removed, also remove its declaration to revent link time
errors.

Change-Id: I2c2d7673e9bb824d79c47c4e00423c63228c9161
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437120
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-08-06 02:23:22 +00:00
Brandon Jones
aef5dc78f3 Update references to deprecated Dawn structure.
GPURenderPipelineDescriptor2 is a typedef of GPURenderPipelineDescriptor
in Dawn, so this change does not affect functionality. It will allow
Dawn to remove the deprecated type.

Bug: dawn:751
Change-Id: Id345f7feb92b4b4ec9d558acbca0d37e76b4c81f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437076
Reviewed-by: John Stiles <johnstiles@google.com>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-08-06 00:42:34 +00:00
Ben Wagner
462e188216 SkScalerContext handle stroke changing path effect
A path effect is allowed to modify the stroke, which may affect whether
or not the final path is hairline or not. Handle this similarly to
SkPaint::getFillPath by taking an out parameter which states if the path
is hairline (should be zero stroked) or is an actual fill path.

This simplifies the internal handling of hairlines in SkScalerContext as
well as making the result more in line with the way hairlines are
handled elsewhere. It should also make the removal of
SkPaint::kStrokeAndFill_Style simpler.

Change-Id: I8ae8e3d6ee8a9f686f983cbcf723925b11c4a707
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437020
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-08-06 00:29:22 +00:00
Kyle Carlstrom
134c5f7f69 Support expressions for scalar values
Change-Id: I87c1ca4dd6d6f2e1e591eedc97ee7cb088039eab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436117
Commit-Queue: Avinash Parchuri <aparchur@google.com>
Auto-Submit: Kyle Carlstrom <kylecarlstrom@google.com>
Reviewed-by: Avinash Parchuri <aparchur@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-08-05 22:42:04 +00:00
Robert Phillips
7386dc7941 Ensure default SkPaints w/ dither don't get dithered
Skipping dithering of const paints was originally added in:

https://skia-review.googlesource.com/c/skia/+/19880/

Change-Id: Icebca1c3ef779bb103030deac12621619f5ce248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437116
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-05 22:04:28 +00:00
John Stiles
4cb0c37c96 Fix undefined behavior in recursion detection.
We were performing lookups in fCallGraph using `operator[]` while
looping through fCallGraph via range-based for. `operator[]` will add
entries to the map if the key is not found. This happens if built-in
functions are called, such as `sin`, `cos`, `tan`, etc; this mutates
the call graph mid-loop, which causes unpredictable behavior. In
practice, this can occasionally cause a rehash, which reorders the hash
map and causes items to be skipped over or checked twice.

This flaw meant that over many repeated runs, recursion was occasionally
not detected, and compiling a program with recursion would succeed a
small percentage of the time. The PipelineStageCodeGenerator asserts and
then crashes when presented with such a program.

The fCallGraph is now held as a const pointer, which makes it
impossible to mutate, and lookups are done via .find() which are
non-mutating. Compiling the fuzzer-generated program 10,000 times now
succeeds.

Change-Id: I6915fcfa4a0b1e9f86e5eb4ffd053bc718aed9fb
Bug: oss-fuzz:36655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437096
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-05 21:59:26 +00:00
John Stiles
9ae6ea0711 Fix fuzzer-discovered error with swizzling matrices.
The optimization logic for swizzling a constructor assumed that every
argument to the constructor was a scalar or vector. When it was written,
this assumption was true. However, we recently added support for casting
mat2x2 to float4 which violates the assumption.

We now check every argument and do not attempt to optimize if a
non-scalar, non-vector arg is found.

Change-Id: Ia2b297bd62dfdf4af56712164fbc80c29c9611eb
Bug: oss-fuzz:36852
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437017
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-05 21:59:23 +00:00
Nigel Tao
9dcbdbdb5e Roll third_party/wuffs to version 0.3.0-beta.8
Update Wuffs to match the version currently used by Chromium
(updated in http://crrev.com/c/3041153)

Change-Id: Id8d74dacef69d27bce48e470b5de42ea277b61d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436717
Auto-Submit: Nigel Tao <nigeltao@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2021-08-05 21:54:21 +00:00
Robert Phillips
5ac7f33281 Add V2 SFC and SDC stubs
Bug: skia:11837
Change-Id: Id7aa117af3e026d71caeed3ee6489394e869eed1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436568
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-05 21:54:18 +00:00
Brian Salomon
54fd96b5fa Fix Wunused-but-set-variable warnings
Change-Id: I0e093fd35b11e9a765ef9c09f3b6346086ff66bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/435983
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-08-05 21:49:18 +00:00
Brian Salomon
9139803741 Remove FP iterators.
No functional change, just code simplification.

Change-Id: Ie67d515195c462a57954256f045797c3a906d6a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/435877
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-08-05 21:49:16 +00:00
John Stiles
ded41aafb2 Fix fuzzer-discovered error with SPIR-V interface arrays.
OSSFuzz discovered a minor variation of oss-fuzz:36770 which tickled a
different bug in SPIR-V RTFlip handling; we did not properly handle the
case where the InterfaceBlock is an array. SPIR-V does not support this
at all, but the IRGenerator allows it, and we don't detect it an an
error until later in the compilation process.

Change-Id: I80bd67a13dad878717dc122462132a2ed675532d
Bug: oss-fuzz:36850
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437018
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-05 21:44:16 +00:00
Robert Phillips
1c512239ff Make compressedBackendFormat accessible from GrContextThreadSafeProxy
Not having this available on GrContextThreadSafeProxy was an oversight.
This will allow Chrome to correctly prepare the correct type of compressed promise image.

Change-Id: I3002609fef00a130fe409f318ae0f442ef7591d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437016
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-05 21:44:11 +00:00
John Stiles
628777c9ed Fix cases of variable shadowing in SkSL.
If we manage to fix all the existing cases of variable shadowing, we
could enable -Wshadow.

Change-Id: Ic582c59b9f7dfee2d7e90e50bfb36c57e958c673
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436641
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-05 21:39:12 +00:00
Robert Phillips
0e741e2dea Disable dithering on the PowerVR GE8320
FWIW, our PowerVRGE8320 reports that it has integer shader support.

Bug: b/195281495
Change-Id: Ie969d8e978404a5b8963bb5c71dedfa8945b2a2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436563
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-08-05 21:39:07 +00:00
John Stiles
e53c721d78 Pass DSLModifiers by reference.
These objects are ~48 bytes apiece.
(Added bsalomon@ for public API review)

Change-Id: I41207929ec2c33caaf877d8530ad7c89b24b63cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436823
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-08-05 21:34:08 +00:00
John Stiles
4adb66f313 Honor lowp/mediump/highp precision qualifiers in DSLParser.
(Added bsalomon@ for public API review)

Change-Id: Id0e7f656d68f2c7bec2c38ca7ccc8c6bb49e7e91
Bug: skia:12248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436570
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-05 21:34:08 +00:00
Ben Wagner
a3f996c70d Fix skia_use_gl = false build
Fix a number of warnings as errors about unused private methods when
skia_use_gl is set to false and SK_GL is not set.

Change-Id: Idcc08a1434ec11a6ce9c8df034c9fa472bf08d08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436822
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-08-05 21:34:04 +00:00
Kevin Lubick
c0bfdffe3d [infra] Update buildbot repo used by go.mod
Change-Id: I61d16e68eb6d8ce98d7f8874c6c2c7a91f291645
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436936
Reviewed-by: Eric Boren <borenet@google.com>
2021-08-05 19:12:58 +00:00
Chris Dalton
7893d2d086 Reland "Reland "Enable the atlas path renderer for GrAAType::kCoverage""
This is a reland of 03b7935068

Original change's description:
> Reland "Enable the atlas path renderer for GrAAType::kCoverage"
>
> This is a reland of 8cd8e27c2c
>
> Original change's description:
> > Enable the atlas path renderer for GrAAType::kCoverage
> >
> > This will definitely cause regressions on a whole slew of benchmarks
> > that were carelessly regurgitating cached bitmaps until the system
> > memory was blown. But the well defined memory limits of the atlas and
> > resilience to animation are worth it. If a client still wants this
> > type of caching they can always render their own bitmaps using Skia
> > and cache them.
> >
> > Bug: chromium:928984
> > Bug: skia:12258
> > Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I59d7b0684b7569d62939b6a8035fa6e92f4c02f3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436356
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

Bug: chromium:928984
Bug: skia:12258
Change-Id: I5259e86692e66f52795dde0da1a84c062c223b96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436860
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-08-05 15:58:49 +00:00
Michael Ludwig
8ba1e71a1f Revert "Add SkClipStack::replaceClip() separate from deprecated clip op"
This reverts commit 68587ae274.

Reason for revert: breaking path clipping tests in Android?

Original change's description:
> Add SkClipStack::replaceClip() separate from deprecated clip op
>
> The replaceClip functionality was added to allow Android to move off of
> generalized expanding clips. At the time, SkClipStack simply used the
> kReplace_SkClipOp to handle it. In order to remove those expanding ops,
> SkClipStack will need a proper implementation of replaceClip().
>
> The clip elements have an additional field to mark if
> it's a replace (and it's op will be kIntersect). Adds a temporary
> getRegionOp() function to unify elements that use this field vs.
> elements that use the deprecated clip op (i.e. if they were deserialized
> from an SKP that recorded an expanding op).
>
> Clients of SkClipOp that checked for replace ops use the new function
> instead of referring to the enum value directly.
>
> Bug: skia:10209
> Change-Id: I1c16c87fadb2becfe181db717c05e240ac87fd34
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436158
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Chris Dalton <csmartdalton@google.com>

TBR=robertphillips@google.com,brianosman@google.com,csmartdalton@google.com,michaelludwig@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: If3f99a7d2f2df99c2b99d431d494ca28da66b1d8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10209
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436956
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-08-05 14:47:41 +00:00
Michael Ludwig
b942d4b436 Revert "Avoid expanding clip ops in tests that will remain after feature removal"
This reverts commit d1c51b2572.

Reason for revert: blocking revert that might be breaking android

Original change's description:
> Avoid expanding clip ops in tests that will remain after feature removal
>
> Bug: skia:10208
> Change-Id: I4fb2c8181bfb8cac3c8ab95c833094c98f8ee6fc
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436159
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=robertphillips@google.com,reed@google.com,michaelludwig@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Ib62cc03f99793f8f1cb0180145b7557101a23ead
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10208
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436957
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-08-05 14:46:42 +00:00
Kevin Lubick
daa9717416 [infra] Cleanup better after BuildStats
Followup to https://skia-review.googlesource.com/c/skia/+/436816

Change-Id: I564c5a160588e5d9f843e297bf04baea50024dc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436896
Reviewed-by: Eric Boren <borenet@google.com>
2021-08-05 13:22:22 +00:00
Derek Sollenberger
8e2d89465a Revert "Reland "Enable the atlas path renderer for GrAAType::kCoverage""
This reverts commit 03b7935068.

Reason for revert: suspected of breaking some Android CTS tests

Original change's description:
> Reland "Enable the atlas path renderer for GrAAType::kCoverage"
>
> This is a reland of 8cd8e27c2c
>
> Original change's description:
> > Enable the atlas path renderer for GrAAType::kCoverage
> >
> > This will definitely cause regressions on a whole slew of benchmarks
> > that were carelessly regurgitating cached bitmaps until the system
> > memory was blown. But the well defined memory limits of the atlas and
> > resilience to animation are worth it. If a client still wants this
> > type of caching they can always render their own bitmaps using Skia
> > and cache them.
> >
> > Bug: chromium:928984
> > Bug: skia:12258
> > Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I59d7b0684b7569d62939b6a8035fa6e92f4c02f3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436356
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Id90ae67d90eff84f4085d2faa97976db5d9b73b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:928984
Bug: skia:12258
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436817
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2021-08-05 12:39:00 +00:00
Kevin Lubick
902d2bcad6 [infra] Cleanup permissions in our docker build tasks
Swarming appears to have changed recently to fail loudly
if it cannot delete any files. This can happen for
our docker outputs (e.g. the /OUT/obj folder).

I am hopeful that in a Bazel world, we won't have
issues like this because of Bazel's ability to keep
things more hermetic.

Change-Id: I21d9138bc25b42794006322e1b8987787222d5da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436816
Reviewed-by: Eric Boren <borenet@google.com>
2021-08-05 12:33:10 +00:00
skia-autoroll
1000794223 Roll ANGLE from 35bdaf8dc485 to 9da4e52b5bb6 (13 revisions)
35bdaf8dc4..9da4e52b5b

2021-08-05 cnorthrop@google.com Tests: Add PUBG Mobile battle royale trace
2021-08-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 0b6b7ef9940d to 9177048d3b1a (237 revisions)
2021-08-04 ynovikov@chromium.org Roll googletest
2021-08-04 syoussefi@chromium.org Remove support for WEBGL_debug_shader_precision
2021-08-04 cnorthrop@google.com Tests: Add PUBG Mobile skydive trace
2021-08-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from b3e57670ca16 to 0b6b7ef9940d (588 revisions)
2021-08-04 syoussefi@chromium.org Reland "Reland "GL: Fix GPU detection""
2021-08-04 syoussefi@chromium.org GL: Remove the rewriteVectorScalarArithmetic workaround
2021-08-04 syoussefi@chromium.org Revert "Reland "GL: Fix GPU detection""
2021-08-04 ggabu423@gmail.com D3D11: Add validation for storages size in updateBufferStorage
2021-08-04 b.schade@samsung.com Vulkan: Add support for EXT_primitive_bounding_box
2021-08-04 jmadill@chromium.org Perf Bots: Upload proper build URL.
2021-08-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from dcfc0a6e2d84 to d4483095765e (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 nifong@google.com on the revert to ensure that a human
is aware of the problem.

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: nifong@google.com
Test: Test: angle_perftests --gtest_filter="*pubg_mobile_battle_royale"
Test: Test: angle_perftests --gtest_filter="*pubg_mobile_skydive"
Test: Test: dEQP-GLES31.functional.primitive_bounding_box.*
Change-Id: I9d05938551130e9ce41581c0784bf5b6d0083804
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436667
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-05 05:28:12 +00:00
skia-autoroll
d82bee922b Roll SwiftShader from d4483095765e to e4b7794ddbee (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/d4483095765e..e4b7794ddbee

2021-08-04 capn@google.com Remove unimplemented MaskedStore/MaskedLoad usage
2021-08-04 capn@google.com Optimize OpImageFetch for single-level mipmaps

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

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: nifong@google.com
Change-Id: Ice72cf02b04a7f41928e3c2abe7ad0a865e1da6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436666
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-05 05:07:40 +00:00
skia-autoroll
1f808360e5 Roll Dawn from 26391657884b to 1ee777fcd578 (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/26391657884b..1ee777fcd578

2021-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 5c61d6d12ce3 to a5d73ce965a7 (4 revisions)
2021-08-04 bryan.bernhart@intel.com D3D12: Enable D3D12 debug names in Dawn builds.
2021-08-04 enga@chromium.org Hook up dump_shaders toggle to dump SPIRV and GLSL
2021-08-04 bclayton@google.com metal: Fix stray '\' prefix on MSL shaders
2021-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 98fbf241d80a to 5c61d6d12ce3 (1 revision)
2021-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 51750f15d219 to 98fbf241d80a (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 51750f15d219 to a5d73ce965a7

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

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: enga@google.com
Change-Id: I70bdaad22bfe088a4aa6e93a0c0532406b142d98
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436668
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-05 04:53:10 +00:00
Derek Sollenberger
337e484839 Revert "Reland "uniform Ptr (UPtr) is a sub class of Ptr""
This reverts commit ea17e2499d.

Reason for revert: blocking the android roll on a build failure

Original change's description:
> Reland "uniform Ptr (UPtr) is a sub class of Ptr"
>
> This is a reland of cef047a490
>
> Fix strides in SkVMTest to be the right size.
>
> Original change's description:
> > uniform Ptr (UPtr) is a sub class of Ptr
> >
> > A pointer for a Uniform (UPtr) is a sub type of a Ptr. Everywhere you
> > can use a Ptr a UPtr will work, but you can't use Ptr where you need
> > a UPtr. All the UPtr instructions uniformF, gather32, etc are expected
> > to be hoisted and therefore loaded only once. While the varyings
> > instructions like load32, etc. are expected to remain in the body
> > of the loop, and be evaluated each time through the loop.
> >
> > Change-Id: I4fe6458c2a4614872ed67cda1e81b05ea8a9e69e
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436297
> > Commit-Queue: Herb Derby <herb@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
>
> Change-Id: I858fa1224452ec801b6186fede353849edc895b5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436564
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

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

Change-Id: I0ffc93a04f5329838d422ad9e42aba09b9ba0064
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436639
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2021-08-05 01:11:41 +00:00
Brian Salomon
36aef96fec Disable lift of device space coord transforms to VS when GS or TS is
used.

The current approach doesn't consider that there may be additional
stages between the VS and FS.

Bug: skia:12198
Change-Id: I62a802c91a76689e7c78b2e269b76c9bcd5ae5d2
Cq-Include-Trybots: luci.skia.skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436573
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-08-04 23:46:04 +00:00
John Stiles
b806da4501 Honor lowp/mediump/highp precision qualifiers in IRGenerator.
This CL does not update the DSLParser to honor these precision
qualifiers; that will be done in a followup.

Change-Id: Ib629bc99c0e6c7afb550a381d4e3b6ccc26aa64e
Bug: skia:12248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436337
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-04 21:29:10 +00:00
John Stiles
020143148f Add parser support for highp/mediump Tokens in vardecls.
These parse into new modifier bits; the IR generator does not yet
support these bits. That's coming in a followup CL.

Change-Id: I362e9227694f9b862eaad100f6afca45a9b62a01
Bug: skia:12248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436336
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-04 21:11:14 +00:00
Mike Reed
35215fb68a Don't assume extended (check perspective)
Related to https://skia-review.googlesource.com/c/skia/+/436476

Change-Id: Ief81b5f1824b5dd7960e09a1a6df55bcf6b6dc45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436597
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-08-04 21:01:11 +00:00
Herb Derby
ea17e2499d Reland "uniform Ptr (UPtr) is a sub class of Ptr"
This is a reland of cef047a490

Fix strides in SkVMTest to be the right size.

Original change's description:
> uniform Ptr (UPtr) is a sub class of Ptr
>
> A pointer for a Uniform (UPtr) is a sub type of a Ptr. Everywhere you
> can use a Ptr a UPtr will work, but you can't use Ptr where you need
> a UPtr. All the UPtr instructions uniformF, gather32, etc are expected
> to be hoisted and therefore loaded only once. While the varyings
> instructions like load32, etc. are expected to remain in the body
> of the loop, and be evaluated each time through the loop.
>
> Change-Id: I4fe6458c2a4614872ed67cda1e81b05ea8a9e69e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436297
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Change-Id: I858fa1224452ec801b6186fede353849edc895b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436564
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-08-04 20:51:14 +00:00
Tyler Denniston
cc04b6f0bf Revert "Reland "Reland "Omit inner join geometry when possible"""
This reverts commit 40dfc67917.

Reason for revert: same android CTS failures

Original change's description:
> Reland "Reland "Omit inner join geometry when possible""
>
> This reverts commit bdc412f149.
>
> Original change's description:
> > Revert "Reland "Omit inner join geometry when possible""
> >
> > This reverts commit 44edd1952a.
> >
> > Reason for revert: problematic gold diffs (e.g. paths-data-10-t) and androit CTS failures
> >
> > Original change's description:
> > > Reland "Omit inner join geometry when possible"
> > >
> > > This is a reland of 1b0a95e0ee
> > >
> > > Original change's description:
> > > > Omit inner join geometry when possible
> > > >
> > > > There is some relatively cheap math we can do to determine easy cases
> > > > when the inner join geometry can be skipped. This CL is not
> > > > comprehensive in that there may be other cases where we can skip the
> > > > geometry.
> > > >
> > > > Only handling miter joins in this CL - the other join types can likely
> > > > have similar logic, but will require a bit more computation to compute
> > > > the inner (reflected) miter point.
> > > >
> > > > Misc notes:
> > > > - Added SK_LEGACY_INNER_JOINS ifdef in the event that clients depend on
> > > >   the old behavior.
> > > > - Modified stroker to track "previous previous" point, which is the
> > > >   start point of the previous line segment.
> > > >
> > > > Bug: b/165379671, skia:11964
> > > > Change-Id: I56789e85a2b4627c32f2a30fe60e47d448e9adf3
> > > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404717
> > > > Reviewed-by: Mike Reed <reed@google.com>
> > > > Commit-Queue: Tyler Denniston <tdenniston@google.com>
> > >
> > > Bug: b/165379671, skia:11964
> > > Change-Id: If8bf183db9379d0a98a6f88e70f871a559692a60
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/423821
> > > Reviewed-by: Tyler Denniston <tdenniston@google.com>
> > > Commit-Queue: Tyler Denniston <tdenniston@google.com>
> >
> > TBR=reed@google.com,tdenniston@google.com
> >
> > Change-Id: I5a2dfd402269db6c788f0e0625f67e9bf3b1f5cf
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: b/165379671, skia:11964
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/426059
> > Reviewed-by: Tyler Denniston <tdenniston@google.com>
> > Commit-Queue: Tyler Denniston <tdenniston@google.com>
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: b/165379671, skia:11964
> Change-Id: Icfd420954a291f414fc2cb5cc2fe2756224a5d8d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436518
> Reviewed-by: Tyler Denniston <tdenniston@google.com>
> Commit-Queue: Tyler Denniston <tdenniston@google.com>

TBR=reed@google.com,tdenniston@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Ifbca34b8ff836aee6b517f58cbf05cf0aa38eace
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/165379671, skia:11964
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436567
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2021-08-04 20:29:09 +00:00
Ethan Nicholas
b449fff1d8 Unify DSL and SkSL error handling paths
Change-Id: I9772da0c0a61d5fdb3114cd836053275bfb359df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436156
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-08-04 20:15:39 +00:00
Robert Phillips
f3868628f9 Fission GrSurfaceFillContext into skgpu:: and skgpu::v1:: versions (take 2)
The only really interesting parts are:
  src/gpu/SurfaceFillContext.*
  src/gpu/v1/SurfaceFillContext.*

Everything else is mostly mechanical.

TBR=michaelludwig@google.com
Bug: skia:11837
Change-Id: Ia208e9a73d1529804c06d4f805d8ca3674851496
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436558
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-04 19:40:55 +00:00
Mike Reed
ae1e7bcb38 Test addPath()
- append / extend
- old / new style
- open / closed

Change-Id: I1942dd9b5aaa5f02149856b2810c90637aaaf4df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436596
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2021-08-04 19:19:11 +00:00
Michael Ludwig
d1c51b2572 Avoid expanding clip ops in tests that will remain after feature removal
Bug: skia:10208
Change-Id: I4fb2c8181bfb8cac3c8ab95c833094c98f8ee6fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436159
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-08-04 19:11:40 +00:00
Michael Ludwig
3b39b7f5c6 Alias canComputeFastBounds to affectsTransparentBlack
This moves SkImageFilter's API closer to SkColorFilter's, and also
updates SkRecordDraw's PaintMayAffectTransparentBlack to be less
conservative.

Originally:
-canComputeFastBounds() handled aggregating behavior of the entire graph
  but it's a public API
-affectsTransparentBlack() was the private virtual for a specific node

Now:
-affectsTransparentBlack() handles aggregating behavior of the graph and
  is part of SkImageFilter_Base (mirroring SkColorFilter_Base).
-added onAffectsTransparentBlack() to clarify the per-node virtual that
  they can override.
-canComputeFastBounds() simply returns !affectsTransparentBlack().

There are some usages in our code that I kept using canComputeFastBounds
(e.g. SkPaint's computefastBounds) because it kept naming consistent.
In other places I updated to use affectsTransparentBlack since I thought
that made it clearer why we were checking that behavior.

Bug: skia:12282
Change-Id: I7b58372c127b4d8d9097d6c0de64486e822d2342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436296
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-08-04 19:11:19 +00:00
John Stiles
9fdcc517b2 Write test demonstrating bug with array narrowing conversions.
We don't currently support this. There's no explicit syntax to cast an
array's type, but it can be implicitly required in some situations, like
`halfArray == floatArray` (when fAllowNarrowingConversions is on).

Change-Id: I00fe0ddd4f2682b2950e828dd78bb941d5f0430e
Bug: skia:12248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436560
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-08-04 18:34:18 +00:00