Commit Graph

50814 Commits

Author SHA1 Message Date
Jim Van Verth
5fba9ae0cb Revert "Reland "Use Microsoft's ComPtr to wrap D3D12 objects.""
This reverts commit b8ae7fa12a.

Reason for revert: Introduced a memory leak

Original change's description:
> Reland "Use Microsoft's ComPtr to wrap D3D12 objects."
> 
> This is a reland of 0ef049177f
> 
> Original change's description:
> > Use Microsoft's ComPtr to wrap D3D12 objects.
> > 
> > Change-Id: I4bd173428a2b65f0bc1994fb794ef9d4d68d5ba0
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314957
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Jim Van Verth <jvanverth@google.com>
> 
> Change-Id: Id0199db4061c67ed53da35e74dc31a004744be95
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315655
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I3f8744668558f6b8f4f367eeeeff2f6aa2c36992
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318209
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-09-21 22:02:12 +00:00
John Stiles
2b788b11e0 Create golden outputs for SkSL blend functions.
Several blend functions generate a surprisingly large amount of code,
and appear to have opportunities for further optimization. At any rate,
if we make compiler changes that would affect the output of a blend
function, I think we would want to see the changes reflected in our
golden outputs.

Change-Id: Iff612dcd4bad8824b5e6e97413ffce19e5ea1c0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318336
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-21 21:53:41 +00:00
John Stiles
eed481a0dd Add convenience methods to CFG builder.
This doesn't change the meaning or intent at all, just makes the code
easier to read.

Change-Id: I998498de8fba625d86eadc2fba119c29a1e1d29a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318202
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-21 20:47:01 +00:00
Greg Daniel
9a48697bd7 Allow client to pass in VK_IMAGE_LAYOUT_UNDEFINED into mutable state change requests.
Passing in VK_IMAGE_LAYOUT_UNDEFINED will tell Skia to not update the
layout when doing the state change.

Bug: skia:10742
Change-Id: Ic59b7c95d3a73e29dcd6eec16a2fd138e1a1d95f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318204
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-09-21 20:38:42 +00:00
Greg Daniel
e77162ea89 Make GrStencilAttachment derive from GrSurface.
This is the start of trying to have all our different types of "surface"
allocations share a common class. we will soon follow up with also having
an msaa attachment class derivie from GrSurface.

Bug: skia:10727
Change-Id: I50e78d232a454b1dd35cf9606791390ce5a6396b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317392
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-21 20:06:41 +00:00
John Stiles
4e5c3dae9f Remove needless do-while(false) block from inlined blend methods.
The optimizer still doesn't understand how to remove an unnecessary do-
while loop, but this change will prevent blend_src_in and blend_dst_in
from having an early return at all, and won't otherwise pessimize the
output. This will also allow these blends to be inlined on systems which
don't support do-while loops at all.

Change-Id: I44ef7b3a50571e1a2fe6214f5821ab886471b4aa
Bug: skia:10737
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318236
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-21 18:19:31 +00:00
John Stiles
44dff4f201 Optimize early-return detection.
Previously, `has_early_return` would count all of the return statements
in the program, and then compare that against the number of return
statements detected at the end of the program's control flow.

However, that's overkill; we don't actually need to know the full number
of returns. We only need to know if there are more returns than what we
found at the end of control flow. i.e. if a program has 1 return at the
end of its control flow, we can stop as soon as we find 2 returns and
say "yes, there's an early return somewhere."

Change-Id: I332810a7fd411d08acd6f8488ce128b5ee9eff09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318199
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-21 17:23:21 +00:00
Ethan Nicholas
a02ce0cee3 Fixed a bug with SkSL ternaries in binary files
Change-Id: Ic6b30ea9052a762959fec600d5132c6409a80fed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318201
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-21 17:16:31 +00:00
Adlai Holler
731f67cf16 Migrate skottie to GrDirectContext
Almost forgot this one!

Change-Id: I325d25dcfffc872a4931c19ca53a0387c3771496
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318200
Commit-Queue: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-09-21 17:13:41 +00:00
Nathaniel Nifong
6cc032c12d include freetype in wasm build, see cl/332073924 for complete change
Change-Id: I2f1d6ef2719191fe9a56e31712c058c3207d23a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317615
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-09-21 17:05:41 +00:00
John Stiles
b61ee905fd Remove duplicate copy of ensureScopedBlocks.
The original plan was for the IRGenerator to remove its inlining logic
entirely, but that looks like it might be difficult to accomplish
without a performance hit. Since we might be stuck with IRGenerator
inlining for a while, let's remove the duplicated logic.

Change-Id: I17151b9a3a000a119393bce19335fd7398db3db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318197
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-21 17:03:11 +00:00
Adlai Holler
d8ca58a332 Remove SkCanvas::getGrContext & GrRecordingContext::backdoor
These are no longer needed now that we've migrated away.

Change-Id: Id308af7d40ffe0d539a3c6fd201220d145080928
Docs-Preview: https://skia.org/?cl=317281
Cq-Include-Trybots: luci.skia.skia.primary:Canary-Android,Canary-G3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317281
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-21 16:46:21 +00:00
Brian Salomon
6c6678f78e Separate YUVATextures, YUVATexturesCopy, and YUVAPixmaps in wacky GMs.
Skips all but the generator flavor on CPU since the others were all
falling back to the generator anyway.

Uses the new MakeFromYUVAPixmaps signature.

Rename domain to subset.

Bug: skia:10632
Change-Id: Ie6afe0e7927dc3d0b121df094c1ccb6f0db3b815
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318198
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-21 16:19:51 +00:00
Kevin Lubick
1a42d52712 [canvaskit] Fix Debug build
Change-Id: I028075fd523f5fe2af0a42d051d4471d4800cfb6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318158
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-09-21 16:15:41 +00:00
John Stiles
8614e49258 Replace VariableReference::copy_constant with clone().
This does not appear to affect any tests or cause any meaningful
differences.

Change-Id: I8ce53838a87bec72acb8167f8e41bf21f52b85ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317618
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-21 15:41:01 +00:00
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