Commit Graph

52651 Commits

Author SHA1 Message Date
skia-autoroll
83a60d9ac4 Roll skcms from 069b8f699b59 to 8247d3c2481b (1 revision)
https://skia.googlesource.com/skcms.git/+log/069b8f699b59..8247d3c2481b

2021-01-06 mtklein@google.com generalize hlg curves

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 johnstiles@google.com,mtklein@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/master/autoroll/README.md

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Tbr: johnstiles@google.com,mtklein@google.com
Change-Id: I5cbfaf6ee8a908c57e97554a1cc666be9f7fb192
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350601
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-06 18:13:10 +00:00
Robert Phillips
14357849e4 Add GrDDLTask::dump method
Change-Id: I763db23e200a359b8eae3514c9cd244f358ea3c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350605
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-01-06 18:07:10 +00:00
Ethan Nicholas
9ead3df423 Refactor some IRGenerator functions
This CL adds additional variants of some IRGenerator functions to enable
them to be more easily called from upcoming DSL code. This should not
change functionality (other than a slightly different error message in
one case).

Change-Id: Ic727c194fca5111d4283007f4ec23653598a853b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350017
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
2021-01-06 17:58:55 +00:00
Greg Daniel
d15176dbab Track resources on GrVkCommandBuffer as sk_sps.
Bug: skia:11136
Change-Id: I4234cdcbcfba524e030c510ae0a4ce1616c0b94e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350029
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-01-06 17:54:10 +00:00
Greg Daniel
99c4c8331f Move GrcommandBufferRef.h to more generic GrRefCnt.h
I plan to add at least one more gr_* class, so I figure it makes sense
to just keep all this similar things in one place.

Bug: skia:11136
Change-Id: I96d24dd094731e9694201e012fec37926cce564d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350639
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-01-06 17:53:50 +00:00
Robert Phillips
cd11e27a25 Fix DefaultGeoProc member variable names
The pattern appears to be that the variable that stores the uploaded
value has a "Prev" suffix.

Change-Id: I78ea449d75f5fd091c113cf08af919331467eb8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350638
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-01-06 17:46:00 +00:00
Greg Daniel
417743f806 Add workaround to use full screen loads for vk discardable msaa.
Bug: skia:10979
Change-Id: I81b8692b0bb1582b60a9324492a782d04a09538f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344963
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-01-06 17:28:00 +00:00
Nathaniel Nifong
4a5656834e Accept a callback used in MultiPictureDocument::endPage
Tested on a pixel 3, captures file, shows images.

b:skia:9765

Change-Id: I96f2e854dab21a9e15ff0f6f23c4e84f7616773e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344158
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Alec Mouri <alecmouri@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2021-01-06 16:52:50 +00:00
Joe Gregorio
6094ed698d Include svg module in Doxygen generated output.
Bug: skia:11108
Change-Id: I2c676d674ede2455f35a69d7063b042f8409aea5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350617
Auto-Submit: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2021-01-06 16:40:09 +00:00
John Stiles
3e72231e7b Clean up constructors for SkSL Literal types.
IntLiteral and FloatLiteral each had a pair of public constructors: one
which takes a Type (what type of Int/Float is this?), and another
constructor which takes a Context (assume the generic Float/Int type).

BoolLiteral had a public Context-based constructor, but its Type-based
constructor was private. The Type-based constructor is now public to
match its siblings. This allows us to create Booleans without needing
a Context&, if we have an fBool_Type, and fixes make_unique (which
doesn't like private constructors).

Change-Id: Iffb4980947a73b3a89aa1452cc90dce63620bd67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350636
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-01-06 16:38:40 +00:00
John Stiles
32d68537a8 Add SkVM support for conversion constructors to and from boolean.
Change-Id: Ia4a1c38161046b94dc56a1a76704766f1e14aab7
Bug: skia:11131
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350019
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-06 15:23:09 +00:00
John Stiles
53f0ddfa4e Unify conversion constructor simplification code.
Previously, the IR generator had code which could simplify conversion
constructors like `int(1.23)`. Separately, the optimizer's constant
propagation pass had its own separate implementation of these
simplifications as well.

This CL unifies the two implementations. Previously, the constant-
propagation pass version of the code only supported integer literals, so
this change also improves our code generation slightly.

Change-Id: I32c70a5f2aed210d03bef3166b1178a2d40cdabd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350024
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-06 15:13:29 +00:00
Brian Salomon
6cab033499 exclude surfacecontextwritepixels from CK
new unit tests is crashing like many others.

Bug: skia:10869
Change-Id: Ic9418468cb4720a52aebf2486cc359dc456c9983
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350558
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-01-06 14:42:19 +00:00
Brian Salomon
674d2168a3 Revert "Add more comprehensive test for GPU write pixels."
This reverts commit 237911a4d8.

Reason for revert: timeouts

Original change's description:
> Add more comprehensive test for GPU write pixels.
>
> Similar to existing SurfaceContextReadPixels but for writes. Tries all
> combinations of src/dst color type and alpha type for write pixels.
> Always reads back pixels for verification using the ImageInfo of the
> tested surface context.
>
> Bug: skia:8862
> Bug: skia:11130
>
> Change-Id: Id01f6aa511f00c4be47c32746dca872368cd5d82
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348886
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,bsalomon@google.com

Change-Id: I5498be0b20604e520ad887898695a81ca82936ca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8862
Bug: skia:11130
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350559
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-01-06 14:24:00 +00:00
Greg Daniel
91b37b1cef Fix inline uploads when using vulkan load resolve.
If using discardable msaa surfaces in vulkan, when we break up a
render pass for an inline upload, we must do a load msaa subpass for
the second render pass. However, if the original render pass did not
have this load subpass (e.g. clear or discard load op), then all the
GrProgramInfos for draws that end up in the second render pass will
have been recorded thinking they will be in a render pass with only 1
subpass. Thus we add an override flag to the makeDesc call to force
the actually VkPipeline that gets created to be created using a render
pass with 2 subpasses. We do lose the pre-compile abilities with this
approach, but inline uploads are very rare and already slow.

Ideally we would find a way to pull inline uploads into their own
GrRenderTasks so all this could be known ahead of time. But currently
we allow uploads to happen between draws of the same Op so it makes it
difficult to break up and even know when they'll occur at record time.

Bug: skia:10979
Change-Id: I247b007813dd0be280ce8a72fc6af70fe21f082d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344962
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-01-06 14:17:24 +00:00
Brian Salomon
b43d699bb7 Revert "Revert "Reland "Make textures used with alpha-only color-types produce 0s for RGB""""
This reverts commit 1fb7ecb744.

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel,linux-rel
Change-Id: If6692949edd7722e23bc3b64213e75bc15b91a13
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350026
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-01-06 14:16:09 +00:00
John Stiles
c23c8c7a92 Fix cross-platform deviations in SkStrAppendScalar for inf/nan.
We rely on exact output from SkStringAppendScalar in our
Housekeeper "Generated Files" bot. However, we can't trust snprintf(%g)
to emit the same string for infinite and NaN values on every platform.
For instance, the bits 0xFFFFFFFF as a float are `-nan` on Linux and
`nan` on OS X. Infinity is represented as `inf` on Linux/Mac and
 `1.#INF00` in Visual C++.

This CL standardizes on the strings `inf`, `-inf` and `nan` across all
platforms. This solves a GeneratedFiles issue in the followup CL:
http://screen/5RVdSnLmBupzpja

Change-Id: I648fd32571f8300998ec427dcb3d1e7d7215dbdd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350496
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-06 14:12:19 +00:00
Brian Osman
cdde253e40 Runtime effects: Disallow bitwise ops and integer remainder
Bug: skia:10680
Bug: skia:11088
Bug: skia:11127
Change-Id: I25ea288d03df13147b31bc4ca4b224bbe2fa924e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350030
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-06 14:05:59 +00:00
skia-autoroll
6a718c4e90 Roll SwiftShader from ff29e249d317 to b9e179f1f239 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/ff29e249d317..b9e179f1f239

2021-01-05 capn@google.com Clarify 3-level caching of sampling routines

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 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/master/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: I54614ce564b5db96258492e39eb40b791c71cf54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350487
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-06 05:02:44 +00:00
skia-autoroll
cb0e22a0dc Roll ANGLE from 026a067c38ef to b590fd1b9a59 (6 revisions)
026a067c38..b590fd1b9a

2021-01-06 ynovikov@chromium.org Roll chromium_revision b5dfde1f4d..481852c5d8 (840075:840387)
2021-01-05 jmadill@chromium.org Vulkan: Clean up "actual"/"intended" naming.
2021-01-05 syoussefi@chromium.org Complete I/O block GLSL tests
2021-01-05 syoussefi@chromium.org Vulkan: Directly capture non-gl_Postion builtins
2021-01-05 jdarpinian@chromium.org Remove tabs from volk.c/h
2021-01-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 094b96f7f336 to b5dfde1f4de5 (71 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 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/master/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
Change-Id: Ib79f626be58ba3de626044f5470f5fe4634d18f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350486
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-06 04:58:19 +00:00
skia-autoroll
8b641ebc6c Roll Dawn from cdbd295cc6c4 to a84acc4fcca8 (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/cdbd295cc6c4..a84acc4fcca8

2021-01-06 jiawei.shao@intel.com Enable CompressedTextureZeroInitTest on Win/Intel/Vulkan
2021-01-06 enga@chromium.org Revert "Update PrimitiveTopologyTests to use WGSL"
2021-01-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 9a644c7903ca to e6e704145b31 (1 revision)
2021-01-05 enga@chromium.org Update PrimitiveTopologyTests to use WGSL
2021-01-05 enga@chromium.org dawn_wire: Return early in callbacks after the server is destroyed
2021-01-05 enga@chromium.org Use a common helper for std::nothrow
2021-01-05 hao.x.li@intel.com Remove internal resolve buffer from Timestamp compute shader

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 9a644c7903ca to e6e704145b31

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: enga@google.com
Change-Id: Ieb157e0113caffe67e127bdf11dd199b6c7d109e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350485
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-06 04:57:39 +00:00
skia-autoroll
2ca3991958 Roll Chromium from 46171be2c7d7 to 302da2568953 (403 revisions)
46171be2c7..302da25689

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 johnstiles@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/master/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: johnstiles@google.com
Change-Id: Ibbcaa07a7d60af89da376543bbef78d22fdcccde
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350484
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-06 04:35:09 +00:00
Brian Salomon
237911a4d8 Add more comprehensive test for GPU write pixels.
Similar to existing SurfaceContextReadPixels but for writes. Tries all
combinations of src/dst color type and alpha type for write pixels.
Always reads back pixels for verification using the ImageInfo of the
tested surface context.

Bug: skia:8862
Bug: skia:11130

Change-Id: Id01f6aa511f00c4be47c32746dca872368cd5d82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348886
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-01-06 01:40:41 +00:00
Chris Dalton
854ee85736 Delete GrTriangulator::Mode
Bug: skia:10419
Change-Id: Ia81c615538ff1f0fe2372ea2e7bf437ceec08d7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349336
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-01-05 23:53:01 +00:00
Chris Dalton
57ea1fcb74 Convert GrTriangulator to a class
This simplifies the argument lists for functions and will also allow us
to extract the AA logic into its own subclass.

Bug: skia:10419
Change-Id: If51e86a7633da7a3ee9352c0236258a0a21f2ebe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/347976
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-01-05 22:10:11 +00:00
Florin Malita
736c992966 [svg] Deferred text position adjustments
Upcoming textPath changes require position adjustments (relative offset,
rotation) to be applied after mapping to path, at chunk flush time.

Bug: skia:10840
Change-Id: Ifccea2983d5d5c57876d0a25e1da113e4c9cd51a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350018
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-05 21:52:25 +00:00
Chris Dalton
4bf7c21571 Don't use the tessellator if caps.avoidStencilBuffers is set
Bug: skia:10419
Change-Id: Iff07133e2a81b4af4f76f919149dee5f56e5cb7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350336
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-01-05 21:45:25 +00:00
Brian Osman
c1ac0637c5 Guard against Inf/NaN when constructing circular blur textures
Bug: oss-fuzz:29183
Change-Id: I60475e2bda42e98b79a4291839249158d2738c9c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350028
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-05 21:41:56 +00:00
John Stiles
ba4b0e93e3 Add support for number(boolean) and boolean(number) casts in SkSL.
Previously `number(boolean)` casts were converted to a ternary during
IR generation, and `boolean(number)` casts caused an error.

Metal and GLSL should support this cast as written. SPIR-V needed a
little bit of logic to handle converting the boolean to a number via
OpSelect.

Change-Id: I0069781e2b5a26a25c8625ab41c2392342bfd10d
Bug: skia:11131
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349066
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-05 21:19:45 +00:00
Eric Boren
2833b08efb [infra] Remove jobs for no-longer-existing ChromeOS devices
Change-Id: Iddccb346429716a1fe29f50505aa22e9a23905c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350027
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-01-05 20:34:50 +00:00
Mike Klein
f471c827fb Stop calling schedule()
The new unit test demonstrates load/store reordering is error-prone.

At head we're allowing loads from a given pointer to reorder later than
a store to that same pointer, and boy, that's just not sound.  In the
scenario constructed by the test we reorder this swap,

   x = load32 X
   y = load32 Y
   store32 X y
   store32 Y x

using schedule() (following Op argument data dependencies) into

   y = load32 Y
   store32 X y
   x = load32 X
   store32 Y x

which moves `x = load32 X` illegally past `store X y`.
We write `y` twice instead of swapping `x` and `y`.

It's not impossible to implement that extra reordering constraint: I
think it's easiest to think about by adding implicit use edges in
schedule() from stores to prior loads of the same pointer.  But that'd
be a little complicated to implement, and doesn't handle aliasing at
all, so I decided to ponder on other approaches that handle a wider
range of programs or would have a simpler implementation to reason
about.  I ended up walking through this rough chain of ideas:

    0) reorder using only Op argument data dependencies          (HEAD)
    1) don't let load(ptr) pass store(ptr)                      (above)
    2) don't let any load pass any store              (allows aliasing)
    3) don't reorder any Op that touches memory
    4) don't reorder any Op, period.

This CL is 4).  It's certainly the easiest and cheapest implementation.
It's not clear to me that we need this scheduling, and should we find we
really want it I'll come back and work back through the list until we
find something that meets our needs.

(Hoisting of uniforms is unaffected here.)

Change-Id: I7765b1d16202e0645b11295f7e30c5e09f2b7339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350256
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-05 20:29:46 +00:00
Brian Osman
3b2fac6899 Reland "SkRuntimeEffect: Test matrix inverse() intrinsic"
This reverts commit 72bd9e8664.

Bug: skia:10913
Bug: skia:11133
Change-Id: Id822569166c7c2d53c3af5685550ae00c0dcfe01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349058
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-05 20:29:45 +00:00
Mike Reed
4f509345ab Pass sampling to drawImageSet
Bug: skia:7650
Change-Id: I93d41ca6e5beb85e9924ea2f3e0a82c18ff51369
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349617
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-05 19:40:31 +00:00
Brian Osman
5933d4c8e5 SkSL-to-SkVM: Misc fixes around arguments
Fixes terminology inside the generator to correctly use 'arguments'
rather than 'parameters'. Retains the caller-supplied argument span, so
that generateCode can push changes to 'out' and 'inout' parameters back.
Adds a useful helper function for getting a named function from a
Program.

All of this is used more extensively in upcoming CLs that migrate
interpreter unit tests (and particles) to SkVM.

Change-Id: I9d9aef4b7c4daf93d822e22f813162f4ed2385be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350023
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-05 19:39:41 +00:00
Ravi Mistry
ebcc35fcd5 [recreateskps-bot] New locations for hosted pages
Old locations will be cleaned up.

Change-Id: Iacdc2e61db2fb1b8630e1741832ceaf16c98c41b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350016
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-01-05 18:52:25 +00:00
Florin Malita
6356cb1904 Fix skottie2movie after asyncRescaleAndReadPixels changes
TBR=reed
Change-Id: I0cf49886b5cfee78a19ef4f521572db63fc477ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350021
Reviewed-by: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2021-01-05 18:42:51 +00:00
John Stiles
61b2e81c4f Fix type error with Metal mod(vec, float) intrinsic.
The code didn't take into account that x and y might be different types.
(This bug was not actually harmful; type coercion allowed the code to
compile even with the wrong type. The float would be silently splatted
into a vec and the rest of the code would work as-is.)

Change-Id: Ib76bc733f76304e451ef9197421b4bc22e29e49c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348888
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-05 18:07:04 +00:00
Greg Daniel
3ef052c289 Use sk_sp for GrVkPipeline.
Change-Id: I758e4aefb42d5e05071c528cf68c716739e32f3e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350020
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-01-05 18:06:56 +00:00
Florin Malita
2d059fcc22 [svg] Text rotate support
Implement support for text 'rotate' attribute:
https://www.w3.org/TR/SVG11/text.html#TSpanElementRotateAttribute.

Unlike other character-positioning attributes (x/y/dx/dy), rotate

  - is not cumulative
  - only applies to its respective node scope (does not affect other
    fragments in the current chunk)
  - has different padding semantics: if there are fewer rotate
    values than characters, the remaining characters use the last
    specified value from the closest ancestor

To the last point, we now have to discriminate three states:

  - unspecified (default -> 0)
  - explicit value for the given character index
  - implicit value (last value in the closest ancestor)

Local implicit values override implicit ancestor values -- but not
explicit ancestor values.

High level changes:

  - plumb 'rotate' attribute
  - expand per-character position info (ShapeBuffer) to include rotation
  - expand per-glyph position info (RunRec) to include rotation
  - expand PosAttrs to include rotation and add specific inheritance
    rules (see above)
  - pass computed rotation values to RSX blob buffers

Bug: skia:10840
Change-Id: Ia19ec5e8bb6fea06d49a9bd72ace575c2ffd100e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348877
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-05 17:43:51 +00:00
Brian Osman
0bfbfe5d30 Add 'tint' (used by Dawn) to Skia's DEPS
Not used yet (will require some adjustments in Dawn's GN files), but
want to get this in place.

See also: https://skia-review.googlesource.com/c/buildbot/+/347906

Change-Id: I39f632b47a0588c09d17c0f8309158988f061ad2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348189
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-05 17:07:51 +00:00
Joe Gregorio
7d63f91e4a Add optional --yes argument to tools/install_dependencies.sh.
This helps build automation.

Bug: skia:11124
Change-Id: I529f525845fb151861afc19651cdedcc0baa075d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348196
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2021-01-05 16:30:22 +00:00
John Stiles
ab8ed92a0c Add unit test for casting between float, int and bool.
This actually exposed a latent bug: we don't support bool(1.23) or
bool(1) casts, but these are valid in GLSL:

https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Conversion_constructors

"to bool: A value equal to 0 or 0.0 becomes false; anything else is
true."

Change-Id: Ia929a09914ffc96f081d0402d7bb05b5428f8db6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349977
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-05 16:30:11 +00:00
Mike Klein
0755d4bcde remove 32-bit iOS builders
32-bit builds are not supported since iOS 11.
We don't have any test or perf bots, just these leftovers.

Change-Id: I529a61d84b5f6a826a7176f6820cfc9fbc359339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345457
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-05 16:07:21 +00:00
Mike Reed
1efa14d9f4 Move to sampling for async-rescale routines
Bug: skia:7650
Change-Id: I10fde77472679b81747e15f150cbc0fe8e49906f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349402
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-05 15:46:51 +00:00
John Stiles
2345653898 Implement roundEven intrinsic in Metal (as rint).
Change-Id: Ieb7698d357c9be05ca1f17de84215add54553f84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349065
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-05 14:50:51 +00:00
John Stiles
dc435fa60d Add SkSL error reporting when an undefined function is called.
Change-Id: I2c39df532803d827d7cad876021f2ead81145f1d
Bug: skia:10902
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349064
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-05 14:38:41 +00:00
skia-autoroll
df49e6927b Roll Chromium from b627347adc38 to 46171be2c7d7 (71 revisions)
b627347adc..46171be2c7

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 johnstiles@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/master/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: johnstiles@google.com
Change-Id: I5e54fb08d38e86b2b685508607f0e64cc4a25df7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349918
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-05 05:20:50 +00:00
skia-autoroll
120b0dd7a0 Roll ANGLE from bf02c31bec07 to 026a067c38ef (1 revision)
bf02c31bec..026a067c38

2021-01-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from c95903c7ee26 to 094b96f7f336 (125 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 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/master/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
Change-Id: I81116067902356691f131582124e96bffc1d285f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349917
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-05 05:16:50 +00:00
skia-autoroll
2207edd88c Roll Dawn from 86980018b3f2 to cdbd295cc6c4 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/86980018b3f2..cdbd295cc6c4

2021-01-05 hao.x.li@intel.com Get timestamp period from device
2021-01-05 jiawei.shao@intel.com Vulkan: Fix a bug in the impl of T2T copy with 2D array textures
2021-01-04 cwallez@chromium.org Add TypeTraits.h for Dawn's additional type traits.
2021-01-04 cwoffenden@gmail.com Minor fix to build with MSVC: Removes constructor ambiguity

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: enga@google.com
Change-Id: I8b7a2bc317a25d9cd767d15e804d8d7c5cc4d947
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349916
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-05 05:05:10 +00:00
skia-recreate-skps
04ccda6c28 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Ibbca533c63efe49b269d024f69f726e0e7a3e15e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349856
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-01-05 02:23:21 +00:00