Commit Graph

54149 Commits

Author SHA1 Message Date
Ben Wagner
f913c6639d Expose text and clusters in SkTextBlob::Iter.
Expose text and cluster information in SkTextBlob::Iter when
SK_UNTIL_CRBUG_1187654_IS_FIXED is defined. The names are postfixed
with _forTest to indicate that these values are only being exposed for
testing purposes. This will allow blink tests to better verify the
output SkTextBlobs from the ShapeResultBloberizer. The long term goal
is to only store these results when necessary in a blink side type.

Bug: chromium:1187654,chromium:738643
Change-Id: I8db20a8423e5b0652429ddc16cf8fd14940217cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384336
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-03-13 01:13:36 +00:00
skia-autoroll
908f77ac09 Roll Chromium from c62ff0ef3797 to ed657436836f (453 revisions)
c62ff0ef37..ed65743683

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 kjlubick@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: kjlubick@google.com
Change-Id: I9b25015eeb51ff117d48bc3fca5fad5eb65e8b7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383977
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-13 00:35:26 +00:00
Jim Van Verth
36a814bffc Precompile cached SkSL to MTLRenderPipelineState.
Takes the stored shaders and pipeline descriptor data stored in the
persistent cache, and generates the appropriate pipeline state. This
is then stored in the pipeline cache rather than the two libraries.

Bug: skia:11392
Change-Id: I2d97dba033a844b70290a411f6bd8891de34e6f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384216
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-03-12 22:27:06 +00:00
Chris Dalton
9431079435 Unblock msaa clip atlas on AMD, Imagination, and Adreno
TBR=michaelludwig@google.com

Change-Id: I858df2325abac4ce8de966446078397cc359e944
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384296
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 22:14:16 +00:00
Chris Dalton
90898de346 Be more conservative about disabling tessellation for performance
Bug: skia:11138
Bug: skia:11139
Bug: chromium:1163441
Change-Id: I7b7e6ccae63e1fd0e5407609760125383c9fe8aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384263
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 22:02:56 +00:00
Brian Osman
c5422d0a00 Change the order of arguments to GrFragmentProcessor::Compose
This makes the function comment "... composes `f` and `g` into f(g(x))"
true. The alternative would be to just fix the comment (and maybe rename
the arguments), but I find this order of arguments less surprising for
something doing function composition.

Change-Id: I38e2ea81402d829c0850713cc060fe16cb19ae28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384319
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-12 22:01:36 +00:00
Chris Dalton
3561955b0a Rename fillRectWithLocalMatrix -> fillPixelsWithLocalMatrix
Rounding out to pixel grid boundaries makes this method dmsaa-ready by
ensuring no pixels have partial msaa sample coverage.

Bug: skia:11396
Change-Id: I2543c8806f94692992a692bd5adedf41326c8910
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383416
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-03-12 21:47:16 +00:00
John Stiles
3f35ac10b4 Performance experiment: Disable SkSL inliner in nanobench/skpbench.
This will allow us to measure the impact (positive or negative) of
inlining functions before submitting a shader to the driver.

Change-Id: Icbd64096445a353187b30feea68573d89ca18664
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384317
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-12 20:45:08 +00:00
Chris Dalton
4f447342ce Reland "Remove GrAAType from GrFillRRectOp"
This is a reland of 43e73df990

Original change's description:
> Remove GrAAType from GrFillRRectOp
>
> Replaces it with GrAA. This op always uses analytic coverage,
> regardless of MSAA state.
>
> Bug: skia:11396
> Change-Id: I75174a00bdb3b1f62319de5970aac7f1bbae8e10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383418
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

Bug: skia:11396
Change-Id: I2589a8f81a43f05329b91b6a136bebf723a5dd03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384298
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 20:30:36 +00:00
Chris Dalton
7854da39b3 Avoid structured bindings that trigger gcc bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78939

Change-Id: I412dbe28141ec26bb7ba2a8f8da9a936d4bef044
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384260
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 19:43:06 +00:00
Ethan Nicholas
2f4652f309 Revert "Fixed a number of spots where we should have been using RelaxedPrecision"
This reverts commit a04692f69e.

Reason for revert: Angry Vulkan bots.

Original change's description:
> Fixed a number of spots where we should have been using RelaxedPrecision
>
> Our SPIR-V output was missing many RelaxedPrecision decorations, which
> was presumably impacting performance.
>
> Change-Id: Iee32d4a42f37af167fe0e45f3db94c2142129695
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384178
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

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

Change-Id: If4fe945cb363c9b61b5a4abfde649a437689d2eb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384217
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-03-12 18:48:57 +00:00
John Stiles
e8b5a73b56 Remove extraneous line-breaks in generated GLSL/Metal code.
I ran into an issue in an upcoming CL which generated a particularly
ugly switch statement:

    switch (x) {
        default:
             discard;}

So I cleaned this up, and while resolving this issue, managed to improve
a bunch of existing codegen as well. The formatting change has been
split out to a separate CL since it impacts so many golden outputs.

Change-Id: I7a6be29903c47560dcc7f6acd3ef15fd0c5c3c50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384179
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-03-12 18:39:57 +00:00
Herb Derby
62d6373f8c add the sub run allocator to OwnedArenas operator =
This was an oversight in CL:
https://skia-review.googlesource.com/c/skia/+/383757

Change-Id: Icb7b22218a04ef967fda6d998b1f329fdd334970
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383956
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-12 18:34:56 +00:00
Ethan Nicholas
a04692f69e Fixed a number of spots where we should have been using RelaxedPrecision
Our SPIR-V output was missing many RelaxedPrecision decorations, which
was presumably impacting performance.

Change-Id: Iee32d4a42f37af167fe0e45f3db94c2142129695
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384178
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-03-12 18:00:56 +00:00
Brian Osman
9e6fc64988 Add SkColorFilterBase::onFilterColor4f virtual, optimize runtime CF
The non-virtual filterColor4f handles premul and unpremul at the API
boundary. onFilterColor4f always works on premul colors.

To get the performance benefits, all color filters in a chain need
to override the virtual. For now, WorkingFormatColorFilter is the
other target, as builtin filters that use runtime effects are always
wrapped with that.

Net effect on matrix_filterColor4f timing:
  before: 10000 ns
  after :   380 ns

Bug: skia:11730
Change-Id: I43d06f22c082636c4eca9e58dc3bc8225d09c910
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383705
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-12 17:50:06 +00:00
Chris Dalton
5d34303748 Delete GrSurfaceDrawContext::drawDRRect
Instead, we just push the inner rrect to the clip stack and draw the
outer. It's faster to use GrFillRRectOp for the outer rect anyway, and
now that we use analytic clipping even when MSAA is enabled, there is
no added value in a specialized drawDRRect implementation.

Bug: skia:7826
Bug: skia:11396
Change-Id: I07b3143f2a5f9c75c7dfeda54e777b105bde9992
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383396
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-03-12 17:12:36 +00:00
Chris Dalton
7d592cda58 Delete all low-level rendering from ccpr
This converts ccpr to just a poorly named atlas manager. The atlas
gets rendered by normal calls on its MSAA draw context:

  for (;;) {
      surfaceDrawContext->stencilPath();  // Stencil.
  }
  surfaceDrawContext->stencilRect(atlasBounds);  // Cover.

Bug: chromium:1158093
Change-Id: I758ffd372b2ed5bb8b370156b6f80f6204146700
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381618
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 17:02:56 +00:00
John Stiles
20c09f9290 Remove fExtraStatements/convertSingleStatement from IRGenerator.
These seem to be remnants of the old inliner.

Change-Id: I881127d056531a2a23e045ff8f3d8da52314fc6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384176
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-12 16:27:06 +00:00
Chris Dalton
39811680dc Reset onFlush render tasks when allocation failed
Change-Id: I527be48790585b91a7b2b223a61de4b5ac30e3c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384096
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 16:05:51 +00:00
Chris Dalton
03730e6ca6 Delete path caching and path rendering from ccpr
All that's left is a clip atlas renderer.

Bug: chromium:1158093
Change-Id: I8b509904a752a202ff1321e5302c41a3f57a5edb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383741
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 16:02:16 +00:00
Chris Dalton
1bb1f220bd Remove undefined behavior from innershapes gm
It is undefined for the inner rrect to not be contained in the inner.

Change-Id: I632060771fb7918050e1836d17b4702ea765a08f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384116
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-12 16:00:46 +00:00
Corentin Wallez
82fe4d2243 Prepare for Dawn using Tint unconditionally.
Bug: dawn:706
Change-Id: I2a85a5a457f9a4c60b8cc337b0330aa348bd62a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384137
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-12 15:05:26 +00:00
John Stiles
a0c04d6ceb Add Make factory functions to basic statements.
These are the simple cases like `break` and `continue` which don't have
any optimization opportunities, types to coerce, or errors to report.
We now have Make functions for consistency across our IRNodes, but they
don't contain any interesting logic.

Change-Id: Iefdb8e3dad66f131dc892f4a7dc647246bf2554e
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383707
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-12 15:04:36 +00:00
John Stiles
9ce80f71de Add Make factory functions to literal types.
This is mostly for consistency with other IRNode types; there isn't any
optimization opportunity or error checking for literals.

Change-Id: I0e6a55cddbd814585ecafeddab4e591fe5113911
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383996
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-12 14:18:06 +00:00
skia-autoroll
91113acfd1 Roll ANGLE from 44b9579cf7b8 to 225e1952d494 (18 revisions)
44b9579cf7..225e1952d4

2021-03-12 cnorthrop@google.com Tests: Add Plants vs. Zombies 2 trace
2021-03-12 jdarpinian@chromium.org Revert "Update DEP actions for Python 3"
2021-03-11 cnorthrop@google.com Tests: Add Lineage M trace
2021-03-11 syoussefi@chromium.org Vulkan: Don't let glslang link shaders
2021-03-11 cnorthrop@google.com Capture/Replay: Support DrawElementsBaseVertex
2021-03-11 ianelliott@google.com Suppress flaky MultithreadingTest on Win/Swangle
2021-03-11 ynovikov@chromium.org Skip dEQP tests flakily timing out on SwANGLE
2021-03-11 jplate@google.com Fix CL_EVENT macro
2021-03-11 lexa.knyazev@gmail.com Avoid undefined behavior in BPTCCompressedTextureTest
2021-03-11 jplate@google.com Avoid implication that adding the issue number is optional
2021-03-11 lexa.knyazev@gmail.com Do not expose emulated ETC1 textures to WebGL
2021-03-11 lexa.knyazev@gmail.com Remove unused code from ValidateES2CopyTexImageParameters
2021-03-11 ianelliott@google.com Vulkan: Disable rotating damage rectangles on Android
2021-03-11 lubosz.sarnecki@collabora.com capture_replay_tests: Don't shadow subprocess import.
2021-03-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 023914a27b63 to a2fe8e1b2111 (1 revision)
2021-03-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6691fcec0bce to a4e10bfde719 (24 revisions)
2021-03-11 lubosz.sarnecki@collabora.com frame_capture_utils: Do not serialize 0 bindings.
2021-03-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 075d29b4983b to 9e42f9e4abc6 (425 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 kjlubick@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: kjlubick@google.com
Test: Test: Black Desert MobileTest: Test: Extreme Car Driving SimulatorTest: Test: Genshin Impact MECTest: Test: Grand Theft Auto: San AndreasTest: Test: angle_perftests --gtest_filter="*lineage_m*"Test: Test: angle_perftests --gtest_filter="*plants_vs_zombies_2*"
Change-Id: Icc177809050bdb27b9de3ce6887cd8f0372bd90b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383978
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-12 04:55:05 +00:00
skia-autoroll
e9b6e2f2a9 Roll SwiftShader from a2fe8e1b2111 to 3c4fd15fb075 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a2fe8e1b2111..3c4fd15fb075

2021-03-11 capn@google.com Implement timestamp query support
2021-03-11 srisser@google.com Expose Vulkan 1.2 support

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC kjlubick@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: kjlubick@google.com
Change-Id: I5a7e35eee00f70a4af61fa9b3d4a8b0faff09eb5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384016
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-12 04:53:25 +00:00
Chris Dalton
4bf1ca5fa9 Revert "Remove GrAAType from GrFillRRectOp"
This reverts commit 43e73df990.

Reason for revert: Changed msaa behavior for non-aa

Original change's description:
> Remove GrAAType from GrFillRRectOp
>
> Replaces it with GrAA. This op always uses analytic coverage,
> regardless of MSAA state.
>
> Bug: skia:11396
> Change-Id: I75174a00bdb3b1f62319de5970aac7f1bbae8e10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383418
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

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

Change-Id: I780e46b58a2af1512d17e9db0b53d205f6df51d4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11396
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383857
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-11 22:38:33 +00:00
Mike Reed
21ce89dd53 rm getFlags() from colorfilter -- deprecated
Change-Id: Ic85e627111baee1bdf9eba64a3ad78c496f2d116
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383916
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-03-11 22:35:31 +00:00
Mike Reed
3a94d9285e Remove legacy colorfilter flags
Change-Id: I1084a970d901100c6d882aab761360081b46bbb8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382702
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-03-11 21:55:30 +00:00
Brian Osman
1f64c80bff Update SPIR-V test outputs with latest SPIRV tools
Bug: skia:11738
Change-Id: I1dd5e99830f70d72c292379a45c4e39a55588858
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383706
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-03-11 21:46:01 +00:00
Robert Phillips
82ad7af58f Make GrClientMappedBufferManager use GrDirectContextID for messages
Change-Id: Iace947384fbe426915e7a9d426dc7ac60fb3883b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383700
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-03-11 21:07:41 +00:00
Jim Van Verth
f54a96bd97 Turn on precompile testing for Metal
Bug: skia:11392
Change-Id: I53718870846e70d15f8d5d5de1fdec33e44271e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382976
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
2021-03-11 20:57:48 +00:00
Robert Phillips
e7a959d8fe Expand SkMessageBus to support different unique key types
Bug: skia:11728
Change-Id: I16fb8250fa5c04ce3fe369a50d0c61a0bee46811
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383696
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-03-11 20:38:00 +00:00
Brian Osman
c737a83709 Cache runtime color filter flags
This slows down filter creation (300 ns -> 6000 ns),
... but speeds up the matrix_filterColor4f benchmark:

  before: 22000 ns
  after : 10000 ns

Bug: skia:11730
Change-Id: I5831688cbe0b6fbd8521fa5adab02ef0750b6190
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383704
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-03-11 20:12:30 +00:00
John Stiles
48b255838c Add unique_ptr visitation support to ProgramWriter.
This will allow a subclass to rewrite a Statement or Expression when
visiting it.

Change-Id: Ia8b3121dd0558f2fbbd035d38f7caec9414fe8c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382756
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-11 19:27:20 +00:00
Corentin Wallez
89d6e79ec0 Roll spirv-tools and spirv-headers and use upstream GN files
This will allow rolling spirv-tools and spirv-headers without additional
manual changes to fix Skia's copy of their BUILD.gn files.

Roll third_party/externals/spirv-headers/ c0df742ec..bcf55210f (59 commits)

c0df742ec0..bcf55210f1

$ git log c0df742ec..bcf55210f --date=short --no-merges --format='%ad %ae %s'
2020-07-03 dneto Support SPV_KHR_expect_assume
2020-07-03 dneto Support SPV_KHR_linkonce_odr
2021-03-01 alanbaker Change operand name in OpReadClockKHR to match extension
2021-02-13 dmalyshau Add Naga as SPIR-V generation tool
2020-08-19 jason Add header changes for SPV_EXT_shader_atomic_float_min_max
2021-01-27 jason.ekstrand Re-run buildSpvHeaders to fix indentation
2021-01-19 dneto Header generator: Check enumerant ordering
2021-01-27 ben.ashbaugh add generated headers
2021-01-27 ben.ashbaugh add None as a possible value for DebugInfoFlags
2021-01-25 caio.oliveira Add SPV_KHR_workgroup_memory_explicit_layout
2021-01-20 dneto Push FPDenormMode, FPOperationMode to the end
2021-01-20 dmitry.sidorov Apply suggestions to Intel extensions PR
2020-12-16 dmitry.sidorov Update generated files
2020-12-16 dmitry.sidorov Add SPV_INTEL_long_constant_composite extension
2020-12-16 dmitry.sidorov Add SPV_INTEL_loop_fuse extension
2020-11-23 dmitry.sidorov Add SPV_INTEL_fpga_cluster_attributes and SPV_INTEL_fp_fast_math_mode
2020-11-23 dmitry.sidorov Update SPV_INTEL_fpga_loop_controls extension
2020-11-16 dmitry.sidorov Update SPV_INTEL_kernel_attributes extension
2020-11-09 dmitry.sidorov Update SPV_INTEL_function_pointers extension
2020-11-09 dmitry.sidorov Upstream SPV_INTEL_float_controls2 extension
2020-11-09 dmitry.sidorov Upstream SPV_INTEL_vector_compute extension
2020-11-06 dmitry.sidorov Upstream SPV_INTEL_fpga_memory_accesses extension
2020-11-06 dmitry.sidorov Upstream SPV_INTEL_io_pipes extension
2020-11-05 dmitry.sidorov Upstream SPV_INTEL_variable_length_array extension
2020-11-05 dmitry.sidorov Upstream SPV_INTEL_usm_storage_classes extension
2020-11-05 dmitry.sidorov Upstream SPV_INTEL_arbitrary_precision_integers extensions
2020-11-05 dmitry.sidorov Upstream SPV_INTEL_inline_assembly extension
2020-11-03 dmitry.sidorov Upstream SPV_INTEL_fpga_buffer_location extension
2021-01-05 ben.ashbaugh add function control bitfield reservation section reserve bit 16 for an upcoming Intel extension
2020-11-26 dkoch remove HitTKHR
2020-11-12 dneto MeshShadingNV enables builtins PrimitiveId, Layer, and ViewportIndex
2020-10-16 dkoch de-alias/reassign OpIgnoreIntersectionKHR/OpTerminateRayKHR
2020-06-29 alele Raytracing and Rayquery updates for final
2020-06-15 alele Updated headers for new trace/executeCallable and acceleration structure cast.
2020-11-05 orbea cmake: Install cmake files to CMAKE_INSTALL_DATADIR
2020-11-04 michael.kinsner Reserve additional loop control bit for Intel extension (NoFusionINTEL) (#175)
2020-11-02 4464295+XAMPPRocky Add EmbarkStudios/rust-gpu to vendor list. (#174)
2020-10-23 john Bump revision to 4, for SPIR-V 1.5.
2020-10-19 TobyHector Add SPV_EXT_shader_image_int64 (#170)
2020-10-19 TobyHector Added SPV_KHR_fragment_shading_rate (#172)
2020-10-12 hwguy.siplus  Register the Xenia emulator as a generator (#171)
2020-09-27 atyuwen Register the Messiah SPIR-V CodeGen (#169)
2020-09-10 syoussefi Register the ANGLE compiler (#168)
2020-09-08 cepheus Rebuild of latest headers, which slightly moves OpTerminateInvocation
2020-08-03 44190824+mmerecki Reserve SPIR-V token range for upcoming Intel extensions. (#165)
2020-07-29 alanbaker Update BUILD.bazel and BUILD.gn (#166)
2020-07-29 alanbaker Publish the headers for the clspv embedded reflection non-semantic extended instruction set (#164)
2020-07-29 johnkslang Update the registry in spir-v.xml to modernize and split out opcodes. (#156)
2020-07-21 alanbaker Support SPV_KHR_terminate_invocation (#163)
2020-07-19 vkushwaha Add changes for SPV_EXT_shader_atomic_float
2020-06-26 dj2 Register the Tint compiler
2020-06-01 dneto spir-v.xml: Use plain ASCII quotes in comment
2020-05-29 cepheus Rebuild headers against the previous grammar commit.
2020-05-29 dmitry.sidorov Apply suggestions
2020-04-05 dmitry.sidorov Add Intel specific definitions from KhronosGroup/SPIRV-LLVM-Translator
2020-05-29 cepheus Header build from previous grammar update.
2020-05-25 michael.kinsner Propose bit allocation mechanism for the FP Fast Math Mode bitfield, following from the mechanism previously added for the loop control bitfield.
2020-05-20 dneto Update example to use unified1 headers
2020-04-05 dmitry.sidorov Add SPV_INTEL_function_pointers preview extension

Roll third_party/externals/spirv-tools/ e95fbfb1f..5d8c40399 (488 commits)

e95fbfb1f5..5d8c40399e

$ git log e95fbfb1f..5d8c40399 --date=short --no-merges --format='%ad %ae %s'
2021-03-11 cwallez BUILD.gn: fix typo for 'cflags' (#4169)
2021-03-10 cwallez Suppress warning (#4168)
2021-03-10 alastair.donaldson spirv-fuzz: Avoid unnecessary dependency (#4165)
2021-03-10 dgkoch Add `void` in function declaration to keep some compilers happy (#4160)
2021-03-09 cwallez Fix -Wextra-semi-stmt -Wsuggest-destructor-override -Wdeprecated-copy-dtor (#4164)
2021-03-08 46493288+sfricke-samsung spirv-val: Vulkan 64-bit OpAtomicStore check (#4163)
2021-03-05 vasniktel spirv-fuzz: Fix the bug in TransformationReplaceBranchFromDeadBlockWithExit (#4140)
2021-03-05 vasniktel spirv-fuzz: Fix PartialCount (#4159)
2021-03-03 afd spirv-fuzz: Handle Vulkan SPIR-V versions (#4156)
2021-03-03 vasniktel spirv-fuzz: Add persistent state to the fuzzer (#4137)
2021-03-02 alanbaker Require an OpSelectionMerge before an OpSwitch (#4154)
2021-03-01 stevenperron Use standard function to get stdin to binary mode. (#4141)
2021-02-26 bclayton Fixes for the vscode language server extension (#4150)
2021-02-19 atte.seppala spirv-opt: Don't call GenerateCopy for mismatched image types (#4126)
2021-02-18 jaebaek Start SPIRV-Tools v2021.0
2021-02-18 jaebaek Finalize SPIRV-Tools v2020.7
2021-02-16 jaebaek Update CHANGES
2021-02-11 greg Generate differentiated error codes for buffer oob checking (#4144)
2021-02-10 dj2 Update a few virtuals to overrides. (#4143)
2021-02-05 46493288+sfricke-samsung spriv-val: Vulkan image gather constant component (#4133)
2021-02-05 46493288+sfricke-samsung spirv-val: Fix/Label UniformConstant VUID (#4134)
2021-02-05 46493288+sfricke-samsung spirv-val: Add Vulkan Invariant Decoration VUID (#4132)
2021-02-02 46493288+sfricke-samsung spirv-val: label tests for VUID 04657 (#4119)
2021-02-01 46493288+sfricke-samsung spirv-val: Add Vulkan PSB64 convert VUID (#4122)
2021-01-28 stevenperron Mark module as modified if convert-to-half removes decorations. (#4127)
2021-01-28 jaebaek Set correct scope and line info for DebugValue (#4125)
2021-01-27 caio.oliveira Validate SPV_KHR_workgroup_memory_explicit_layout (#4128)
2021-01-27 alanbaker Validate VK_KHR_zero_initialize_workgroup_memory (#4124)
2021-01-27 46493288+sfricke-samsung spirv-val: Add Vulkan image gather offset VUID (#4118)
2021-01-27 alanbaker Add cmake to windows path for kokoro (#4129)
2021-01-25 46493288+sfricke-samsung spirv-val: Label Vulkan atomic semantics VUIDs (#4120)
2021-01-25 46493288+sfricke-samsung spirv-val: Label VUID 04662 (#4123)
2021-01-25 46493288+sfricke-samsung spirv-val: Label VUID 04683 (#4121)
2021-01-22 machenbach Remove obsolete GN config (#4110)
2021-01-20 46493288+sfricke-samsung spirv-val: Add Vulkan EXT builtins (#4115)
2021-01-20 dneto Support pending Intel extensions (#4116)
2021-01-19 dneto Validate Sampled=1 for Vulkan ImageQuerySizeLod, ImageQueryLevels, ImageQueryLod (#4103)
2021-01-19 46493288+sfricke-samsung spirv-val: Add Vulkan Memory Scope VUs (#4106)
2021-01-18 bclayton Migrate all Kokoro build scripts over to use the docker VM image (#4114)
2021-01-15 46493288+sfricke-samsung spirv-val: Add Vulkan Addressing Model check (#4107)
2021-01-14 rharrison Remove WebGPU support (#4108)
2021-01-14 46493288+sfricke-samsung spirv-val: Vulkan atomic storage class (#4079)
2021-01-13 jaebaek Avoid integrity check failures caused by propagating line instructions (#4096)
2021-01-13 pierremoreau Linker usability improvements (#4084)
2021-01-12 dj2 Revert "Generate differentiated error codes for buffer oob checking (#4097)" (#4100)
2021-01-11 greg Generate differentiated error codes for buffer oob checking (#4097)
2021-01-07 dneto use std::string::empty() to test for emptiness (#4098)
2021-01-07 46493288+sfricke-samsung spirv-val: Label standalone Vulkan VUID (#4091)
2021-01-06 46493288+sfricke-samsung spirv-val: Add Vulkan decroation VUID (#4090)
2021-01-06 stevenperron Fix binding number calculation in desc sroa (#4095)
(...)
2020-05-19 vasniktel spirv-fuzz: Remove FuzzerPassAddUsefulConstructs (#3341)
2020-05-19 vasniktel Add support for StorageBuffer (#3348)
2020-05-19 462213+sl1pkn07 Prevent Effcee install his things when build spirv-tools with testing enabled (#3256)
2020-05-19 stevenperron Don't register edges twice in merge return (#3350)
2020-05-14 stevenperron Revert "Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)" (#3345)
2020-05-14 afdx spirv-reduce: Remove unused struct members (#3329)
2020-05-14 andreperezmaselco.developer Add adjust branch weights transformation (#3336)
2020-05-13 stevenperron Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)
2020-05-13 jaebaek [spirv-opt] refactor inlining pass (#3328)
2020-05-13 afdx spirv-reduce: Remove unused uniforms and similar (#3321)
2020-05-13 afdx spirv-fuzz: Fix to fact manager (#3339)
2020-05-13 afdx spirv-fuzz: Get rid of unnecessary template method (#3340)
2020-05-12 stevenperron Do merge return if the return is not at the end of the function. (#3337)
2020-05-06 jaebaek Preserve debug info for wrap-opkill (#3331)
2020-05-05 jbolz Validate ShaderCallKHR memory scope (#3332)
2020-05-01 afdx spirv-fuzz: Do not allow adding stores to read-only pointers (#3316)
2020-04-30 paulthomson reduce: increase default step limit (#3327)
2020-04-30 afdx Generalize IsReadOnlyVariable() to apply to pointers (#3325)
2020-04-28 stevenperron Delete nullptr in function bb list immedietly (#3326)
2020-04-28 jaebaek Set DebugScope for termination instructions (#3323)
2020-04-28 afdx spirv-fuzz: Do not outline regions that end with a loop header (#3312)
2020-04-27 bclayton vscode: Handle '|' chains on BitEnum / ValueEnum (#3309)
2020-04-27 jaebaek Add debug information analysis (#3305)
2020-04-27 dneto Add spvtools::opt::Operand::AsLiteralUint64 (#3320)
2020-04-27 afdx spirv-fuzz: Pass on validator options during shrinking (#3317)
2020-04-27 afdx spirv-fuzz: Clamp statically out-of-bounds accesses in code donation (#3315)
2020-04-27 afdx spirv-fuzz: Fix memory management in the fact manager (#3313)
2020-04-27 afdx spirv-fuzz: Do not replace the Sample argument in OpImageTexelPointer (#3311)
2020-04-23 afdx Allow various validation options to be passed to spirv-opt (#3314)
2020-04-23 Chaitanyas0101 typo fix: in README.md exectuable->executable (#3306)
2020-04-20 afdx spirv-fuzz: Make handling of synonym facts more efficient (#3301)
2020-04-15 stevenperron Remove unreachable code. (#3304)
2020-04-15 afdx spirv-fuzz: Fix to outliner (#3302)
2020-04-14 afdx spirv-fuzz: Do not outline regions that produce pointer outputs (#3291)
2020-04-14 afdx spirv-fuzz: Handle OpRuntimeArray when replacing ids with synonyms (#3292)
2020-04-14 afdx spirv-fuzz: Handle image storage class in donation (#3290)
2020-04-14 afdx spirv-fuzz: Respect rules for OpSampledImage (#3287)
2020-04-14 afdx spirv-fuzz: Fix comment. (#3300)
2020-04-14 stevenperron Sampled images as read-only storage (#3295)
2020-04-14 alanbaker Remove implicit fallthrough (#3298)
2020-04-14 stevenperron Add tests for recently added command line option (#3297)
2020-04-14 dneto If SPIRV-Headers is in our tree, include it as subproject (#3299)
2020-04-13 stevenperron Struct CFG analysus and single block loop (#3293)
2020-04-13 jaebaek Preserve debug info in eliminate-dead-functions (#3251)
2020-04-13 stevenperron Update acorn version (#3294)
2020-04-09 stevenperron Handle more cases in dead member elim (#3289)
2020-04-09 h.baensch.92 Fix pch macro to ignore clang-cl (#3283)
2020-04-07 afdx spirv-fuzz: Improve the handling of equation facts (#3281)
2020-04-07 afdx spirv-fuzz: Handle more general SPIR-V in donation (#3280)
2020-04-06 afdx spirv-fuzz: Improve support for compute shaders in donation (#3277)

Created with:
  roll-dep third_party/externals/spirv-headers third_party/externals/spirv-tools

Bug: dawn:706

Change-Id: I4ca1acd84b4905cf5454e146a917e36fc8c2d399
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381237
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-03-11 19:07:20 +00:00
Kevin Lubick
65e50128f2 Remove leftover cpp file
Change-Id: I30e4b37a43d1301d9e8011c9952874f3ba8d4f8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383702
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-03-11 18:33:17 +00:00
Herb Derby
6679eb9786 Add GrTextBlobAllocator to GrRecordingContext
Change-Id: I284d13b0ac9a7a11296ce06b5812ee1fb3a9075d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383757
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-11 18:32:00 +00:00
Chris Dalton
43e73df990 Remove GrAAType from GrFillRRectOp
Replaces it with GrAA. This op always uses analytic coverage,
regardless of MSAA state.

Bug: skia:11396
Change-Id: I75174a00bdb3b1f62319de5970aac7f1bbae8e10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383418
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-11 17:15:00 +00:00
Brian Osman
317e5887a2 Make the SkSL->skvm intrinsic function lookup table static
matrix_filterColor4f timing

  before: 33500 ns
  after : 22000 ns

Bug: skia:11730
Change-Id: Ic5754b274c9e24e7f8298ca38314a06ab5671ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383699
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-11 17:05:00 +00:00
Herb Derby
c1a06003a0 solidify the type of a SubRun owner
Change-Id: Icd20e6d7d5fd25d1589f523c6a3cc6ef86adfeb6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383756
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-11 17:00:40 +00:00
Florin Malita
4aa19871ec Force-include assert.h for third_party/oboe
Oboe uses assert but doesn't seem to include the header explicitly:

../../third_party/externals/oboe/src/flowgraph/resampler/PolyphaseResamplerStereo.cpp:25:5: error: use of undeclared identifier 'assert'
    assert(builder.getChannelCount() == STEREO);

Change-Id: Ib008ffaeade0b84196141102b956bc6e5606a468
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383698
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-03-11 16:55:10 +00:00
Brian Osman
3527389e28 Add a benchmark of filterColor4f with the matrix color filter
Bug: skia:11730
Change-Id: Icbb1f6acf31e3f130cb48338a1c44ca14f40e587
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383697
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-03-11 16:21:40 +00:00
Robert Phillips
edff467fd4 Add a DirectContextID to GrDirectContexts
Bug: skia:11728
Change-Id: I80ab54f2cfa0bbc69f688e1e598eeeb4bde1a1a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383023
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-03-11 14:58:40 +00:00
John Stiles
b23a64b8b0 Replace vector<SwitchCase> in Switch with a StatementArray.
This is conceptually the same thing, but we have various places in the
code which expect a unique_ptr<Statement>, and they don't allow a
unique_ptr<SwitchCase> to be passed in, since the types don't match.

This change is particularly relevant to the ProgramWriter, which will be
updated in a followup CL to pass the unique_ptr to visit methods.

Change-Id: I012669fa429a13658ac2be31342c92750fe84b92
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382723
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-03-11 14:51:00 +00:00
John Stiles
0bfeae697b Clean up dead-code elimination in optimizer.
Dead-function-removal and dead-global-removal was implemented directly
inside of Compiler::optimize(). This code has been broken out into
separate helper functions for clarity.

Additionally, dead-function elimination was guarded by a ProgramSetting,
but dead-variable elimination was only guarded by fOptimize. A new flag
for dead-variable elimination was added for consistency.

Change-Id: I783501362762dad08262ffb92602d02ec079ed9b
Bug: skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382917
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-11 14:41:30 +00:00
Michael Ludwig
fb665ea35f Always return an invalid backend format for unknown color types
Confirmed that this fixes the linked fuzzer bug.

I opted to leave the the backend implementations of
onGetDefaultBackendFormat unchanged, since they technically check
for unknown backend-specific formats before returning an invalid
GrBackendFormat object. It just so happens that this mapping always
ensures GrColorType::kUnknown has an unknown backend-specific format.
Presumably there are other known GrColorTypes that may be unknown
for a specific backend, so those low-level checks are still needed.

Now, we just check the GrColorType in GrCaps before calling the
virtual. This avoids trying to create an invalid format for
GrMockCaps and allows GrBitmapTextureMaker to convert unsupported
color types ot rgba8 even with the mock backend.

Bug: chromium:1185960
Change-Id: I043eb6730efe30884b4180768229b94d35d32047
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383036
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-03-11 14:36:52 +00:00
Andy Weiss
8b6d943d91 Override delete for GrOp
We are seeing a crash in a flutter desktop linux application with the
the issue pointing to a sized delete mismatch:

debugallocation.cc:788] RAW: delete size mismatch: passed size 160 !=
requested / available size 192 / 192

This patch fixes the issue. The crash started after the roll that
brought in https://skia-review.googlesource.com/c/skia/+/382701

See fxbug.dev/71987 for more info

Change-Id: I635ce5190d82ea96e1070e0509e543934379b776
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383456
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-11 14:36:37 +00:00
John Stiles
f3a28db703 Eliminate control-flow analysis.
We no longer derive a performance benefit from this pass in practice,
and it is a very expensive compilation step. It is also prone to fuzz-
related errors.

Doc: http://go/optimization-in-sksl

Change-Id: Ief08ffac659a8fe7fe92c92b9a5da14c9f713bc2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381261
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-11 13:24:54 +00:00
Greg Daniel
80ef70e8f5 Make sure we check for abandoned when with getBackendSurface calls.
Previously even if we release/abanoned a resource we would still return
GrBackendSurfaces from these queries even if the actual backend api
objects are no longer valid.

This hopefully fixes the attached chrome bug, but can't know for sure.

Bug: chromium:1186623
Change-Id: Ib1c03699c2c7d81f6d305428dfbf39d647d28373
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382918
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-03-11 13:02:17 +00:00