Commit Graph

50547 Commits

Author SHA1 Message Date
Kevin Lubick
be72801f29 Reland "[canvaskit] Replace RRect objects with TypedArrays."
This reverts commit 370de72763.

Reason for revert: Unrelated to breakage

Original change's description:
> Revert "[canvaskit] Replace RRect objects with TypedArrays."
> 
> Revert submission 314622
> 
> Reason for revert: breaking wasm bots
> Reverted Changes:
> Ia1ba13814:[canvaskit] Replace RRect objects with TypedArrays...
> Ib80b15e2d:[canvaskit] Change SkRects to be arrays, not objec...
> I790b2d6fc:[canvaskit] Add drawRect4f as example 'fast path' ...
> 
> Change-Id: I3912ffeb446b497e4e03a6260e51cae1e664bd83
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314894
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

TBR=kjlubick@google.com,michaelludwig@google.com,nifong@google.com

# Not skipping CQ checks because this is a reland.

Change-Id: I9b1e38fd36f635146b3b518142bbc4626007700f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315141
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-09-03 11:57:24 +00:00
skia-autoroll
a66a9c31a3 Roll SwiftShader from e1051cbaad46 to 75690ce7ef4a (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e1051cbaad46..75690ce7ef4a

2020-09-03 sugoi@google.com DescriptorPool error fix
2020-09-03 sugoi@google.com Only use clang specific directives when clang is used
2020-09-02 capn@google.com Skip texel address sample offset if zero
2020-09-02 srisser@google.com Fix enum-hashing build error on Ubuntu 16.04

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I5353162ccdf0fe7a6164b580b99a531182ee624b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315082
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-03 04:47:49 +00:00
skia-autoroll
9e812d10a1 Roll Chromium from 33b01ad5c6d0 to 210fb6b52262 (274 revisions)
33b01ad5c6..210fb6b522

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I90ec23b82ab16d381632d08d0bf48857a4367fa0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315080
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-03 04:43:04 +00:00
skia-autoroll
f5e2b2ecc3 Roll ANGLE from 6eeb3d8bf667 to 0c25fbe3e3ed (14 revisions)
6eeb3d8bf6..0c25fbe3e3

2020-09-03 syoussefi@chromium.org Vulkan: Remove accidental padding in push constants
2020-09-02 syoussefi@chromium.org Vulkan: Allow pbuffer usage if no window support
2020-09-02 geofflang@chromium.org Add a frontend feature to disable anisotropic filtering.
2020-09-02 syoussefi@chromium.org Vulkan: Don't break the RP on masked/scissored clears
2020-09-02 sugoi@google.com Make copyTexImage2D robust when source area is out of bounds
2020-09-02 syoussefi@chromium.org Vulkan: Fix resolve with different formats
2020-09-02 syoussefi@chromium.org Vulkan: Fix resolve-with-subpass with non-zero read attachment
2020-09-02 jonahr@google.com Workaround to disable OES_get_program_binary
2020-09-02 syoussefi@chromium.org Gracefully fail end2end tests if no window support
2020-09-02 sugoi@chromium.org Revert "Make copyTexImage2D robust when source area is out of bounds"
2020-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 863342438ec1 to 09df13c25e1b (356 revisions)
2020-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from f1315472247d to b0337a548273 (2 revisions)
2020-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 8a0ebd40f86d to c278dada96d9 (5 revisions)
2020-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a2e6c1a149f4 to e1051cbaad46 (5 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 michaelludwig@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
Bug: chromium:1034840,chromium:1123524,chromium:1124379
Tbr: michaelludwig@google.com
Change-Id: I06ef5d3cb92e50c66347dccdf0c1b0dd89efe036
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315083
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-03 04:42:44 +00:00
John Stiles
7571f9e490 Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'.
Mechanically updated via Xcode "Replace Regular Expression":

  typedef (.*) INHERITED;
    -->
  using INHERITED = $1;

The ClangTidy approach generated an even larger CL which would have
required a significant amount of hand-tweaking to be usable.

Change-Id: I671dc9d9efdf6d60151325c8d4d13fad7e10a15b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314999
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-03 03:41:26 +00:00
John Stiles
683beccf67 Migrate inliner-related tests to a separate unit-test file.
All tests are now GLSL-based instead of .fp based, for ease of
readability. DEF_TESTs which called test() more than once have been
split up into a separate individual DEF_TEST for each test() call, to
simplify fixups going forward.

Change-Id: I9202e95e9cafff3efc0c32aa3f3ca2eea04719fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314886
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-02 21:31:45 +00:00
Greg Daniel
6ed2dccafd Don't require secondary command buffers on mali vk.
Change-Id: Ib2c3a55421fa3f052f337be6b75022fa4d30ac8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314319
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-09-02 21:27:46 +00:00
Michael Ludwig
c7fa895e50 Revert "Add idea of DataType to SkYUVAPixmapInfo."
This reverts commit ed63444587.

Reason for revert: trying to unblock android roller, which incorrectly thinks this has a merge conflict: https://b.corp.google.com/issues/167576324

Original change's description:
> Add idea of DataType to SkYUVAPixmapInfo.
> 
> DataType describes the data type of YUVA channels
> independent of how they are grouped into planes.
> 
> Adds mapping functions between SkColorType/channel count
> and DataType.
> 
> SkYUVAPixmapInfo can be constructed from DataType and will
> choose appropriate SkColorTypes for each plane.
> 
> Valid SkYUVAPixmapInfos now have the same DataType for each
> plane (could relax this in the future, esp for alpha plane).
> 
> SkYUVAPixmapInfo::SupportedDataTypes specifies the supported
> combinations of SkYUVAInfo::PlanarConfig and
> kYUVAPixmapInfo::DataType supported by a GrContext (based on
> supported texture formats).
> 
> SkImageGenerator/SkCodec YUVA query API now takes a
> SupportedDataTypes.
> 
> Change-Id: I8791234638e6ba3396d1e7960b7bc210edc6dd57
> Bug: skia:10632
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314276
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,scroggo@google.com

Change-Id: I72c39539a4766f10cac3ca3cdef6c503a8319ff1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314895
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-09-02 21:26:39 +00:00
Michael Ludwig
370de72763 Revert "[canvaskit] Replace RRect objects with TypedArrays."
Revert submission 314622

Reason for revert: breaking wasm bots
Reverted Changes:
Ia1ba13814:[canvaskit] Replace RRect objects with TypedArrays...
Ib80b15e2d:[canvaskit] Change SkRects to be arrays, not objec...
I790b2d6fc:[canvaskit] Add drawRect4f as example 'fast path' ...

Change-Id: I3912ffeb446b497e4e03a6260e51cae1e664bd83
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314894
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-09-02 21:21:48 +00:00
Michael Ludwig
1f49ceb404 Revert "[canvaskit] Change SkRects to be arrays, not objects."
Revert submission 314622

Reason for revert: breaking wasm bots
Reverted Changes:
Ia1ba13814:[canvaskit] Replace RRect objects with TypedArrays...
Ib80b15e2d:[canvaskit] Change SkRects to be arrays, not objec...
I790b2d6fc:[canvaskit] Add drawRect4f as example 'fast path' ...

Change-Id: Ie6e4c57ba412ca9ff8e4446b06681b51029da2d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314893
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-09-02 21:21:36 +00:00
Michael Ludwig
55289ae4c6 Revert "[canvaskit] Add drawRect4f as example 'fast path' API"
Revert submission 314622

Reason for revert: breaking wasm bots
Reverted Changes:
Ia1ba13814:[canvaskit] Replace RRect objects with TypedArrays...
Ib80b15e2d:[canvaskit] Change SkRects to be arrays, not objec...
I790b2d6fc:[canvaskit] Add drawRect4f as example 'fast path' ...

Change-Id: I295791532a2d27bff41f706fa8ed37e0499c27d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314892
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-09-02 21:21:20 +00:00
John Stiles
fffe3844ef Remove pipeline-stage workarounds from the GLSL code generator.
These checks don't appear to be useful; the methods in question are
overloaded anyway, and don't access the INHERITED:: methods.

Change-Id: I2ae637b7fb7f2281dc00fe148fbbbccb464cded9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314885
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-02 20:43:35 +00:00
Mike Klein
72de11581b update INHERITED style
Change-Id: Ic7f3dcd39083b933e1974546e4e43c981582aa58
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314928
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-02 20:37:29 +00:00
Nathaniel Nifong
0f7aa54e43 Fix GL loading bug in wasm debugger.
Seems this was fixed in canvaskit, but overlooked in debugger.

Change-Id: I326b809628a8531a521a6246e65798d37dcce1b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314457
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-09-02 20:20:15 +00:00
Kevin Lubick
2753b12ff5 [canvaskit] Add drawRect4f as example 'fast path' API
I added 3 tests, one using the drawRect API naively,
one using drawRect with a Malloc'd array, and one using
the drawRect4f.

rough local measurements:
 - [baseline with tip of tree code]: 50ms
 - naive drawRect: 40ms
 - drawRect with malloc: 28ms
 - drawRect4f: 27ms

I also tried the benchmarks locally with taking in paint
as a const reference. I did not see any changes, but that
could just be small sample size. I plan to land the code
as is for now, collect a bit of data in Perf and then try
landing the const reference stuff and see if we get
something measurable.

To aid this, I added in a helper list of tests to only run
some benchmarks easily.

Change-Id: I790b2d6fc32c125a4d371768fffb19ab22633d4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314622
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-09-02 20:10:30 +00:00
Kevin Lubick
bdc214a50e [canvaskit] Change SkRects to be arrays, not objects.
This changes several APIs, so there are lots of breaking
notes in the Changelog.

This made the "draw 100 colored regions" benchmark about
20% faster (1ms -> .8ms).

In theory, rendering should stay the same.

Change-Id: Ib80b15e2d980ad5d568fff4460d2b529766c1b36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/312491
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-09-02 20:10:30 +00:00
Kevin Lubick
c9498efc8e [canvaskit] Replace RRect objects with TypedArrays.
This is about 2.5x faster.

Will try to do the same for Rects in a followup CL.

Change-Id: Ia1ba1381435f4eee2fcf4f0cc2738e3306edd5f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/312304
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-09-02 20:10:30 +00:00
John Stiles
2ff9706328 Replace empty Block with Nop statement.
Change-Id: I2db149103a86e8d348affee2ba7b5bd70b0a2990
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314883
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-09-02 19:47:35 +00:00
Herb Derby
3d1d636cd8 simplify fill vertex calculations
Make direct2D concrete. Simplify the math.

Change-Id: I4cfa3263cedcd53108e47cfb4f503060ea13a7d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314458
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-02 19:28:05 +00:00
Brian Osman
16f376f5ee Disallow some combinations of program element and program kind
- Section is only allowed in .fp files
- Interface blocks, extensions,  and layout qualifiers (not attached
  to a declaration) are only allowed in fs/vs/gs.
- Enums are not allowed in runtime effects

Bug: skia:10626
Change-Id: I3de8c6894fa18340f5da942fb7d995e5426ef0d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314878
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-02 19:09:25 +00:00
John Stiles
ad2319f7c4 Ensure that inlined if/else blocks are properly scoped.
The bulk of the diff is just reordering existing code; the logical
changes are very small.

Change-Id: I3b918e64f5229da43d43f0922e8b59a007a6ad3e
Bug: skia:10687
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314882
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-09-02 19:07:55 +00:00
Ethan Nicholas
da6320ca11 Disallow a bare ';' at the top level of SkSL files
It turns out the parser was accepting empty declarations, turning them
into an empty modifiers declaration. This was causing problems with a
CL that was going to disallow declarations in contexts where they
weren't allowed. Since this was never the intended behavior, we now
disallow it.

Change-Id: Iea56529c76a946e8002ce1e929790aec488fd4f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314879
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-02 18:46:05 +00:00
Brian Osman
0e47880713 Remove some leftover double types from SkSLContext
Change-Id: I9d9a18f9d37cac385921fc0bd759407ea2f3db31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314881
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-02 18:33:45 +00:00
John Stiles
2099ac7b48 Add unit tests for inlining if/else blocks.
The following tests show incorrect results from the inliner:
- SkSLFPInlinedIfBodyMustBeInAScope
- SkSLFPInlinedElseBodyMustBeInAScope

Change-Id: Iafc567f9a97f67f9b734edd348ee25a14939592a
Bug: skia:10687
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314880
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-02 18:31:05 +00:00
Greg Daniel
e9a9ad9082 Remove unused GrVkDescriptorSetManager factor.
Change-Id: I50476e8b8bc9796656cb87cdbd6ec0fe83819f0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314496
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
2020-09-02 17:59:25 +00:00
John Stiles
c0dd06d0cb Ensure that inlined statements are properly scoped.
Change-Id: I43479d8543ea4860be45614a65cf8ad4cec307d8
Bug: skia:10687
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314877
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-02 17:50:35 +00:00
Mike Klein
5bdba1a5a6 add missing clamp to SkColorFilter_Matrix
I'm not sure why I left this out, or why for so long.
This fixes a few GMs, especially F16 where we're not
otherwise clamped.

Creates a little `Color clamp01(Color)` helper to
dedup this logic a little.

Bug: skia:10689
Change-Id: If879f75b219f910ac3e1491625674bcfc38d36bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314863
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-02 17:34:06 +00:00
Mike Klein
0ce0f6d5ab update SkNx allTrue/anyTrue
There's an _mm_movemask_ps() intrinsic that gets at the movmskps
instruction, which grabs the top (sign) bit of each float directly
without needing to reinterpret them as bytes.

I wouldn't really have done this but I think Chrome's clang is
miscompiling the version at head that uses _mm_movemask_epi8().  The
SkNx<2,float> `!(a+b == a*b).anyTrue()` test case fails when I use that
compiler, and spooky things like adding SkDebugf() make it pass again.

Change-Id: Idd0698d46ccfe9a00909faca1c6693a70e91157a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314860
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-09-02 17:11:45 +00:00
Robert Phillips
4ef21edffb Split creation of integral table out of GrRectBlurEffect
The plan is to use this table to evaluate the vertical blur
when creating the blurred rrect mask on the cpu.

Bug: 1108408
Change-Id: Ie322b9e2924d7b0f2242b28daebfcf21c8062aa8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314716
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-02 16:43:55 +00:00
John Stiles
8fa3b4e8cd Disallow inlining ternary true/false branches.
This prevents unnecessary work from being done, and also prevents us
from executing side-effects from the wrong side.

Change-Id: I4dbf3974388807f15e9eadb2abf1b1243d047ce2
Bug: skia:10688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314797
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-02 16:14:35 +00:00
John Stiles
648a81e5e8 Add unit tests for the inliner.
Some of these tests worked perfectly, but others expose latent inlining
bugs. The following tests show incorrect results from the inliner:
- SkSLFPTernaryExpressionsShouldNotInlineResults
- SkSLFPInlinedWhileBodyMustBeInAScope
- SkSLFPInlinedDoWhileBodyMustBeInAScope
- SkSLFPInlinedForBodyMustBeInAScope

Change-Id: I523e2e3272dea01d5c194a478df6f39ecadf2f5c
Bug: skia:10687, skia:10688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314796
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-09-02 15:39:35 +00:00
Mike Klein
a1711092b2 skvx spring cleaning
- remove some workarounds
  - more SI/SIN/SIT/SINT use
  - rewrap a lot of code to 100 cols
  - etc. misc.

Change-Id: I78b7ff272afcbb8658cf147aad8af85d0e2acf42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314676
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-09-02 15:22:55 +00:00
Robert Phillips
5bc0b65a4b Split up find_or_create_rrect_blur_mask_fp
Prepare this method for cpu-side generation of the rrect blur mask in DDL-mode

Bug: 1108408

Change-Id: I902ad507cd53f5f5b1d418a8b52f96dddffd0b18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314621
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-02 14:50:05 +00:00
Mike Klein
90b027a36b disable -Wpsabi everywhere
We've been stifling this on Clang builds but not GCC,
for no good reason.

Change-Id: I49d6059dcf7547d25ec83c507c92f115ab199b79
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314677
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-02 14:46:35 +00:00
Brian Salomon
ed63444587 Add idea of DataType to SkYUVAPixmapInfo.
DataType describes the data type of YUVA channels
independent of how they are grouped into planes.

Adds mapping functions between SkColorType/channel count
and DataType.

SkYUVAPixmapInfo can be constructed from DataType and will
choose appropriate SkColorTypes for each plane.

Valid SkYUVAPixmapInfos now have the same DataType for each
plane (could relax this in the future, esp for alpha plane).

SkYUVAPixmapInfo::SupportedDataTypes specifies the supported
combinations of SkYUVAInfo::PlanarConfig and
kYUVAPixmapInfo::DataType supported by a GrContext (based on
supported texture formats).

SkImageGenerator/SkCodec YUVA query API now takes a
SupportedDataTypes.

Change-Id: I8791234638e6ba3396d1e7960b7bc210edc6dd57
Bug: skia:10632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314276
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-02 13:21:45 +00:00
skia-autoroll
1338a37a1a Roll Chromium from 09ccc6e069bb to 33b01ad5c6d0 (397 revisions)
09ccc6e069..33b01ad5c6

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 michaelludwig@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: michaelludwig@google.com
Change-Id: Iadfbb0d3364678f07160a2685970c2bb001cb16c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314592
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-02 06:33:45 +00:00
skia-autoroll
6f5aa3945a Roll ANGLE from c0dda02196e8 to 6eeb3d8bf667 (8 revisions)
c0dda02196..6eeb3d8bf6

2020-09-01 geofflang@chromium.org Support DXT textures with non-block sized mip levels.
2020-09-01 geofflang@google.com Implement EXT_shadow_samplers
2020-09-01 jonahr@google.com Check for "Radeon" in renderer string.
2020-09-01 tobine@google.com Rename ANGLE apk package to org.chromium.angle
2020-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 1ca2f943e522 to 863342438ec1 (403 revisions)
2020-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from f428aa39ca2b to 8a0ebd40f86d (1 revision)
2020-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 0e98e894a84c to f1315472247d (2 revisions)
2020-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from 1b0bbd1550ed to 25d277579d1e (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC michaelludwig@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
Bug: None
Tbr: michaelludwig@google.com
Change-Id: Ia5aaafbaa9b286933fb60164a92d23d3d2be1342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314584
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-02 04:56:45 +00:00
skia-autoroll
0e24f85329 Roll SwiftShader from a2e6c1a149f4 to e1051cbaad46 (5 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a2e6c1a149f4..e1051cbaad46

2020-09-01 capn@google.com Fix undefined behavior in minifloat conversion
2020-09-01 capn@google.com Add unit test for 11/10-bit minifloat denormal underflow
2020-09-01 capn@google.com Assert multisample resolve has equal input and output formats
2020-09-01 jaebaek@google.com Handle OpenCL.DebugInfo.100 DebugOperation
2020-09-01 jaebaek@google.com Handle DebugGlobalVariable using DebugInfoNone

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I3b2b17ce3875dcba8967a596b0c5ca9b62b6cd15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314583
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-02 04:36:35 +00:00
skia-autoroll
fbcc21f83e Roll dawn from 0b89b27263b1 to 880013579381 (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/0b89b27263b1..880013579381

2020-09-02 jiawei.shao@intel.com Remove Toggle LazyClearBufferOnFirstUse
2020-09-01 enga@chromium.org Update depth-stencil copy validation
2020-09-01 bajones@chromium.org Various cleanups for updated indexFormat handling
2020-09-01 rharrison@chromium.org Roll 9 dependencies
2020-09-01 jiawei.shao@intel.com Fix the initialization of the buffers with MapRead and MapAtCreation

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang from 983698bb34ec to 517f39eee46f
  https://chromium.googlesource.com/external/github.com/google/shaderc from 21b36f736809 to b6c82a149ed8

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: I541c6e2a93a7ef480bc0af484480aa6549eb86cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314582
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-02 04:32:15 +00:00
Julia Lavrova
05ce2817f2 Revert "Removing ICU dependencies from skparagraph BUILD.gn file"
This reverts commit f1711adb1a.

Reason for revert: Build break

Original change's description:
> Removing ICU dependencies from skparagraph BUILD.gn file
> 
> (and from the sources, too)
> 
> Change-Id: I9d8ff51c91aad4b770b1f183c04734d31252b851
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313148
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

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

Change-Id: I1fce2436855e3e2a4cb7d1d7204b3ae49fd530e8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314540
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-01 20:51:33 +00:00
Julia Lavrova
f1711adb1a Removing ICU dependencies from skparagraph BUILD.gn file
(and from the sources, too)

Change-Id: I9d8ff51c91aad4b770b1f183c04734d31252b851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313148
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-09-01 20:35:34 +00:00
Mike Klein
f48dfd9857 Revert "debug LSAN failures"
This reverts commit d20e8e933f.

Reason for revert: I don't see anything helpful in the extra logs,
https://logs.chromium.org/logs/skia/4e63cda22bc11311/+/steps/symbolized_dm/0/stdout

Original change's description:
> debug LSAN failures
> 
> See the bot Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan,
> e.g. https://logs.chromium.org/logs/skia/4e5d9ebd8ab31111/+/steps/symbolized_dm/0/stdout
> 
> Change-Id: I4eb6da45ca74b43e44f4eed95568c174b28f5838
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314137
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,michaelludwig@google.com

Change-Id: I15b846a23429ae2b0f555742cb461bbf13610f0a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314480
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-01 19:36:56 +00:00
Herb Derby
75f5314fb8 fix unsigned compare against zero
Change-Id: Ia97c4d653331414a05e73945d3a9c6a953ffc97b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314497
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-09-01 19:32:11 +00:00
Mike Reed
3867c7013f plumb cubic params into gpu backend
Tiny diffs seen, but not sure how to avoid those and keep the code
path simple -- so just plan/hope to rebaseline as needed.

Change-Id: Id8ff7e85a6e70785592f76118a32def2d61599ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314076
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-09-01 19:31:51 +00:00
Brian Salomon
a0d913bef3 Separate our use of sampler object from GL support.
When sampler objects exist but we're not using them we bind 0.

Speculatively disable use on ANGLE to see effect on performance.

Change-Id: I5c76bd812760a5ac67a4327f2d02f4f831155029

Bug: skia:10644
Change-Id: I7ef23704b2ca11d92806f196589ec561a3ac9435
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314462
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-01 18:55:11 +00:00
Herb Derby
e1a00890a0 maintain the page index in AtlasLocator
AtlasLocator maintains the page index, and atlas location in fUVs.
This reduces the number of instructions needed to produce the
glyphs vertices. Moving the page index to the high bits allows many
simplifications to the code because subtraction can be used to
calculate width and height, and small offsets can be added with
no re-encoding.

Change-Id: I592543f772274dd18e00c0aec2520aadb1bf4158
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314317
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-01 18:24:51 +00:00
skia-autoroll
928a02b152 Roll Chromium from b89144a43412 to 09ccc6e069bb (370 revisions)
b89144a434..09ccc6e069

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I330f972358510441064e18e41d33fd35e1176cbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314376
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-01 17:47:01 +00:00
Mike Klein
d20e8e933f debug LSAN failures
See the bot Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan,
e.g. https://logs.chromium.org/logs/skia/4e5d9ebd8ab31111/+/steps/symbolized_dm/0/stdout

Change-Id: I4eb6da45ca74b43e44f4eed95568c174b28f5838
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314137
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-01 16:46:31 +00:00
John Stiles
4202dc47a4 Use erase-remove idiom for dead-variable removal.
Change-Id: Ief9aa9aa035424573533072af2c0cd8cee5bf9b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314460
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-01 15:50:11 +00:00
John Stiles
7954d6c77c Use erase-remove idiom to remove dead SkSL functions.
This pattern is a bit more efficient when multiple removals occur; it
avoids moving elements up more than once.
(https://en.wikipedia.org/wiki/Erase%E2%80%93remove_idiom)

Change-Id: I612d3c52145c889e30f7203f3c7298e461e855a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314459
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-09-01 15:30:01 +00:00