Commit Graph

50799 Commits

Author SHA1 Message Date
Brian Salomon
32d41b7e45 Stop building GL backend on Android Vulkan builders
Should reduce build time and avoid running GL unit tests redundantly
on Vulkan bots.

Change-Id: I67379e6820dab2f038175a825ee1461086a2da84

Cq-Include-Trybots: luci.skia.skia.primary:Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan
Change-Id: I67379e6820dab2f038175a825ee1461086a2da84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318196
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-21 14:54:00 +00:00
Jim Van Verth
eb70946feb Fix D3D non-dev release build.
operator== for D3D12_CPU_DESCRIPTOR_HANDLE was undefined if building a
non-dev release build. Pulling out of the #ifdef DEBUG || GR_TEST_UTILS
block fixes it.

Change-Id: I3088b8e0c6ce7271074d1b255bbac02d0516da9f
Bug: skia:10651
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318160
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-09-21 14:53:00 +00:00
John Stiles
c1cb27023c Allow a BasicBlock to be dumped, outside the CFG.
Change-Id: I54a65806c65b5df5bfbc2603859cdb2b7de0836c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317899
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-21 13:52:00 +00:00
Robert Phillips
4559368cc4 Add MRU to GrThreadSafeUniquelyKeyedProxyViewCache
Bug: 1108408
Change-Id: I54ae1512340408e61c2fb2f408b006d6f7697cf7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317860
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-21 13:31:40 +00:00
skia-autoroll
d970d657aa Roll ANGLE from 8d4331eeb5ea to 48588bd1810d (27 revisions)
8d4331eeb5..48588bd181

2020-09-21 m.maiya@samsung.com Vulkan: Add GL_EXT_buffer_storage extension entry points
2020-09-20 m.maiya@samsung.com Vulkan: Implement a SharedResourceUse pool
2020-09-19 jmadill@chromium.org Test Runner: Really reuse displays with --bot-mode.
2020-09-19 jmadill@chromium.org Test Runner: Fix "--bot-mode" error level return value.
2020-09-19 jmadill@chromium.org Vulkan: Allow no validation layers in ExternalImageTest.
2020-09-19 jmadill@chromium.org Vulkan: Optimize Attribute Change Perf (4/5)
2020-09-19 timvp@google.com Remove setting a default value for use_custom_libcxx
2020-09-18 jmadill@chromium.org Vulkan: Optimize Attribute Change Perf (3/5)
2020-09-18 jmadill@chromium.org Test Runner: Fix sharding and --bot-mode.
2020-09-18 jmadill@chromium.org Vulkan: Optimize Attribute Change Perf (2/5)
2020-09-18 jmadill@chromium.org Vulkan: Optimize Attribute Change Perf (1/5)
2020-09-18 ianelliott@google.com Vulkan: Additional "invalidate" white-box tests
2020-09-18 courtneygo@google.com Vulkan: lock around accesses to mSharedGarbage
2020-09-18 adetaylor@chromium.org Add CPEPrefix for rapidjson.
2020-09-18 courtneygo@google.com Vulkan: need to serialize access to mFenceRecycler
2020-09-18 jmadill@chromium.org Tests: Allow tests to function without VVLs.
2020-09-18 geofflang@google.com Refactor IsMipmapFiltered to take the min filter directly.
2020-09-18 jmadill@chromium.org Traces: Move up from tests/perf_tests/ to tests/.
2020-09-18 jmadill@chromium.org Fix roll script for CIPD deps.
2020-09-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 6ccc0d9ba0ff to c9f4fb2fccda (7 revisions)
2020-09-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from 399f7fd741f7 to a148cdd49041 (1 revision)
2020-09-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 46fc663a1cb3 to d6935becabad (6 revisions)
2020-09-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 34ef0c3fdc8e to 50ae4c5f4427 (3 revisions)
2020-09-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from b045bf7d3b6a to 6ccc0d9ba0ff (1 revision)
2020-09-18 syoussefi@chromium.org Vulkan: Workaround oldSwapchin bug on Android
2020-09-18 jmadill@chromium.org Guard against data race with MemoryProgramCache.
2020-09-18 syoussefi@chromium.org Vulkan: Add perf warning for mid-RP clear

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 csmartdalton@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:895969
Tbr: csmartdalton@google.com
Test: Test: CQTest: Test: DrawCallPerfBenchmark.Run/vulkan_attrib_changeTest: Test: DrawCallPerfBenchmark.Run/vulkan_null_attrib_changeTest: Test: angle_unittests with --bot-mode, sharding, and filter
Change-Id: If3aed2fd189de0c3c8e7b0470aad899c281a34fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318097
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 04:44:40 +00:00
skia-autoroll
7c8b0c37b0 Roll Chromium from 33c87dade16e to 688a0b341c70 (560 revisions)
33c87dade1..688a0b341c

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 csmartdalton@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: csmartdalton@google.com
Change-Id: I41c18b6e3ec13522202efd252b251cf8bc5a901e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318098
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 04:38:10 +00:00
skia-autoroll
8e660dd467 Roll dawn from d6498a41ab4e to dcd37fa4f476 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/d6498a41ab4e..dcd37fa4f476

2020-09-18 enga@chromium.org Rolling 5 shader dependencies
2020-09-18 enrico.galli@intel.com Handle debug markers commands on command encoder
2020-09-18 cwallez@chromium.org Add -Wduplicate-enum and -Wrange-for-analysis
2020-09-18 cwallez@chromium.org Remove wgpu::BindingType::StorageTexture

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang from 517f39eee46f to 4dcc12d1a441

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: I0eedc99732f1021bf152f97e4a12e873e3b55535
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318096
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 04:32:10 +00:00
skia-recreate-skps
822d3abc13 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I3297f8e1c01f9e547a0256a351ccdce4fc742746
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318036
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-09-20 08:49:17 +00:00
John Stiles
046828f239 Fix generated file.
This wasn't rolled back automatically by the revert at
http://review.skia.org/317976, because this unit test did not exist yet
when that CL was submitted.

Change-Id: Ib887e74ddd32c1e576908bbe3d588205e26cdaa5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317978
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-19 14:53:43 +00:00
John Stiles
881a10c6e8 Revert "Add program-settings flag to disable the inliner."
This reverts commit 910845fac1.

Reason for revert: IRGenerator inline change reverted

Original change's description:
> Add program-settings flag to disable the inliner.
>
> Change-Id: I6c4e7f6a2aab6710221029022a3a5f3ec323c5e2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317856
> 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>

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

Change-Id: Ie38a29495ea8497f9db26d2603df179e696ac5ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317977
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-19 14:13:54 +00:00
John Stiles
941fc7174f Revert "Remove inliner from IR generation stage."
This reverts commit 21d7778cb5.

Reason for revert: Pinpoint absolutely hates this change

Original change's description:
> Remove inliner from IR generation stage.
> 
> There is no need to inline code during IR generation, as the optimizer
> can now handle this.
> 
> Change-Id: If272bfb98e945a75ec91fb4aa026e5631ac51b5b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315971
> 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>

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

Change-Id: I62c235415bcdc92a088e2a7f9c3d7dbf7e1bf669
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317976
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-19 12:47:25 +00:00
John Stiles
ca4d074d54 Fix unit test for InlinerWrapsEarlyReturnsWithDoWhileBlock.
This resolves the following TODO block:
   TODO(johnstiles): the skslc standalone caps bits do not enable
   do-while support, so this test does not actually perform as
   described; the `returny` function is not inlined at all. This will
   be fixed when customizable caps-bit support is added to the golden
   tests.

Change-Id: I3495e4813b9be37264a8fda978453594c1f5fa13
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317859
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-18 21:08:52 +00:00
John Stiles
64fc15a279 Add unit test for a dead do-while loop.
Ideally the optimizer should be able to detect and remove this loop.
This CL establishes a baseline.

Change-Id: I6aba0b52fe49552f170fca25d81c29c515044ef5
Bug: skia:10737
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317861
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-18 20:57:12 +00:00
Brian Salomon
94f65d784c Expand SkYUVAInfo::PlanarConfig/SkYUVAPixmapInfo::DataType values.
Now supports all plane configurations tested by WackyYUVFormatsGM.

Added WackyYUVFormatsGM that tests YUVA interface on SkImageGenerator.


Change-Id: I8326f098f1453b9702f04ff366431a516ca160c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317097
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-09-18 20:43:12 +00:00
Chris Dalton
597c33a8c0 Fix CanvasKit warnings compiling on Mac with emsdk 2.0.0
Change-Id: Idcb37644c6c657ce66390ae12d9a55d68abab6cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317642
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-09-18 20:35:12 +00:00
John Stiles
910845fac1 Add program-settings flag to disable the inliner.
Change-Id: I6c4e7f6a2aab6710221029022a3a5f3ec323c5e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317856
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-09-18 20:30:22 +00:00
Mike Klein
394a6d558f quad-pump avx2 and up
OK, one more interpreter tweak.  This pumps the avx2/avx-512 slices of
the interpreter 2x more, now up to 32, 1024-bit per op.

I tried K=64 also, but didn't find any benefit.
I've left in support to make it easy to try again.

Example timing numbers, again for viewer --slide GM_color_cube_rt:

    K =  8, 14.4ms   (5.3x JIT)
    K = 16, 10.1ms   (3.7x    )
    K = 32,  7.7ms   (2.9x    )
    K = 64,  7.7ms   (2.9x    )
    JIT   ,  2.7ms

Change-Id: If824e700a49d7f75fb7780b1b4d10188c2c213ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317792
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-18 20:21:02 +00:00
Robert Phillips
f3e2b3cba3 Switch the thread-safe proxy cache over to using an arena for its entries
Bug: 1108408
Change-Id: Ib0260f72be3ac04fc1cf82c857bf4e99ec4ea239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317770
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-18 19:42:32 +00:00
John Stiles
be0a9ca63d Migrate remaining SkSL GLSL tests to golden outputs.
Change-Id: I72fd3083f75ca5bf74fb2c3b032465864a13aed5
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317771
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-18 19:22:19 +00:00
John Stiles
21d7778cb5 Remove inliner from IR generation stage.
There is no need to inline code during IR generation, as the optimizer
can now handle this.

Change-Id: If272bfb98e945a75ec91fb4aa026e5631ac51b5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315971
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-09-18 18:41:08 +00:00
Robert Phillips
752f7e1692 Actually test the direct-context's thread-safe proxy cache
This CL:
  connects the tests to the live cache
  switches the cache over to using an SkTDynamicHash

Bug: 1108408
Change-Id: I1876baf13a8d12a1ec398f49e2b2d51f434d6d0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317764
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-18 18:00:08 +00:00
John Stiles
87e6ccde21 Migrate geometry SkSL tests to golden outputs.
Change-Id: I01c150d6bfcdd1500033521a87c058c7428c3521
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317769
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-18 17:34:22 +00:00
John Stiles
c884631f99 Migrate Derivatives tests to golden outputs.
Change-Id: I35ff25c4cc394c1a4a964207ece87095a9ba84cf
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317767
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-18 17:30:07 +00:00
Chris Dalton
fd53e6355c Lift SkMeasureAngleInsideVectors and SkFindBisector to public SkGeometry API
Also improves SkChopCubicAtMidtangent robustness in degenerate cases.

Bug: skia:10419
Change-Id: I54a1187ce4286ee87c2e5230082844a303830bf4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317165
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-18 17:29:18 +00:00
Brian Osman
eac4983182 SkSL: Cleanup interpreter intrinsics, etc.
The generic interpreter (eg, particles) was inheriting from the pipeline
stage one, which in turn inherited from GPU. That added all kinds of
kruft to the table. Instead, save off the symbol table from the
constructor, that stores just the basic types. GPU and Interpreter each
inherit from that.

Also, we were scraping the interpreter intrinsic map in the constructor,
but hadn't parsed the include, so it was always empty. This meant that
intrinsics defined in sksl_interp.sksl were never cloned into programs
that used them. Moved the scraping to the lazy parsing.

Change-Id: I52c7821a066fcfecfb7d35057be040d4354a7afb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317768
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-18 16:56:27 +00:00
Chris Dalton
34c5052657 Don't simplify a stroked shape if it isn't closed
A stroke that starts and ends at the same point is not the same as a
stroke with an explicit close.

Bug: skia:10419
Change-Id: Ibd8b6cd4ba04b2b9acf3dee6d01ad88ba6ba7071
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317650
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-09-18 16:20:59 +00:00
Nathaniel Nifong
f4858d31a4 Add a define causing debugger to use an older clip feature
Change-Id: I4d7354f7afaa69866f60863b5e875f4a61373a45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317612
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-09-18 15:24:37 +00:00
Mike Klein
2e69a13d83 avx2 specialization for gather32
This wraps up my recent interpreter optimization push.
I've been informally measuring my progress by running

    viewer --slide GM_color_cube_rt --skvm --nojit --stats

The frame cost has dropped from 13-14ms to just under 10ms;
the JIT's right around 3ms.

Change-Id: Ieff977ac7777dbbf15c8c3b7e40a0031fb95fe7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317718
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-18 14:06:17 +00:00
John Stiles
6798e5d0d1 Migrate SkSL error tests to golden outputs.
Change-Id: Ic8f4730d035981c32b4ddb48e5e919b0396b6d93
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317578
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-18 13:46:17 +00:00
Jim Van Verth
fbbf9e27fb D3D: Reset current descriptor tables when changing root sig.
If we switch from a root signature with samplers/textures to one without
and then back, the descriptor tables associated with them are unbound on
the command list, but we don't reflect that in our tracking of the
current descriptor table.

Change-Id: Ibd3891152f1beab10c20caa1f2aaec0cd59e519e
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317656
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
2020-09-18 13:44:37 +00:00
Mike Klein
feb4d10f7b tweak gathers in skvm interpreter
- simplify 1-stride gathers by using broadcasts
  - use map() for base-case full-stride gathers

  - TODO: use vpgatherdd for full-stride gathers when possible

Change-Id: Icedcea17ae8fa4ad7344cd2604358fd710921af2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317648
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-18 12:37:47 +00:00
skia-autoroll
ec598d5b00 Roll ANGLE from 0a8a3ea25b36 to 8d4331eeb5ea (13 revisions)
0a8a3ea25b..8d4331eeb5

2020-09-18 syoussefi@chromium.org Vulkan: Free up 5 bits in RenderPassDesc
2020-09-17 jmadill@chromium.org Guard against race in perf warnings.
2020-09-17 jmadill@chromium.org Vulkan: Fix racy access to VkPipelineCache.
2020-09-17 jmadill@chromium.org Fix racy global in gl::Compiler.
2020-09-17 ianelliott@google.com Vulkan: Delay vkAcquireNextImageKHR till later
2020-09-17 syoussefi@chromium.org Vulkan: Support MSRTT color renderbuffers
2020-09-17 jmadill@chromium.org GN: Componentize D3D back-ends.
2020-09-17 m.maiya@samsung.com EGL: Add support for EGL_ANDROID_create_native_client_buffer
2020-09-17 amy.liu@arm.com Fix the regression of color blit.
2020-09-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from e8ce4355ae1c to 34ef0c3fdc8e (5 revisions)
2020-09-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from f105898a102f to 46fc663a1cb3 (4 revisions)
2020-09-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b33e0b36a08c to fe878dedd5ad (1 revision)
2020-09-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e4cbd27e4a55 to d9fa0d469f57 (420 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 scroggo@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: scroggo@google.com
Test: Test: angle_deqp_egl_tests --gtest_filter=dEQP.EGL/functional_query_context_get_current_display_rgba8888_window* --use-angle=vulkanTest: Test: angle_end2end_tests --gtest_filter=*EGLPreRotationSurfaceTest*/*Test: Test: angle_perftests --gtest_filter=GenerateMipmapBenchmark.Run/vulkan_webglTest: Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.*Invalidate*/*Test: Test: dEQP-GLES3.functional.fbo.blit.default_framebuffer.*_linear_*
Change-Id: Ib62c6aa99ad538964bbba7e40abdd658ad9ba37e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317702
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 04:52:47 +00:00
skia-autoroll
2e89397021 Roll Chromium from 70a60d856acd to 33c87dade16e (467 revisions)
70a60d856a..33c87dade1

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 scroggo@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: scroggo@google.com
Change-Id: I7e922ad7694bb3b368481ea904e92f3769aade17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317700
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 04:41:47 +00:00
skia-autoroll
795fa782ca Roll dawn from 6419bddd9b0c to d6498a41ab4e (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/6419bddd9b0c..d6498a41ab4e

2020-09-18 hao.x.li@intel.com Query API: Timestamp Query on Vulkan
2020-09-17 bryan.bernhart@intel.com D3D12: Align UBO sizes to 256B.
2020-09-17 rharrison@chromium.org Enable running robust buffer access pass on shaders
2020-09-17 enga@chromium.org Typeify VertexBufferSlot and VertexAttributeLocation

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: Ie117d6d8e4bf9369b294b4023b2a1b16f36e130e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317701
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 04:32:07 +00:00
Chris Dalton
31634288fd Add gms that test limited hw tessellation segments
Adds variations of trickycubicstrokes and widebuttcaps that limit the
max number of hardware tessellation segments to 5. This exercises our
stroking logic for splitting curves and joins when they require more
segments than are supported by the hardware.

Bug: skia:10419
Change-Id: Ie52374b89e30bfa021b2de74e3cd32e02ab734d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317268
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-09-17 23:48:44 +00:00
Herb Derby
ad48610a01 use digests internally for SkScalerCache
Switch to using digests internally for the bulk
glyph processing calls. Put attributes in the digest
that the bulk loops need for processing.

Change-Id: I5852a5f8fa86759ec4b4a7b9937400f19abcf034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317588
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-09-17 22:09:04 +00:00
Mike Reed
b4aa639f23 Refactor API for mipmap-builder,
now the builder returns the new image.

Change-Id: Ie56256390b96d3fdbe39f89784276947047df656
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316442
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-09-17 21:46:44 +00:00
Mike Klein
7e129b8b89 Reland "refactor any()/all(), ptest for all()"
This is a reland of e24f7f3de7
... with fix for ~0 constants for the pedantic MSVC.

Original change's description:
> refactor any()/all(), ptest for all()
>
> Part of this is a simple refactor, adapting any() and all() to the new
> style of specialization.
>
> And with that refactor in place, add AVX2/SSE4.1 for all() using ptest.
> This isn't terribly important, but it does help make Op::asserts run
> faster in the SkVM interpreter.  I like to run with asserts enabled, and
> this makes passing asserts much cheaper---failing asserts are expensive
> still of course, printing to SkDebugf(), etc.
>
> Change-Id: Iebdeee701fab7c50cce8e457674b565f7dd2ec21
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317422
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

Cq-Include-Trybots: luci.skia.skia.primary:Build-Win-MSVC-x86_64-Debug
Change-Id: I93f08177ef3439e65e4383cc517dba60c0c4ef3e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317638
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-09-17 21:19:04 +00:00
John Stiles
27f189fa4f Allow constant propagation of unary negation.
The copy_constant function did not expect to see a prefix expression.

Change-Id: Id2beb64b8d65f6b35cd68306452104ba28f56f2b
Bug: skia:10734
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317616
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-17 21:10:34 +00:00
Kevin Lubick
c21dc07a78 [canvaskit] Add demo on how to decode images in web worker
Change-Id: I3c9107799c5df2c39a8ea8ddf106978786de79f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317389
Reviewed-by: Yegor Jbanov <yjbanov@google.com>
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-09-17 20:15:05 +00:00
Mike Klein
952f8f17e4 Reland "update skvx scalar-fallback strategy"
This is a reland of 4985db413d

...with a better implementation of map().  I don't understand
why we had to revert, but it had something with calling the
function pointer in map_(), so maybe this will help.

I've flattened the map_() / map() merge CL into this one,
and marked the resulting map() as no_sanitize("cfi").  I
don't see anything wrong, so I think it's a false positive.

Original change's description:
> update skvx scalar-fallback strategy
>
> Turns out Clang's a lot better at auto-vectorizing "obvious" scalar code
> into obvious vector code when it's written out the long way, e.g.
>
>      F32x4 x = ...;
>      x = { sqrtf(x[0]), sqrtf(x[1]), sqrtf(x[2]), sqrtf(x[3]) };
>
> vectorizes into sqrtps a lot more reliably than our recurse-onto-scalars
> strategy, and also better than the other naive approach,
>
>      F32x4 x = ...;
>      for (int i = 0; i < 4; i++) { x[i] = sqrtf(x[i]); }
>
> So here I've added a map(V, fn) -> V' using C++14 tricks to let the
> compiler handle the expansion of x = { fn(x[0]), fn(x[1]), ...
> fn(x[N-1]) } for any N, and implemented most skvx scalar fallback code
> using that.
>
> With these now vectorizing well at any N, we can remove any
> specializations we'd written for particular N, really tidying up.
>
> Over in the SkVM interpreter, this is a big improvement for ceil and
> floor, which were being done 2 floats at a time instead of 8.  They're
> now slimmed way down to
>
>    shlq       $6, %r13
>    vroundps   $K, (%r12,%r13), %ymm0
>    vroundps   $K, 32(%r12,%r13), %ymm1
>    jmp        ...
>
> where K is 9 or 10 depending on the op.
>
> I haven't found a scalar function that Clang will vectorize to vcvtps2pd
> (the rounding one, not truncating vcvttps2pd), so I've kept lrint()
> written the long way, updated to the style I've been using lately with
> specializations inline.
>
> Change-Id: Ia97abe3c876008228bf62b1daacd6f6140408fc4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317375
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

Cq-Include-Trybots: luci.chromium.try:linux_chromium_cfi_rel_ng
Bug: chromium:1129408
Change-Id: Ia9c14074b9a14a67dd221f4925894d35a551f9d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317551
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-09-17 19:58:34 +00:00
Brian Osman
3ed22a9c0c Disallow narrowing conversions as part of matrix multiply-assignment
By doing the component-type deduction with simple multiplication:

  halfVec *= floatMat

Would decide that the resulting component type could be float, which
actually caused an assert later (because coerce() had to wrap the
variable reference in a Constructor, making it an invalid target for a
write).

Change-Id: I459897c62d80ecb1e406e5b351a80c25427d5a30
Bug: skia:10732
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317587
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-17 19:57:24 +00:00
Greg Daniel
95cf99b4ea Don't always set vulkan blend constant when not using it.
Change-Id: I478cf455384c95328d730625d903c30d226fd319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317577
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-09-17 19:41:54 +00:00
Herb Derby
45f41b3762 rename SkGlyphIndex to SkGlyphDigest
Change-Id: I78f28da3e02f9ee0c43bdc703b0f9bd472722446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317581
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-09-17 19:09:04 +00:00
Herb Derby
02e5c39b86 refactor making a new glyph
Part of this was changing merging the glyph to just punt
if the glyph is already there.

Change-Id: I505e9d24432f77de6e15af46a6d95981bd86d12e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317580
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-17 18:32:44 +00:00
Brian Osman
bf2163f267 SkSL: Only allow bitwise ops on integral types
We were allowing these ops on floating point types. The resulting GLSL
would fail to compile. We also allowed >>= and <<= on vectors (but not
any of the other bitwise ops).

The newly added unit tests were failing (eg, not catching errors). New
results are correct.

Bug: skia:10707
Change-Id: I97b769f1ce59261361109a71061b42dc8ef3c74b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317393
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-17 18:12:34 +00:00
John Stiles
6dc5265ae6 Migrate several SkSLFP tests to golden outputs.
Change-Id: I83a38f2c953a560fea3483e95e31df532b90773e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317456
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-17 16:46:18 +00:00
John Stiles
0ed9f31f6a Migrate several GLSL workaround unit tests to golden files.
We now support building an SkSL golden output twice, once honoring the
custom #pragma settings, and once more ignoring the settings. This
allows us to see the output of the workaround technique, alongside the
"default-settings" output which should not contain a workaround.

To implement this, skslc now supports a flag: --[no]settings.
When it's set, /*#pragma settings*/ comments are honored. When it's not
set, skslc ignores the comments. compile_sksl_tests.py passes this flag
along to skslc.

This approach is not strictly limited to workarounds; the
"TypePrecision" GLSL test was also updated to use this technique.

Change-Id: I79204df047b024533ed6bc1f4c088e0e878d5bb1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317246
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-17 16:41:18 +00:00
Mike Klein
dd16cb5974 Add SkVx.h to core.gni
Trying to run Chrome trybots on changes to SkVx.h,
but it's deciding to skip the build...

Change-Id: Ic40cc2eec5db00c4f6eacc72e0e50101a8478e99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317596
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-17 15:46:18 +00:00
Robert Phillips
12d06a3842 Add plumbing for the GrThreadSafeUniquelyKeyedProxyViewCache
This CL is also imperfect and incomplete but, although currently unused, it sketches in how the threadSafeProxyCache will be plumbed through the GrContexts and GrResourceCache.

Bug: 1108408
Change-Id: Idb012b6efd49291de69bd88e4b4c531458a3e553
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317360
Reviewed-by: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-17 14:15:58 +00:00