Commit Graph

51171 Commits

Author SHA1 Message Date
Ethan Nicholas
6877f0bfdc moved SkSL ExpressionStatement's data into IRNode
Change-Id: I11b1662cd58b01fabba75dbbee40267a62c8b420
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320639
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-09-29 21:47:18 +00:00
Robert Phillips
c73c1af560 Make the SW blurred mask path use the thread-safe uniquely-keyed view cache
This yields a ~30% performance improvement on OOP-R/DDL-like rendering of the simpleblurroundrect GM.

Bug: 1108408
Change-Id: Ic6c3fde53831cfeb61169681c8aaa77f657cae73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320656
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-29 21:11:48 +00:00
John Stiles
ff22910286 Revert "moved SkSL Enum data into IRNode"
This reverts commit 98503f1c57.

Reason for revert: 

../../src/sksl/SkSLDehydrator.cpp:513:28: error: no member named 'fTypeName' in 'SkSL::Enum'
            this->write(en.fTypeName);
                        ~~ ^
../../src/sksl/SkSLDehydrator.cpp:514:56: error: no member named 'fSymbols' in 'SkSL::Enum'
            AutoDehydratorSymbolTable symbols(this, en.fSymbols);
                                                    ~~ ^
../../src/sksl/SkSLDehydrator.cpp:515:62: error: no member named 'fSymbols' in 'SkSL::Enum'
            for (const std::unique_ptr<const Symbol>& s : en.fSymbols->fOwnedSymbols) {
                                                          ~~ ^



Original change's description:
> moved SkSL Enum data into IRNode
>
> Change-Id: I0de52d252715b5f4e10c26ebca3ea1a4f728ea2e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320637
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

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

Change-Id: I2b78dd5acf4277765b36776a8fb8e435f8b18861
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320759
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-29 20:55:59 +00:00
Ethan Nicholas
98503f1c57 moved SkSL Enum data into IRNode
Change-Id: I0de52d252715b5f4e10c26ebca3ea1a4f728ea2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320637
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-09-29 20:43:39 +00:00
Brian Osman
401a366eb1 Fix swizzle-of-swizzle lvalues in ByteCodeGenerator
Bug: skia:10785
Change-Id: I01708af63d7e2ffc160022074ea9ff2b3c69eab5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320638
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-29 20:34:58 +00:00
Brian Osman
24c5d2447f Add a benchmark that measures SkSL::Compiler startup time
This is basically timing the rehydrator, but is helpful in conjunction
with heap usage if a client wants to decide to throw away a compiler
that they don't anticipate using for some amount of time.

Change-Id: Ie9b27d9a3b7667b5492d870f242cdafd00784708
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320617
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-29 20:25:21 +00:00
Jason Simmons
1a47d891c1 Add an API for clearing the SkParagraph font and paragraph caches
Change-Id: Id8de439c8d872a6dad56acb5db4153186a9a9d96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320397
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Jason Simmons <jsimmons@google.com>
2020-09-29 19:56:08 +00:00
Ethan Nicholas
f70f044b36 moved SkSL Constructor's data into IRNode
Change-Id: I9568deca0031d32bc1c6bdf1f11f6da76de6d07f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320075
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-09-29 19:36:38 +00:00
Robert Phillips
bfca128654 Have GrCircleBlurFragmentProcessor make use of thread safe view cache
This halves the time needed for OOP-R/DLL-like rendering of the simpleblurroundrect GM (which has a whole column of blurred circles).

Bug: 1108408
Change-Id: I5fcfe618caed65ee97000eae446ce98003bec8d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320556
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-29 18:38:07 +00:00
Brian Salomon
57fd923c20 Add sample count to GrVkImageInfo.
Pre-req for allowing rendering to an externally created MSSA VkImage.


Bug: skia:9832

Cq-Include-Trybots: luci.skia.skia.primary:Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan,Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan,Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan,Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan,Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan,Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan,Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan,Test-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan
Change-Id: Ibf41944c6946dda7e27bdcd509ecd04976fc9ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320262
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-29 18:36:58 +00:00
skia-autoroll
686a4f2597 Roll ANGLE from 2a09e89113af to ec42b1438fd2 (63 revisions)
2a09e89113..ec42b1438f

2020-09-29 timvp@google.com Check angle_enable_abseil in Abseil group and config
2020-09-29 jmadill@chromium.org Disable Mock ICD perf tests on Android.
2020-09-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b94db86cf9b3 to 44be0942f9a8 (2 revisions)
2020-09-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 4b07d50cd9a0 to c6ca885c0b4a (2 revisions)
2020-09-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 30cee4f4533f to 3049a95d28fb (469 revisions)
2020-09-29 ianelliott@google.com Add Context* to EVENT() & DebugAnnotator::beginEvent()
2020-09-29 jdarpinian@chromium.org EXT_float_blend is core in ES 3.2
2020-09-29 timvp@google.com Vulkan: Dynamically grow descriptor pool sizes
2020-09-28 j.vigil@samsung.com GL_OES_texture_stencil8 autogen
2020-09-28 jmadill@chromium.org Re-land "Add a small unit test that dumps system info."
2020-09-28 jmadill@chromium.org D3D11: Enable renderable mipmap generation.
2020-09-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from e7fcc14d450b to 2bfd6a752dc6 (1 revision)
2020-09-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 8ab1c000aaa0 to db992e60cc7a (5 revisions)
2020-09-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Headers from 7f9879b1b1fa to e1ba543c6789 (1 revision)
2020-09-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 9e17b9d07a25 to 4b07d50cd9a0 (2 revisions)
2020-09-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 1ba024edc1fa to 30cee4f4533f (638 revisions)
2020-09-26 syoussefi@chromium.org Vulkan: Use one triangle for full-screen utils
2020-09-26 syoussefi@chromium.org Revert "Add a small unit test that dumps system info."
2020-09-26 jmadill@chromium.org Add Skia Gold CIPD package to DEPS.
2020-09-26 cclao@google.com Vulkan: Move mReadOnlyDepth out of FramebufferDesc
2020-09-26 cclao@google.com Vulkan: Use DepthStencilReadOnly when it is read only.
2020-09-26 jmadill@chromium.org Add a small unit test that dumps system info.
2020-09-25 syoussefi@chromium.org Vulkan: Workaround vkCmdClearAttachment bug on Pixel
2020-09-25 jmadill@chromium.org Enable Vulkan SystemInfo on more platforms.
2020-09-25 syoussefi@chromium.org Vulkan: Make UtilsVk not contribute to occlusion queries
2020-09-25 ynovikov@chromium.org Skip BootAnimationTest.DefaultBootAnimation on Win NVIDIA Vulkan
2020-09-25 timvp@google.com Vulkan: Link PPO during draw validation
2020-09-25 courtneygo@google.com Vulkan: fix ASSERT issue in ResourceSerialFactory
2020-09-25 jmadill@chromium.org Capture commit position into Android Manifest.
2020-09-25 syoussefi@chromium.org Vulkan: Disable MSRTT on AMD/Windows
2020-09-25 m.maiya@samsung.com Vulkan: Add GL_EXT_buffer_storage extension support
2020-09-25 jmadill@chromium.org Suppress flaky Multithread Android end2end_test.
2020-09-25 jmadill@chromium.org Rename version/commit headers.
2020-09-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from c9f4fb2fccda to 02da53e45d9e (7 revisions)
2020-09-25 jmadill@chromium.org Add ANGLE commit position to version.h.
2020-09-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 67525bded1de to 9e17b9d07a25 (10 revisions)
2020-09-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a09406249fa3 to b94db86cf9b3 (1 revision)
2020-09-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 4dcc12d1a441 to bacaef3237c5 (1 revision)
2020-09-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 08c265691668 to 1ba024edc1fa (394 revisions)
2020-09-25 lehoangq@gmail.com Metal: Implement Uniform buffers
2020-09-25 jmadill@chromium.org Fix return code of restricted trace tests.
2020-09-25 lehoangq@gmail.com Metal: Use shared memory for small dynamic buffers.
2020-09-24 cclao@google.com Vulkan: updateRenderPassDesc may lose color attachment data
2020-09-24 jmadill@chromium.org Skip PBO test on TSAN.
2020-09-24 courtneygo@google.com Vulkan: Add mutex around queueSubmit related data
2020-09-24 jmadill@chromium.org Revert "Pass #pragma optimize setting down to compilation."
2020-09-24 sdefresne@chromium.org Explicitly filter assignments to sources variable
2020-09-24 jmadill@chromium.org Revert "Vulkan: Implement a SharedResourceUse pool"
2020-09-24 syoussefi@chromium.org Vulkan: Support MSRTT depth/stencil resolve
2020-09-24 geofflang@chromium.org Add a Vulkan feature to compress float32 vertex formats.
2020-09-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from ae8b33cdea62 to 8ab1c000aaa0 (1 revision)
2020-09-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 6aadd31a5f98 to a09406249fa3 (1 revision)
2020-09-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from d9fa0d469f57 to 08c265691668 (2320 revisions)
2020-09-24 sergeyu@google.com Vulkan: Relax ASSERT in SemaphoreVk::wait()
2020-09-23 timvp@google.com Convert unordered_map to absl::flat_hash_map for select files
2020-09-23 jmadill@chromium.org Auto-generate restricted trace .gitignore.
2020-09-23 b.schade@samsung.com Use ImageHelper staging buffers for copyImageDataToBuffer
2020-09-23 m.maiya@samsung.com Vulkan: Enable OES_texture_storage_multisample_2d_array
2020-09-23 b.schade@samsung.com Vulkan: Fix bug in compressed texel block computation
2020-09-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 125b64241909 to 67525bded1de (4 revisions)
2020-09-23 m.maiya@samsung.com Allow GL_UNSIGNED_BYTE as a type for glColorPointer
2020-09-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from d19622688af4 to e7fcc14d450b (1 revision)
2020-09-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 0a863bc36554 to ae8b33cdea62 (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 brianosman@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:1018739,chromium:1096746,chromium:1130678,chromium:1132366
Tbr: brianosman@google.com
Test: Test:Test: Test: CQTest: Test: ContextNoErrorTest31.DrawWithPPOTest: Test: Manual verification of Skia 'gn gen' on WindowsTest: Test: ProgramPipelineTest31.VerifyPpoLinkErrorSignalledCorrectlyTest: Test: angle_end2end_test --gtest_filter=*ETC1CompressedImageNPOT*Test: Test: angle_end2end_tests --gtest_filter=*ETC1CompressedImageDraws*Test: Test: dEQP.GLES31/functional_separate_shader_validation_es31_*
Change-Id: I98dc227606b90f5f5fd1af4fd8ccf6a84bcb5e01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320581
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-29 17:40:05 +00:00
Herb Derby
0b0fb4d50b minimize includes and forwards for remote glyph cache
Change-Id: I83472d8eeb248be20db68d8f05cab9b98b8d77cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320558
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-29 17:04:55 +00:00
Ethan Nicholas
135e237656 moved SkSL FloatLiteral data into IRNode
Change-Id: Ic39e3e8169218cfdd0e1eee274858cc421abec7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320221
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-29 16:49:15 +00:00
Jim Van Verth
4b6f37d902 Move MacOS 10.13 Metal jobs to 10.15.
Compilation of Metal shaders on 10.13 is unstable and keeps crashing
the bots.

Change-Id: If4e707b80a6ca20f989b504b5bab33c8b2dcaac6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320297
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-09-29 15:23:15 +00:00
Stephen White
c73bff39bd Dawn: factor SKSL-to-SPIRV conversion, creation of ShaderModule.
Change-Id: Ia5cf75d40234e53fcbf49b4c6af96fd66844267e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320273
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@google.com>
2020-09-29 14:52:35 +00:00
skia-autoroll
842805ced1 Roll Chromium from 8563523f5c74 to 339e4ec27552 (471 revisions)
8563523f5c..339e4ec275

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 brianosman@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: brianosman@google.com
Change-Id: I2df7ca3182d4fa1d17c6969e97a194897d986c4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320503
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-29 06:05:34 +00:00
skia-autoroll
01bbe189b0 Roll Dawn from ed2b465f8607 to b2a4e87ad274 (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/ed2b465f8607..b2a4e87ad274

2020-09-28 enga@chromium.org Un-skip WriteTexture test on Swiftshader
2020-09-28 enga@chromium.org Roll third_party/swiftshader/ e8dd233c7..2014e7b92 (79 commits)
2020-09-28 cwallez@chromium.org Use typed integers for the ExecutionSerial
2020-09-28 cwallez@chromium.org D3D12: Use typed integers for the ExternalMutexSerial
2020-09-28 cwallez@chromium.org D3D12: Use typed integers for the HeapVersionID
2020-09-28 cwallez@chromium.org Use typed integers for the Fence FenceAPISerial
2020-09-28 cwallez@chromium.org Use typed integers for the Buffer MapRequestID
2020-09-28 cwallez@chromium.org SerialQueue/Map: Take the serial type as type paramater.

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: I05a4bcc40bfda4b86e75edc1f6f80a2bfe121957
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320497
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-29 04:57:04 +00:00
skia-autoroll
1fdcd38987 Roll SwiftShader from b94db86cf9b3 to 44be0942f9a8 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b94db86cf9b3..44be0942f9a8

2020-09-28 bclayton@google.com Pipeline: Fix return type of SIMD::Pointer::limit()
2020-09-28 bclayton@google.com Pipeline: Assign to SpirvRoutine::pointCoord

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 brianosman@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: brianosman@google.com
Change-Id: I4e1e863ea3bbd09a238c18e623f14ae82e0682fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320498
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-29 04:42:15 +00:00
Ethan Nicholas
e96cdd18ac moved SkSL IntLiteral data into IRNode
Change-Id: I3c6e968af6eba32eae1f1402f7603f27e949c638
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320067
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-28 21:06:43 +00:00
John Stiles
70025e5dac Remove fKind field from BasicBlock::Node.
The node's kind can be easily inferred by presence of a statement or
pointer inside of it. When there are only two kinds, having a separate
field doesn't add value. (If we end up wanting more block types in the
future, we could re-add fKind as a private field.)

Change-Id: I8e9db122b4a82728d987c4913a7bdff85b4b1a2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320298
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-28 20:48:33 +00:00
Herb Derby
80f6e4e558 air gap SkStrikeServer API from implementation
This is the second CL for isolating the Chrome
remote glyph cache API from the implementation.

See CL/320074 for the first CL, which handles
SkStrikeClient.

Pull out the rest of the tracing functionality.

Change-Id: I4d6aa4bf648a0d2d55cecedbe445a05c27e3a986
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320256
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-28 20:43:33 +00:00
Ethan Nicholas
1fd6116b25 moved SkSL DoStatement's data into IRNode
Change-Id: I936a939c105a9707d9cd7bcfdcf3e642c8f5c99a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320259
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-09-28 20:30:33 +00:00
Jim Van Verth
c2d10ef667 Add deprecation warning when running Metal on older OSes.
Older versions of MacOS are unstable when compiling shaders, and we
don't have the testing support for older versions of iOS.

Bug: skia:10777
Change-Id: I95d9fe0f1007af6bec5c7525dacda565e32989f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320260
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-28 20:14:43 +00:00
Brian Salomon
c993fe60be Work around python 2 shutil.copy2 date bug
ninja 1.9.0+ exposes a bug in python shutil.copy2 where a copied file's
date is the src's date but rounded. This can cause ninja to think the
copied file is slightly older than the src and trigger unnecessary work
when building.

https://github.com/ninja-build/ninja/issues/1554

Change-Id: I53247453f38a1c98c5d832bdda0f68effbe786c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320261
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-28 20:12:13 +00:00
Greg Daniel
427d8ebf30 Fix offscreen drawing when cleaning up vulkan viewer.
When using offscreen draws, we save the "previous" frame in fLastImage
in viewer. However this image holds a ref to the GrContext. When we
were destroying the vulkan context we thought we were destroying the
GrContext before the VkDevice but fLastImage was keeping it alive.

This changes makes sure to reset fLastImage when we are done with it.

Change-Id: Ib70e069a261f939217436a9f052d7565581cd230
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320263
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
2020-09-28 19:41:03 +00:00
John Stiles
3d921f1b2c Add unit test to demonstrate lack of SkSL swizzle optimization.
The right side of assignments will collapse redundant swizzles, but the
left side does not. Code like this can actually cause the ByteCode-
Generator to assert if it is run (it asserts in `swizzle_is_simple`
during code generation).

Change-Id: I891912fe0b5de2670dfa95f6702a86d5c42bb2ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320296
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-28 19:02:03 +00:00
John Stiles
06febefd7e Add 'tricky' OutParams golden output.
This was adapted from a test in SkSLInterpreterOutParams and presents a
challenging double swizzle.

Change-Id: Icb7b3bbb18d4b3cfa0c26acb524c08812ba88096
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319920
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-28 18:52:13 +00:00
Mike Klein
81b8ba2ed6 impl q14 in JIT using even lanes
We have options how to represent 8 Q14 values in a ymm,
mainly either in the 8 low 16-bit lanes or in the 8 even 16-bit lanes.

I've tried both and the even-lane approach is nicer:
   1) many operations are the same for 32-bit or 16-bit
   2) splat and splat_q14 constants can share the same pool
   3) to_q14 and from_q14 are essentially noops

Interestingly, over in the interpreter we use dense 16-bit storage for
Q14 to operate most efficiently there, so we've kind of already proved
the thesis that each backend should have this flexibility.

Change-Id: I4d5a40159d46b6b24413087d0837128e6477752d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319335
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-28 18:47:34 +00:00
Herb Derby
d82e2c1ec1 air gap SkStrikeClient API from implementation
All the interface classes in SkRemoteGlyphCache have too
many Skia types exposed during compilation. This is
causing c++17 compilations to fail. This is the first
of a few CLs to isolate Skia better.

In addition, remove the tracing functionality. I will
add it back when I need it again.

Change-Id: I5d4efe7aadb5e8be2a863784dbbe5398afb09666
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320074
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-28 18:38:33 +00:00
Ben Wagner
525f8a6fbc Respect kGenA8FromLCD when creating mask from path.
Ideally the surface onto which a glyph is drawn will not affect the
glyph metrics. In order to do this the kGenA8FromLCD flag must be
respected by the scalar context so that requests for subpixel rendering
always produces subpixel rendering metrics but the subpixel mask mixed
down to non-subpixel rendering should the canvas not support it.

Not supporting this can cause odd behavior when measuring one way but
then drawing the other way.

Change-Id: Id08ffa14483b4650459a2f0351da2ffdea81e3c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319696
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-09-28 18:37:53 +00:00
Herb Derby
f0b5644e6b introduce SkGlyphRect specialized for union & intersect
SkGlyphRect is a rectangle encoding specialized for
union and intersect. It will be used for calculating
the bounding boxes of glyph runs, and clipping glyphs
for GPU.

Change-Id: Icab826b51dc2254ee4006ada84f7fc09e112a933
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319697
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-28 18:31:33 +00:00
John Stiles
bc0c29ead3 Fix call counts for intrinsic functions.
This allows dead-stripping to properly optimize away unreferenced clones
of intrinsic functions, and allows the inliner to detect intrinsic
functions that are only called once (which can generally always be
inlined without penalty).

Change-Id: I0cf034d880ae5d52f4cc0f93de6e2c7aad34e975
Bug: skia:10776
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320258
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-28 18:04:34 +00:00
John Stiles
e41b4ee49e Reland "Support out parameters that use a swizzle."
This is a reland of 435b482638

inlineStatement now takes a `const Expression* resultExpr` instead of
`const Expression& resultExpr` because resultExpr will be null for a
void function.

Original change's description:
> Support out parameters that use a swizzle.
>
> This CL also removes the `VariableExpression` class that was briefly
> added in a prior CL. This class was intended to support cloning an
> expression while changing the refKind of a VariableReference inside of
> the expression, but it added state and complexity. In this CL, rather
> than track this via extra state, the inliner just recurses into the
> expression as needed to find its VariableReference. Since most relevant
> expressions are just a VariableReference anyway, this is inexpensive.
>
> Change-Id: Id4d926b7d7520b5e6ce455446c05a6d59ef62a84
> Bug: skia:10756
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319917
> Commit-Queue: John Stiles <johnstiles@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Bug: skia:10756
Change-Id: I35f76c21eccf0ba2ab47e4313e131f7aa26980fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320223
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-28 17:34:03 +00:00
Michael Ludwig
3dad80308d Check SkRRect::transform result, don't assume S+T matrix is safe
Bug: chromium:1132739
Change-Id: I67b7ac535232925e98e44c0bb90964fded9f4d05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320068
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-09-28 17:13:33 +00:00
skia-autoroll
9c983682e4 Roll Chromium from 6a3c229fa0dc to 8563523f5c74 (1024 revisions)
6a3c229fa0..8563523f5c

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 brianosman@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: brianosman@google.com
Change-Id: I79e8bd25db601e0878e1f88780ccc231b8c7977a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320076
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-28 17:12:33 +00:00
Ben Wagner
12857d405c Fix gms placing text in bounds.
In the operation of taking the bounds of (horizontal text) and then
drawing the text within those bounds it is necessary to draw the text at
the origin of the bounds and not at the left edge of the bounds.

Change-Id: I712e1713ca5e0be929b11f526f224141a5310cc2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-09-28 16:35:13 +00:00
Brian Salomon
8ff24492e2 Log more info for Chrome bug 1132617
Bug: chromium:1132617
Change-Id: I88950bc782a7f0ab4431b1f9646750731c8069f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320063
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-09-28 16:22:16 +00:00
Greg Daniel
314e7e522b Use sk_sp for GrVkImageViews.
This is just part of the occasional refactoring to slowly move all of
vulkan resource tracking to sk_sp instead of manual ref/unrefs

Change-Id: I2ed4d5bb4c6acfc89dc6d797019977e1c4bd5d1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320065
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-09-28 16:18:13 +00:00
Robert Phillips
defd223d40 Add correctness checks to GrThreadSafeViewCache tests
Bug: 1108408
Change-Id: I8e815003808624fcd767e5e9a579d3f17e7ddb46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319781
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-09-28 15:43:53 +00:00
Brian Osman
6bfa63fe39 Revert "Support out parameters that use a swizzle."
This reverts commit 435b482638.

Reason for revert: ASAN/UBSAN unhappy.

Original change's description:
> Support out parameters that use a swizzle.
>
> This CL also removes the `VariableExpression` class that was briefly
> added in a prior CL. This class was intended to support cloning an
> expression while changing the refKind of a VariableReference inside of
> the expression, but it added state and complexity. In this CL, rather
> than track this via extra state, the inliner just recurses into the
> expression as needed to find its VariableReference. Since most relevant
> expressions are just a VariableReference anyway, this is inexpensive.
>
> Change-Id: Id4d926b7d7520b5e6ce455446c05a6d59ef62a84
> Bug: skia:10756
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319917
> Commit-Queue: John Stiles <johnstiles@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

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

Change-Id: Ibdda47607f9e6e7f3a7459915067cf5e20919993
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10756
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320220
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-28 15:36:35 +00:00
Michael Ludwig
e5d5eedd2d Update SkClipOp::kMax_EnumValue to match non-deprecated values
Even when expanding clip ops were disabled, the max value allowed the
fuzzer to produce those disabled values. This should fix the fuzzer to
only produce valid intersect or difference clip ops.

Bug: chromium:1132687
Change-Id: I7368ff36a00e6b0e87ecbae5ba647d249299b9ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320064
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-09-28 15:30:33 +00:00
Herb Derby
ca9dac83bd remove unused call from remote glyph cache API
Change-Id: I34d3b17844dac35804e1dd54caed2c264a737b0d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320066
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-28 15:23:13 +00:00
John Stiles
a976da7e2f Simplify IsAssignable to only support one assignable var.
Now that ternaries are no longer supported for assignment (as per GLSL
spec), there's no longer any cases where an assignment can target more
than one variable reference at a time. Replace the output vector of
VariableReferences `assignedVars` with a single VariableReference,
`assignedVar`.

Also, allow callers to pass null for the ErrorReporter. This is useful
if inability to assign to an expression does not actually indicate an
error condition.

Change-Id: I146a9d1a488131ac5048c665e4dc880d895a275a
Bug: skia:10767
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319859
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-28 15:18:33 +00:00
Kevin Lubick
6a189f23af [fuzz] Add CIFuzz taskdriver
This is too slow at the moment to run on the CQ (~50 minutes), but
metzman@ is planning on caching a bulk of the work needed before
we can compile the fuzzers.

Bug: skia:10713
Change-Id: I664b8afbdb9fa57a4bce3aa479ffce3c70b684ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317283
Reviewed-by: Eric Boren <borenet@google.com>
2020-09-28 15:17:24 +00:00
Kevin Lubick
f95c8629d1 [canvaskit] Use linear metrics in shaping demo
Subpixel and slight hinting also make a big difference.

Change-Id: I1b942caf20dbdcf8bebc3504695c673fbe7e4392
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319791
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-09-28 15:16:13 +00:00
John Stiles
435b482638 Support out parameters that use a swizzle.
This CL also removes the `VariableExpression` class that was briefly
added in a prior CL. This class was intended to support cloning an
expression while changing the refKind of a VariableReference inside of
the expression, but it added state and complexity. In this CL, rather
than track this via extra state, the inliner just recurses into the
expression as needed to find its VariableReference. Since most relevant
expressions are just a VariableReference anyway, this is inexpensive.

Change-Id: Id4d926b7d7520b5e6ce455446c05a6d59ef62a84
Bug: skia:10756
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319917
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-28 15:04:33 +00:00
Kevin Lubick
f83f4c63fd [canvaskit] Increase timeout for RenderSKPs
Also add a skiplist to bypass a skp that is (hopefully temporarily)
timing out.

Change-Id: I912bd901a985ae86adfed13db102a1e7fee5686a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320060
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-09-28 15:01:08 +00:00
Ethan Nicholas
59d660c075 Revert "Revert "moved SkSL BoolLiteral data into IRNode""
This reverts commit 5648572f4a.

Change-Id: If9b1f46f4d4d94beca6953d0fef3b8d79c88572d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320059
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-09-28 14:13:32 +00:00
John Stiles
7a6935a528 Update OutParams unit test to demonstrate SkSL failure.
Swizzles in combination with out params are currently broken in SkSL.
They are fixed in the followup CL at http://review.skia.org/319917

Change-Id: I22d9436a15631e6ee2acf9fc312a8634cf3b5407
Bug: skia:10756
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319918
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-28 14:09:03 +00:00
skia-autoroll
ad6aeace6e Roll dawn from eec9edfd5769 to ed2b465f8607 (2 revisions)
https://dawn.googlesource.com/dawn.git/+log/eec9edfd5769..ed2b465f8607

2020-09-27 jiawei.shao@intel.com Report more detailed error information for the failures of mapAsync
2020-09-25 hao.x.li@intel.com Query API: QuerySet on Metal

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: I02c4b9bd190a508acb0cce3da4989ae009a2157d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320078
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-28 04:36:52 +00:00