Commit Graph

51672 Commits

Author SHA1 Message Date
John Stiles
7990e03d04 Reland "Add memsets to the GrBlockAllocator unit tests."
This is a reland of 87bc83eaa6

Original change's description:
> Add memsets to the GrBlockAllocator unit tests.
>
> These will verify that our blocks are actually set up properly--if not,
> we'll stomp over a sentinel word and/or trip an ASAN poisoned byte,
> causing the test to fail.
>
> Change-Id: I2dcb5b913d00c408f70c71f2660c6ec6017b452c
> Bug: skia:10885
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332260
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Bug: skia:10885
Change-Id: Ie1ffcfeffec14a016b50e6464fc23878b4dd2ccb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332716
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-06 17:23:14 +00:00
John Stiles
cf27b4f744 Improve constant folding for int vectors.
This implements constant folding optimizations on int vectors
(== != + - * /) that were previously only supported on float vectors.

Bug: skia:10908
Change-Id: Ibf61ab43eb7ae2ce8e99cce21cc55777359817e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332424
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-06 17:22:34 +00:00
John Stiles
56277e5a6e Add Literal<T> and getVecComponent<T> for template code.
This gives template code a generic way to access IntLiteral/
getIVecComponent or FloatLiteral/getFVecComponent based on their
template type.

(Interestingly, we have BoolLiterals and support vectors of bools, but
don't have any paths in the optimizer that support constant-folding bool
vectors, so we don't have a getBVecComponent.)

Change-Id: I7af754f77544716cf6cd5c6703a07fb3dd1d5173
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332742
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-06 17:15:24 +00:00
Brian Osman
6a1763b983 Fix merge conflict in RELEASE_NOTES.txt
No-Try: true
Change-Id: Ief2f5af2d7ea827f772c5ee1c32bae761fc8d60b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332748
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-06 16:51:49 +00:00
kcbanner
4eb7c23d52 - GrGLPath: Fix hitting an assert when a style applies a path effect that results in an empty path
- Add rendering test for the empty path case

Bug: skia:10909
Change-Id: I19188c58d4ee0841e441c33f4c1a5ed27dc2fd25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332736
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-11-06 16:48:24 +00:00
Greg Daniel
1448eb979d Fix formatting nit.
Change-Id: Id107d50ba23db4491d54d80b1d4c688bd3e80ebc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332741
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
2020-11-06 16:46:44 +00:00
Brian Osman
4cb5c5e172 Revert "Rearrange SkSL pre-include modules to hide things"
This reverts commit bea0dc67f4.

No-Try: true
Change-Id: I7b000de199dc23bd3719a4ee835b2a8d3c93fefd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332747
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-06 16:30:35 +00:00
Herb Derby
25f9db4597 test for extents of SkTextBlob drawing
Change-Id: I40e0630e913f4551da5f5fd045beae91dd7cd759
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332740
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-11-06 16:29:14 +00:00
Ethan Nicholas
ba9a04fb8d Revert "Revert "Additional SkSL benches""
This reverts commit 1277971939.

Change-Id: I7985ef22ddd19adcab468acc684b330ce6978c8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332738
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-11-06 15:10:10 +00:00
Greg Daniel
729a37f9f7 Fix ST array storage for vulkan memory barriers.
Change-Id: Icd8d72df4412e899c940a3d6f6ffa2aa961849ab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332605
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-11-06 15:05:50 +00:00
Adlai Holler
3078f85ca5 Remove dead no-sorting GrDrawingManager code paths
This simplifies our world a little bit.

Bug: skia:10877
Change-Id: I2fb27cd53e9fda0f279c046f6eaa50fd02774e72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332604
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-11-06 14:49:50 +00:00
Michael Ludwig
6cafdc069b Revert "Draw image filters directly under non-axis-aligned transforms"
This reverts commit f8f23b2030.

Reason for revert: b/172617382 is creating issues for Android's Webview

Original change's description:
> Draw image filters directly under non-axis-aligned transforms
>
> This removes hacking the canvas CTM and wrapping the paint's image
> filter in a special MatrixTransform that computed a post-transform
> instead of its documented pre-transform effect. Performance-wise, the
> computed layer sizes should be about the same, but we avoid one less
> render target switch because we apply the transformation while drawing
> to the dst device, vs. transforming into another temporary layer and
> then drawing that to the dst device.
>
> Several important changes in behavior here:
> 1. The DeviceCM record no longer has a stashed matrix to restore and
>    holds its restoration paint directly.
> 2. Devices for image filter inputs can now have device-to-global
>    transforms that are not integer translates.
> 3. The MatrixTransform hack punted when there was perspective because it
>    could produce excessively large temporary images, but the new version
>    appears to work around that. We now impose a maximum layer size to
>    protect against that and automatically scale the layer to prevent it.
>    Perspective image filters otherwise now draw correctly.
> 6. Updated layer sizing code to use the new image filter APIs
> 7. Updated backdrop filter and restore filters to go through the same
>    code paths, although restore filters skip the intermediate image
>    transform.
>     - layer bounds and transforms now go through the updated skif API
>       and is hopefully more straight forward to understand.
> 8. Now we can optimize root color filter nodes of a filter DAG, even if
>    the entire DAG can't be represented as a color filter. The last node
>    is pulled off and composed with the restoration paint instead.
>
> Bug: skia:9074,skia:9283
> Change-Id: I1fa1d50135b9d6d453b02f89aa3cc3b54deab678
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328376
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,fmalita@google.com,reed@google.com,michaelludwig@google.com

Change-Id: I098d0e4b8ee067b436400eb9fea047e629544eec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9074
Bug: skia:9283
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332737
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-11-06 14:06:42 +00:00
skia-autoroll
05f74f28d6 Roll ANGLE from 1e494cae8d48 to 3dfaeeb00271 (13 revisions)
1e494cae8d..3dfaeeb002

2020-11-06 syoussefi@chromium.org Vulkan: Don't flush deferred clears on READ framebuffer sync
2020-11-06 jmadill@chromium.org Fix trigger.py using deprecated parameters.
2020-11-06 jdarpinian@chromium.org Allow choosing EAGL or CGL at runtime
2020-11-06 jmadill@chromium.org GL: Add support for GL_OES/EXT_texture_buffer
2020-11-06 syoussefi@chromium.org Vulkan: Store image updates per level
2020-11-05 lexa.knyazev@gmail.com Metal: Early loop exit during attachments clear
2020-11-05 syoussefi@chromium.org Vulkan: Defer clears even if following command is scissored
2020-11-05 lexa.knyazev@gmail.com Metal: Allow unswizzled BC1 RGB
2020-11-05 jmadill@chromium.org Ensure trace test failures are unexpected.
2020-11-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from bcf5b211db92 to c2b2b5788575 (3 revisions)
2020-11-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 19f01495a8a1 to ad54c71632cc (2 revisions)
2020-11-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from 07bbf14a831b to f635feea18cb (1 revision)
2020-11-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9c36b5262108 to 3c7580ad595f (415 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 bsalomon@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: bsalomon@google.com
Change-Id: I1ca7889d7c87d241370d48894ee18cb7980dd9c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332685
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-06 04:59:50 +00:00
skia-autoroll
86d4f7de49 Roll SwiftShader from ad54c71632cc to 612ded0654a0 (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/ad54c71632cc..612ded0654a0

2020-11-05 srisser@google.com Merge changes I3c4f10f7,I5b7ddc75
2020-11-05 capn@google.com Fix Android.bp build after SPIRV-Tools update
2020-11-05 amaiorano@google.com Subzero: fix invalid arg access on Windows x86 for split variables
2020-11-05 amaiorano@google.com Subzero: fix non-deterministic stack layout and code-gen

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

To 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: bsalomon@google.com
Change-Id: Ibe5db1e6ed489f8d233a37b854676a9e62cd1601
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332684
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-06 04:48:15 +00:00
skia-autoroll
2e6a1d0a47 Roll Chromium from e1d559cf7760 to a4f272b3a785 (432 revisions)
e1d559cf77..a4f272b3a7

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

To 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: bsalomon@google.com
Change-Id: I80ef9921cd0c56d74bb35c31c6db6b3e5f3d0f58
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332683
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-06 04:46:40 +00:00
skia-autoroll
92bc649cd7 Roll Dawn from 6564890116fd to 2b6b0f45ff05 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/6564890116fd..2b6b0f45ff05

2020-11-05 enrico.galli@intel.com Add support for Tint's HLSL writer as a Toggle
2020-11-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 77f7bb5b005d to 795bf4c71637 (10 revisions)
2020-11-05 cwallez@chromium.org Remove support for multiple entrypoints with the same name
2020-11-05 jiawei.shao@intel.com DawnTest: only choose one adapter from those with same name and backendType

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 cwallez@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: cwallez@google.com
Change-Id: I562fdb9486dccc25281029b23222537efac37c1f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332686
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-06 04:43:10 +00:00
John Stiles
8d0f710ef0 Test that SkSTArray and SkTArray classes are compatible.
We have the ability to copy or move an SkSTArray into an SkTArray, or
vice versa. However, this was not reflected anywhere in our test
coverage, and not all copy/move paths were exercised on every platform.
This led to a blind spot in our tests, meaning that Skia could
successfully build locally but fail on CQ bots due to SkSTArray usage in
various platform-specific code.

Change-Id: Ie77ccc0a4be5c2a47f1eaa026c910c59d38a3e60
Bug: skia:10891
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332602
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>
2020-11-05 22:36:50 +00:00
Brian Osman
bea0dc67f4 Rearrange SkSL pre-include modules to hide things
This makes numerous internal and GLSL types or intrinsics hidden from
public (runtime effect) SkSL. In particular:

- Only core numeric types are visible to all program types. GLSL types
  involving images, textures, and sampling are restricted to internal use.
- sk_Caps is no longer visible to runtime effects.
- The set of intrinsics available to runtime effects is now a separate,
  curated list in sksl_public.sksl. It exactly matches the GLSL ES 1.00
  spec order.
- The blend intrinsics are no longer visible, which also fixes a bug.
  These are nice, but we're not going to offer them yet - they involve
  enums, which creates complications.

Bug: skia:10680
Bug: skia:10709
Bug: skia:10913

Change-Id: I8fa1c94f6e4899f38530bb9cff33d147f6983ab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332597
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-11-05 21:44:40 +00:00
Michael Ludwig
f8f23b2030 Draw image filters directly under non-axis-aligned transforms
This removes hacking the canvas CTM and wrapping the paint's image
filter in a special MatrixTransform that computed a post-transform
instead of its documented pre-transform effect. Performance-wise, the
computed layer sizes should be about the same, but we avoid one less
render target switch because we apply the transformation while drawing
to the dst device, vs. transforming into another temporary layer and
then drawing that to the dst device.

Several important changes in behavior here:
1. The DeviceCM record no longer has a stashed matrix to restore and
   holds its restoration paint directly.
2. Devices for image filter inputs can now have device-to-global
   transforms that are not integer translates.
3. The MatrixTransform hack punted when there was perspective because it
   could produce excessively large temporary images, but the new version
   appears to work around that. We now impose a maximum layer size to
   protect against that and automatically scale the layer to prevent it.
   Perspective image filters otherwise now draw correctly.
6. Updated layer sizing code to use the new image filter APIs
7. Updated backdrop filter and restore filters to go through the same
   code paths, although restore filters skip the intermediate image
   transform.
    - layer bounds and transforms now go through the updated skif API
      and is hopefully more straight forward to understand.
8. Now we can optimize root color filter nodes of a filter DAG, even if
   the entire DAG can't be represented as a color filter. The last node
   is pulled off and composed with the restoration paint instead.

Bug: skia:9074,skia:9283
Change-Id: I1fa1d50135b9d6d453b02f89aa3cc3b54deab678
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328376
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-11-05 20:46:15 +00:00
Brian Salomon
88d7e625f9 Make ManagedBackendTexture fail on invalid GrBackendTexture
Makes it more sensible.

A bunch of call sites we're already written to expect this. Update
some others.

Change-Id: I77c28045ebf01e6aa9d92d2ebc37287604ec10c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332544
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-11-05 20:21:14 +00:00
Ethan Nicholas
1277971939 Revert "Additional SkSL benches"
This reverts commit a2d6b31f66.

Reason for revert: breaking bots

Original change's description:
> Additional SkSL benches
>
> This adds additional benchmarks to give us better insight into how long
> the various compilation phases take. The four benches per size now
> cover just parsing, parsing + converting to IR, parsing + converting to
> IR + optimizing, and finally parsing + converting to IR + optimizing +
> generating GLSL.
>
> Change-Id: I7099a5a9f40ae5031e330dc4e1bb08c2a20ada63
> Bug: skia:10805
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332262
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com

Change-Id: Idb3e3082d11f72978131068b2229ce2578d645c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332601
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-11-05 20:11:46 +00:00
Nathaniel Nifong
98f78232ae Add a method to search for the command that shades a pixel.
Supports a streamlined breakpoint workflow in the new debugger.
not used in the current debugger.

Change-Id: I9f30c92357c24e145a19c794e935e2c05594d883
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332256
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-11-05 19:44:22 +00:00
Mike Klein
0266c8a4e6 allow overriding {target,host}_link = ... in GN
This lets it be something other than cxx,
e.g. to compile with Goma but to link with the NDK locally,

    declare_args() {
      home = getenv("HOME")
      use_goma = true
      _target = "aarch64-linux-android21"
    }
    ndk = "$home/ndk"

    extra_asmflags = []
    extra_cflags = []
    extra_ldflags = []

    if (use_goma) {
      cc = "$home/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang"
      cxx = "$home/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang++"
      cc_wrapper = "$home/depot_tools/.cipd_bin/gomacc"

      target_cc = cc
      target_cxx = cxx
      target_link = "$ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=$_target"

      extra_asmflags += [ "--target=$_target" ]
      extra_cflags += [ "--target=$_target" ]
    } else {
      cc_wrapper = "ccache"
    }

    is_debug = true
    if (is_debug) {
      extra_cflags += [ "-Os" ]
    }

Change-Id: I17b9c3f72bc308e40c1565536d04d0673efd4ef1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332616
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-11-05 19:40:47 +00:00
John Stiles
107e862eb6 Add int-vector folding tests to VectorFolding.
This test is meant to demonstrate that constant folding for int and
float vectors is not on equal footing. Float vectors currently generate
better-optimized output.

Change-Id: Ib4822c7b594e9bc4eb4fb9cfe6ab46f7f76268d6
Bug: skia:10908
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332423
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-05 19:39:17 +00:00
Ethan Nicholas
a2d6b31f66 Additional SkSL benches
This adds additional benchmarks to give us better insight into how long
the various compilation phases take. The four benches per size now
cover just parsing, parsing + converting to IR, parsing + converting to
IR + optimizing, and finally parsing + converting to IR + optimizing +
generating GLSL.

Change-Id: I7099a5a9f40ae5031e330dc4e1bb08c2a20ada63
Bug: skia:10805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332262
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-11-05 19:13:47 +00:00
Michael Ludwig
64596c5c2b Use GrTBlockList instead of SkAutoSTMalloc to reduce GrAtlasTextOp size
On an x86_64 Windows machine, the original GrAtlasTextOp is 1304 bytes
total, with the following breakdown:
  - SkAutoSTMalloc<12, Geometry> = 1160 bytes, 16 of which are state and
    the rest is all usable data for Geometry (each Geom is 96 bytes).
  - Op state = 144 bytes, 8 of which is related to managing the
    auto-malloc, 32 bytes hold the processor set, and 64 bytes come from
    GrMeshDrawOp and parent classes.
  - This was probably particularly unfortunate when we used the memory
    pool for op allocations, because its block size was 16k. We would
    quickly use up an entire allocation with <16 atlas text ops.

With this change and https://skia-review.googlesource.com/c/skia/+/331657,
GrAtlasTextOp is 264 bytes broken down as:
  - GrTBlockList<Geometry, 1> = 152 bytes, 96 is an inline Geometry and
    the rest is state.
  - Op state = 112 bytes, 96 bytes hold the processor set and same
    parent class state as before.
  - The old atlas op had logic to grow its total storage following the
    sequence 12, 18, 27, 40, 60, 90...
  - The updated op configures the block list to grow with the following
    sequence 6, 18, 36, 60, 90...
  - This can be easily tweaked if we want to explore more aggressive or
    conservative approaches. The current multiplier and policy was
    chosen to reasonably match the old 12*(1.5)^n policy, which is not
    an implemented option in GrBlockAllocator (although seems more
    useful than the 2^n exponential policy).

Overall, a large reduction in the upfront allocation size, since it does
not assume every atlas text op will need to accumulate additional
geometry. GrTBlockList does have more overhead in what it tracks since
it has a linked list of byte arrays (24 vs. 56 bytes), but this lets it
avoid memory copies during a merge without it relying on realloc to be
successful. This extra built-in overhead is paid for by packing the
various flags/config options from 32 bytes into a 4 byte bitfield. Since
the atlas op does not upgrade its config as ops are merged, this
bitfield is effectively const and captures the majority of the logic
needed in combineIfPossible() with just an equals test.

GrTBlockList is one of the types I'm hoping can be relied upon by all of
Ganesh's ops to store the geometric/per-draw state that must be
accumulated during a merge. The atlas text op would be one of the early
adopters but also hopefully shows benefits on lower end devices. Perf
tests came out tied for me on my high-end machine, which is not
surprising, but I also feel like the code simplification is worth it
even if perf is no net change.

If it does turn out to have regressions, then we can revert and I can
circle back to optimizing the list class more.

Change-Id: Ibb5b198e42006d0ed8aab6f17d9e371fbcad94dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/330738
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-11-05 18:29:47 +00:00
John Stiles
71624de2c5 Allow constant propagation for negated constant-vectors and ints.
This CL improves on the previous fix for oss-fuzz:26789 by actually
propagating the negation from the PrefixExpression inside the
constructor, which unblocks further optimizations.

Interestingly, this fix also exposes a further missing optimization--we
optimize away comparisons of constant-vectors for floats, but fail to
do the same for ints.

Change-Id: I9d4cb92b10452a74db96ff264322cdc8a8f2a41f
Bug: oss-fuzz:26830, oss-fuzz:26789, skia:10908
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332263
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-05 17:39:48 +00:00
Michael Ludwig
efc89d2119 Compact fixed state tracked in GrAtlasTextOp
Seperated from https://skia-review.googlesource.com/c/skia/+/330738

Change-Id: I1f5e8aa1bb85b420d10123ea3adf798d1195fcea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331657
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-11-05 17:37:06 +00:00
Florin Malita
401321d98e [svg] Minor parser tweaks
- remove the custom-func SkSVGAttributeParser::parse version and always
  dispatch via SkSVGAttributeParser::parse<T>(T*) - this should
  avoid adding any other parse helper declarations in the future
- relocate the turbulence parse helpers to SkSVGAttributeParser (while
  keeping the definition in SkSVGFETurbulence.cpp)
- update ParseResult initialization to use move semantics

Change-Id: I8ed9811671a6fbc5971f9d1f14e7b9c07da7dec0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332540
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2020-11-05 17:12:06 +00:00
Brian Salomon
e5e8e66e9b MakeFromYUVATexturesCopyToExternal check texture valid before
dimensions.

This gets checked later anyway, but doing it early prevents access to
uninit memory. (Though, maybe we should always init the memory.
Leaving that for separate change).

Change-Id: I4c18747a47056cae6e0db24d767ede7d1cc637b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332537
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-11-05 16:26:42 +00:00
John Stiles
96c2165ce1 Revert "Add memsets to the GrBlockAllocator unit tests."
This reverts commit 87bc83eaa6.

Reason for revert: breaking some platforms on tree

Original change's description:
> Add memsets to the GrBlockAllocator unit tests.
>
> These will verify that our blocks are actually set up properly--if not,
> we'll stomp over a sentinel word and/or trip an ASAN poisoned byte,
> causing the test to fail.
>
> Change-Id: I2dcb5b913d00c408f70c71f2660c6ec6017b452c
> Bug: skia:10885
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332260
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

TBR=brianosman@google.com,michaelludwig@google.com,johnstiles@google.com

Change-Id: I93abff1ead8430a233c18e9ff30c76192a090ab9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10885
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332545
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-11-05 16:17:44 +00:00
Derek Sollenberger
1e6ae6d193 Revert "cull glyphs that have far out positions"
This reverts commit bea4197f8b.

Reason for revert: b/172455654

Original change's description:
> cull glyphs that have far out positions
>
> If a glyph's position is > 32K or < -32K, then it is not
> on the device. Don't bother adding it to the GrOp. This
> reduces the glyph position from SkIPoint to
> Vec<2, int16_t>.
>
> But, if some of the glyphs are dropped, and the blob is
> scrolled, then the glyphs may be in range. Add a flag
> to track if glyphs were dropped, and force a redraw if
> not exactly the same matrix is used to draw.
>
> In addition,
> * Rename VertexData to DevicePosition
> * Add needed calls to GrGlyphRect
>
> Change-Id: Ifdb8aa86d3da0b69d46c11fce5f33803781d880c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/330622
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=bungeman@google.com,herb@google.com

Change-Id: I48e6b7c2d196573e091d91f7d29008795c80dcdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332543
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2020-11-05 16:03:33 +00:00
Derek Sollenberger
7e80880884 Revert "move subrun instances and support to .cpp"
This reverts commit 52991f8c81.

Reason for revert: b/172455654

Original change's description:
> move subrun instances and support to .cpp
>
> Change-Id: I12b5110b378a53f0ae416ede5ff864af116a3166
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331457
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=herb@google.com,robertphillips@google.com

Change-Id: I37bf6785aa0d9609b6a2dc88b409f546cbc95a17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332542
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2020-11-05 16:03:33 +00:00
Derek Sollenberger
f843170eb2 Revert "move subrun code to anonymous namespace"
This reverts commit a5eff5d53a.

Reason for revert: b/172455654

Original change's description:
> move subrun code to anonymous namespace
>
> Change-Id: Ic4325a5529ba354c0ce176c4299a9c179f911ff2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332136
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=herb@google.com,robertphillips@google.com,reed@google.com

Change-Id: I5601b086ff3dc0a5de85fb427cc01568c67f18ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332541
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2020-11-05 16:03:33 +00:00
John Stiles
e6a05a4ebe Migrate work from constructors to onOnceBeforeDraw.
GM constructors will run even for tests that have been disabled via -m.
Using onOnceBeforeDraw prevents this code from executing unless the test
is actually being run.

(This CL isn't intended to comprehensively fix every GM with a
constructor; this is just a handful that I encountered.)

Change-Id: Id1b8d2e25100c19dd672d98afcc0c4c73c3955ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332536
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>
2020-11-05 15:43:42 +00:00
Vignesh Venkatasubramanian
eb7f960705 Reland "heif: Add AVIF type and AVIF sniffing"
Fix: Do not use std::optional.

Bug: b/141654151
Change-Id: I6237db0d55b1ea92f7be3588a2b648b9e6014e3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331878
Reviewed-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2020-11-05 15:25:52 +00:00
Greg Daniel
25ebd95864 Rename msaa attachment usage to color usage.
In the long run msaa isn't really a usage and the usage is as a color
attachment. The msaa-ness can be inferred by the sample count.

Bug: skia:10727
Change-Id: Ibd3671301f86e542e147ea3ada5e7a5caac25849
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331596
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-11-05 15:23:22 +00:00
John Stiles
87bc83eaa6 Add memsets to the GrBlockAllocator unit tests.
These will verify that our blocks are actually set up properly--if not,
we'll stomp over a sentinel word and/or trip an ASAN poisoned byte,
causing the test to fail.

Change-Id: I2dcb5b913d00c408f70c71f2660c6ec6017b452c
Bug: skia:10885
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332260
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-05 14:57:22 +00:00
Brian Salomon
694ff17357 Revert "Revert changes to unbreak bots."
This reverts commit 49721c8437.

Reason for revert: fixed double usage of plane release context in
 YUVUtils.

Original change's description:
> Revert changes to unbreak bots.
>
> f01a9d9020
> is the culprit
>
>
> Revert "GrRefCntedCallback has Make function."
>
> This reverts commit b2c42140ea.
>
> Revert "Add SkImage::MakeFromYUVATexturesCopyToExternal"
>
> This reverts commit f01a9d9020.
>
> Bug: skia:10632
> Change-Id: Ief076f168b63ff8ca15b607163a13d5f52a733d2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331798
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com

Change-Id: I41cdfe0d5b8587f85fae0c804c059c0d6ff92800


Bug: skia:10632
Change-Id: I41cdfe0d5b8587f85fae0c804c059c0d6ff92800
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331876
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-11-05 14:35:23 +00:00
skia-autoroll
8cdba3e3fa Roll ANGLE from 6372a56f3a15 to 1e494cae8d48 (7 revisions)
6372a56f3a..1e494cae8d

2020-11-05 b.schade@samsung.com Vulkan: Add support for EXT_copy_image
2020-11-05 m.maiya@samsung.com LuminanceWorkaroundTextureSwizzleBug test bug fix
2020-11-04 jdarpinian@chromium.org Reland "ANGLE_platform_angle_device_context_volatile_* extensions"
2020-11-04 geofflang@google.com Mark uniform samplers in an array unused per element
2020-11-04 syoussefi@chromium.org Vulkan: Don't break the render pass on scissor change
2020-11-04 m.maiya@samsung.com Vulkan: Enable GL_EXT_buffer_storage extension
2020-11-04 ianelliott@google.com Vulkan: Suppress VUID-VkImageViewCreateInfo-usage-02652

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

To 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: bsalomon@google.com
Test: Test: dEQP-GLES31.functional.copy_image.*
Change-Id: I888ff31834f6e1ce9d424aaa1f08eee1affaa7e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332476
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-05 04:55:35 +00:00
skia-autoroll
3b9bf7a82b Roll Dawn from db8766bb239b to 6564890116fd (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/db8766bb239b..6564890116fd

2020-11-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from de6938789ccb to 77f7bb5b005d (18 revisions)
2020-11-04 cwallez@chromium.org Reenable DepthBias tests on Swiftshader
2020-11-04 enga@chromium.org Support sampling depth and stencil of combined d/s formats
2020-11-04 cwallez@chromium.org Fix examples when using the wire.
2020-11-04 cwallez@chromium.org Rolling 7 dependencies
2020-11-04 jiawei.shao@intel.com Remove DAWN_NATIVE_EXPORT declaration from dawn_platform::Platform

Also rolling transitive DEPS:
  https://chromium.googlesource.com/chromium/src/third_party/jinja2 from b41863e42637 to a82a4944a7f2
  https://chromium.googlesource.com/chromium/src/third_party/markupsafe from 8f45f5cfa000 to 0944e71f4b2c

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 cwallez@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: cwallez@google.com
Change-Id: Ia5394662095acdbb56bff3046b3474a939212ab9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332458
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-05 04:50:00 +00:00
skia-autoroll
dfb912fda0 Roll Chromium from 1f9589cf9ca4 to e1d559cf7760 (402 revisions)
1f9589cf9c..e1d559cf77

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

To 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: bsalomon@google.com
Change-Id: I042f3ec1dcb75b53b7c931b6ea5ab34bf529b8f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332456
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-05 04:48:15 +00:00
skia-autoroll
906501df4f Roll SwiftShader from 31e28d20f878 to ad54c71632cc (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/31e28d20f878..ad54c71632cc

2020-11-04 capn@google.com Fix Vulkan benchmarks build
2020-11-04 capn@google.com Fix unaligned access on depth values
2020-11-04 capn@google.com Fix LLVM alloca array size type
2020-11-04 capn@google.com Resolve MSan symbols dynamically

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

To 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: bsalomon@google.com
Change-Id: Ib6eca8ffeb4c4c62664b0ac909619e0e06fa63d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332457
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-05 04:44:55 +00:00
John Stiles
68dcf542b7 Migrate CrbugOssfuzz21688 to a golden-output test.
Change-Id: I2c077e723d123b01fbcc8fe841ee1f3d28dc152d
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332037
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-11-04 22:34:13 +00:00
Brian Osman
91292e9482 Runtime Effects: Support 'uniform shader' (vs. 'in shader')
The previous behavior leaked Skia-internal concepts into public SkSL.
Users coming from GLSL will expect that bindable/sampleable objects are
uniform (just like texture2D). This keeps the old support around (and
tested), but updates all of our examples to use 'uniform'.

Bug: skia:10679
Change-Id: I0c98162f5e21dad7014d9778ceb26143d2f6030e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332376
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-11-04 22:29:53 +00:00
John Stiles
95acbbc3c9 Fix crash when comparing against a negated constant vector.
This CL solves the fuzzer crash. Constant propagation of the negative
sign into the vector will be investigated in a followup CL.

This CL also adds a few cleanups into IRGenerator::constantFold.

Change-Id: If73a4fe2a5777265e7d43cc4f482653a38cb59af
Bug: oss-fuzz:26830, oss-fuzz:26789
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332261
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-11-04 22:17:53 +00:00
John Stiles
6c88ea1278 Create unit test for comparison against a negated constant vector.
Change-Id: Ibc1a8d3ebbf62cc55d013f7d9146f6b155d11da2
Bug: oss-fuzz:26830, oss-fuzz:26789
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332377
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>
2020-11-04 22:15:23 +00:00
Tyler Denniston
57154998a8 [svg] Add plumbing for bottom-up attribute parsing
One significant source of boilerplate in the SVG frontend is the
plumbing to ensure type safety all the way down from the XML layer to
the SkSVGNode layer. This is mostly an artifact of the top-down parsing
approach currently used by the SkDOM -> SkSVGDom building process.

One way to help remove some boilerplate is to perform attribute parsing
bottom-up, where each SVG node knows how to parse and populate its own
attribute values from a string-valued KV pair.

Additionally, bottom-up parsing allows us to support the case of the
same SVG attribute name having different meanings on different nodes
(e.g. the "type" attribute has different meaning on <feTurbulence>
versus <feColorMatrix>).

This CL adds some initial work to start us down that road, and ports the
attributes previously added for <feTurbulence> to use the new code path.

Change-Id: I2973cfab96891475d05ebf1228117626ca48ef4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331477
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-11-04 21:48:03 +00:00
Ben Wagner
450eb0468d Implement font family names on iOS.
Tries to find and use newer API if available, with fallback to
older API as needed.

This also fixes family names for custom font collections.

Bug: skia:10850
Change-Id: Ie3c3cc5f342c78cbe0015584d84063435358e59e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332177
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-11-04 21:09:33 +00:00
skia-autoroll
96dd402cd8 Roll ANGLE from 068bb086e1c8 to 6372a56f3a15 (53 revisions)
068bb086e1..6372a56f3a

2020-11-04 jmadill@chromium.org Gold trace tests: Add logging for filter misses.
2020-11-04 syoussefi@chromium.org Vulkan: Make ImageHelper::flushStagedUpdates take gl::LevelIndex
2020-11-04 jmadill@chromium.org Trace Gold Tests: Fix filter name.
2020-11-04 lehoangq@gmail.com Metal: Enable dEQP GLES3 tests on AMD
2020-11-04 ianelliott@google.com Vulkan: VVL errors once again cause dEQP tests to fail
2020-11-04 m.maiya@samsung.com Vulkan: Add support for VK_KHR_image_format_list extension
2020-11-04 lehoangq@gmail.com Metal: Add ES3_METAL to ANGLE_ALL_TEST_PLATFORMS_ES3
2020-11-04 xiaoxuan.liu@arm.com Vulkan display mode: fix skia build failure
2020-11-04 lehoangq@gmail.com Metal: fix max varyings, copyImage between mips, depth fmt
2020-11-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b5bf82693f85 to 19f01495a8a1 (6 revisions)
2020-11-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 1b2f8307f21d to 128608f6da3a (17 revisions)
2020-11-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 5735576f87be to bcf5b211db92 (4 revisions)
2020-11-04 lehoangq@gmail.com Metal: Support tri-fan & line-loop with primitive restart
2020-11-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from ce54b897663f to 9c36b5262108 (443 revisions)
2020-11-04 syoussefi@chromium.org Vulkan: Fix scissor update in FramebufferVk::syncState
2020-11-04 xinghua.cao@intel.com Restrict to translate uniform block to StructuredBuffer
2020-11-04 ianelliott@google.com Refactor FrameCapture.cpp to use common utility
2020-11-04 syoussefi@chromium.org Vulkan: Fix use of uninitialized data in staged clears
2020-11-04 geofflang@google.com Revert "Vulkan: Add features to modify sampling parameters"
2020-11-03 courtneygo@google.com Fix presubmit failure with recent glslang update
2020-11-03 jmadill@chromium.org Gold Trace Tests: Handle test filter.
2020-11-03 jmadill@chromium.org Enable writing histogram-set-json-format.
2020-11-03 jmadill@chromium.org Don't print reuse warning when forcing new displays.
2020-11-03 stuartmorgan@google.com Fix copyright line format
2020-11-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from f7da52775714 to 5735576f87be (1 revision)
2020-11-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from 3f747ee91e3b to 51c1c5ab56d5 (1 revision)
2020-11-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from e46399ddd2c7 to 1b2f8307f21d (7 revisions)
2020-11-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 7751fe38f474 to b5bf82693f85 (7 revisions)
2020-11-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from a64ace71870c to ce54b897663f (254 revisions)
2020-11-03 syoussefi@chromium.org Vulkan: Use dst access masks to determine if barrier is needed
2020-11-03 xiaoxuan.liu@arm.com Reland "Add support for Linux vulkan backend with VK_KHR_display"
2020-11-03 courtneygo@google.com Allow single threaded CommandProcessor
2020-11-03 jmadill@chromium.org Test Runner: Robustly handle unexpected crashes.
2020-11-03 m.maiya@samsung.com Vulkan: Bug fix in sRGBDecode logic
2020-11-02 jmadill@chromium.org Test Runner: Add ability to retry flaky tests.
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from e69b9b7294af to 9e07e4424cd4 (5 revisions)
2020-11-02 thomasanderson@chromium.org Remove dependency on //build/config/linux:x11
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f2fabcd1994c to a64ace71870c (130 revisions)
2020-11-02 jmadill@chromium.org Expand suppression of new EGL test.
2020-11-02 syoussefi@chromium.org Noop clear of non-existing attachments.
2020-11-02 syoussefi@chromium.org Noop empty-scissor clears
2020-11-02 jmadill@chromium.org Revert "Add support for Linux vulkan backend with VK_KHR_display"
2020-11-02 jmadill@chromium.org Tests: Print warning when we hit display reuse limit.
2020-11-02 syoussefi@chromium.org Vulkan: Fix prerotation bug with glInvalidateSubFramebuffer
2020-11-02 amy.liu@arm.com Fix maxShaderAtomicCounters value.
2020-11-02 xiaoxuan.liu@arm.com Add support for Linux vulkan backend with VK_KHR_display
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 34ae8a475754 to f7da52775714 (8 revisions)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from f673b4e6ebf3 to e46399ddd2c7 (11 revisions)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 740ae9f60b00 to 142cb87f803d (1 revision)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e6c9497255c6 to 7751fe38f474 (3 revisions)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Headers from 320af06cbdd2 to 87451c55aa8b (1 revision)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from ee0de094ddff to 3f747ee91e3b (1 revision)
2020-11-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 1e88b939ff30 to f2fabcd1994c (528 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 bsalomon@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: bsalomon@google.com
Test: Test: dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.*vertex
Change-Id: Id78f218d29131ab2c073f494a6fd8d96aa08aad8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332357
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-11-04 21:07:13 +00:00