Commit Graph

47966 Commits

Author SHA1 Message Date
Jim Van Verth
c12aad9485 Some more minor fixes for D3D tests.
Change-Id: Ie0be9ef7f9aba1c91f03053311686905142b3814
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285498
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-04-24 21:00:41 +00:00
Herb Derby
438775b19e Reland "fix crbug 1073670"
This is a reland of 553deb66e4

Original change's description:
> fix crbug 1073670
>
> When drawing a path with effects, the deviceMatrix must not be modified.
>
> * added GM for regression checking
>
> Bug: chromium:1073670
>
> Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: chromium:1073670
Change-Id: I518497997f09e37d13fc05499b68135ebd4e0a96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285497
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-04-24 20:52:21 +00:00
Mike Klein
6d54e84dc5 Revert "Add Abseil to third_party."
This reverts commit 816226e822.

Reason for revert: 

https://chromium-swarm.appspot.com/task?id=4bc69ffc0a889110

/mnt/pd0/s/w/ir/clang_linux/bin/clang++ -rdynamic -Wl,-rpath,\$ORIGIN --target=armv7a-linux-gnueabihf --sysroot=/mnt/pd0/s/w/ir/armhf_sysroot -static-libstdc++ -static-libgcc -B/mnt/pd0/s/w/ir/armhf_sysroot/bin -B/mnt/pd0/s/w/ir/armhf_sysroot/gcc-cross -L/mnt/pd0/s/w/ir/armhf_sysroot/gcc-cross -L/mnt/pd0/s/w/ir/armhf_sysroot/lib -L/mnt/pd0/s/w/ir/chromebook_arm_gles/lib -Wl,--start-group @./dm.rsp  -Wl,--end-group -lpthread -ldl -lGLESv2 -lEGL -o ./dm
libabsl.a(libabsl.numbers.o): In function `absl::string_view::substr(unsigned int, unsigned int) const':
/mnt/pd0/s/w/ir/skia/third_party/externals/abseil-cpp/absl/strings/string_view.h:387: undefined reference to `absl::base_internal::ThrowStdOutOfRange(char const*)'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)


Original change's description:
> Add Abseil to third_party.
> 
> At present, this is a proof-of-concept which only supports a small
> subset of absl modules:
> - Base
> - Hash
> - Numeric
> - String
> 
> This is only used by one unit test, which builds a string and then
> hashes it.
> 
> Bug: skia:10165
> Bug: b/154848688
> 
> Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

TBR=djsollen@google.com,johnstiles@google.com

Change-Id: If9936f1beaf6ac9c85718ce445e823bf2f57a6fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10165, b/154848688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285491
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 20:15:42 +00:00
Brian Osman
eca31bc7a9 Remove support for reading old serialized SkVertices
Change-Id: If3010945532e1d6b16e590cf8c4afd4578ae770f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285392
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-24 20:04:31 +00:00
Joe Gregorio
ade3f4c3ea Revert "fix crbug 1073670"
This reverts commit 553deb66e4.

Reason for revert: Breaking ChromeBook builds, such as Build-Debian9-Clang-x86_64-Release-Chromebook_GLES_Docker


Original change's description:
> fix crbug 1073670
> 
> When drawing a path with effects, the deviceMatrix must not be modified.
> 
> * added GM for regression checking
> 
> Bug: chromium:1073670
> 
> Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

TBR=herb@google.com,robertphillips@google.com,brianosman@google.com

Change-Id: Ibe2243e435fd5b49b49bb55d909d7eb9cf4ca255
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1073670
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285496
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2020-04-24 19:56:03 +00:00
John Stiles
816226e822 Add Abseil to third_party.
At present, this is a proof-of-concept which only supports a small
subset of absl modules:
- Base
- Hash
- Numeric
- String

This is only used by one unit test, which builds a string and then
hashes it.

Bug: skia:10165
Bug: b/154848688

Change-Id: I016250bf700b522c7a6bc78cf1844abff2260c35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284805
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-04-24 19:53:21 +00:00
Greg Daniel
d59a91df4d Rename GrSpirv* files to GrSPIRV.
Change-Id: I4a4fc5dbdf6bba78e6ba5d60478b3e109b685a67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285098
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-24 19:24:10 +00:00
Herb Derby
553deb66e4 fix crbug 1073670
When drawing a path with effects, the deviceMatrix must not be modified.

* added GM for regression checking

Bug: chromium:1073670

Change-Id: Id75d6f00aa50d891ec807f10be72c0068ec80356
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285387
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-04-24 18:59:20 +00:00
Mike Klein
246d29ab89 skx matches hsw now
I can only think that maybe Clang used to generate vrcp14ps,
we added those numbers, and now they went back to vrcpps and
the old precision?  Or maybe we wrote the old numbers against
zmm registers and vrcp14ps, but for ymm we get vrcpps?

Change-Id: I46e8b3ec226902c3337069212228f1709f0cf0b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285449
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-04-24 17:53:50 +00:00
Leon Scroggins III
63cfb3638c Reland "Move SkFrontBufferedStream into Android-only dir"
This reverts commit b25f30348b.

Bug: skia:10154

Original message:
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
>
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.

Deliberately do not include client_utils in Google3, since the whole
point is to only include where necessary.

Change-Id: I48938c56aabb98e1ed820240d43ffcd0fdce7956
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285104
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-24 17:36:30 +00:00
Greg Daniel
23da19863e Make compiling the amd vulkan memory allocator optional.
Change-Id: I79b9f78b52f215076a371cbd0ff057d61dd855f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285380
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-24 17:21:30 +00:00
Mike Klein
6a2729ce0a stack hint
Use the stack size from the first call to jit()
to minimize stack frame for second call to jit().

Change-Id: Icec42760fe13d90f8e3ced270ad94c754e58b385
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285446
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 17:17:21 +00:00
Florin Malita
ec403606f2 Fix skottie2movie build
... after https://skia-review.googlesource.com/c/skia/+/285378

(uses the *encoder* component, not the decoder)

TBR=

Change-Id: Icfd48c6f37284e5f3bb8b5d50810ca4d15e3326a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285383
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 16:50:40 +00:00
Jim Van Verth
6b1aabd4d1 Fix minor issue in D3D MSAA rendertarget setup
Bug: skia:9935
Change-Id: Iae72935c9835a02996b493ad32a79db7c1237902
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284932
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-04-24 15:57:50 +00:00
Florin Malita
123e3b893f [skottie/tools] Video playback support
Implement a VideoAsset wrapper, used for Skottie video layers.  This
requires a non-testlib build target for SkVideoDecoder, hence a
dedicated BUILD.gn.

Add software conversion fallback for SkVideoDecoder, using libswscale.

Change-Id: I80dd555a1241081e50ee4834b64ad3518948a0f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285378
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 15:56:50 +00:00
Mike Klein
51d35ed972 add SKX opts
Add an SkOpts slice for SKX, a.k.a. Skylake Xeon, a.k.a. skylake-avx512,
a.k.a. AVX-512 F+CD+BW+DQ+VL.

I've tried to do this a little differently than usual to see if we can
avoid special compiler flags, instead enabling the features we want from
inside the SkOpts_skx.cpp source file.  This is the approach we take in
skcms and that seems to be working fine.

Where we previously checked for AVX-512F before, now check more
carefully for the full SKX feature set, and rename things "SKX" to match.

To start, build raster pipeline stages and SkVM interpreter.

With interesting workarounds for,
   - clang-cl immintrin.h
   - build error with clamp() in ix_and_ptr() I don't understand

Change-Id: Ifb10da2c6b472567310d42b03893100577164df5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285343
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 15:35:50 +00:00
Chris Dalton
7f0b8973e9 Add CPU benchmarks for individual methods on GrTessellatePathOp
Change-Id: Ica5d3229fc602d17cf568a25742612c94b87ae9e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285215
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-24 15:23:41 +00:00
Herb Derby
8b0cfa8de9 condense stack usage
Only use a stack slot when spilled being careful to track hoised
slot data between vector and scalar code generation.

TODO:
Come up with a strategy to change the constant on the initial
subtrack from SP to reduce size.

Change-Id: Icf38ad33c7026dac065d51547db827b1516f2504
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285107
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-04-24 14:56:26 +00:00
Mike Klein
d5cba9d000 add SkColorSpace param to SkPixmap::erase()
We don't have a way to erase with a non-sRGB color.

Update the P3 gm to test this, removing the SkBitmap erase case where
there's no option for even an SkColor4f, let alone non-sRGB.  I'm not
sure it's really important to have one when we've got this on pixmap.

Updated release notes.

Change-Id: Ie98270d3f83e041593b4c6b2da8e325b36d4ff18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285341
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-04-24 14:20:54 +00:00
Chinmay Garde
13b6cf697f Ensure correct SkSurfce::MakeFromCAMetalLayer availability.
CAMetalLayer is available on iOS versions above 8.0. However, when using the
simulator, this version is bumped up to 13.0. This is done via a separate header
altogether and there is no provision to specify simulator versions in
API_AVAILABLE. SK_API_AVAILABLE_CA_METAL_LAYER must be used to signal correct
API availability in all versions of iOS including simulators.

Change-Id: I628e3062fd9531869400dc8a29d42f96afb11d82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284988
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-04-24 14:15:54 +00:00
skia-recreate-skps
1e21d14f2b Update Go Deps
Change-Id: I7f6ad14d8b817c3a5cd9adaa71d2746585b421f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285348
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-04-24 14:06:14 +00:00
Mike Klein
974fcc5be5 rework constants
Splat instructions no longer do anything at runtime;
instead we make sure at compile time the constant will be available.

Then when we want to find a given value we look for registers, splats,
and stack values, creating an x86 Operand or loading it into a Reg as
needed.  Constants are already in-memory, they're no-ops to spill.

This lets us simplify and delete lots of code, and we now only call
optimize() once for all backends, so it's a big deal for overhead.

Change-Id: I78a54feaf8b18be26efe73dffda903a7a9e31daa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285153
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 13:23:15 +00:00
Mike Klein
48c51bb51e test vcmpeqps with label offset
We're getting this wrong today, and likely also these several
other instructions.  We need to account for the immediate byte
that follows the ip-relative offset!

Add imm_byte_after_operand() to take care of this.

Change-Id: If0f4359b0a8e9d769bfde0d8456726e82f798123
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285237
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-24 13:22:45 +00:00
Florin Malita
8b70f4d052 [skottie] Video layer support
Bodymovin exports video layers similar to image layers, but assigns a
dedicated type id.

Since Skottie's ImageAsset interface already supports multi-frame
images, we can reuse the same mechanism for video.

Also, since we're adding sparse layer type handlers, we can now
fill all known Lottie layer enums and simplify the handling of camera
layers.

Change-Id: Ide6c6b3566d48f90f36f0143eaea7c62bbdedb2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285106
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-24 12:28:05 +00:00
Robert Phillips
11c6767a17 Create DDL for final composition step in DDL test harness
Besides better matching Viz's behavior this also reduces a lot of choppiness in the composition RenderTask DAG.

In the previous approach DDL draws and compositing draws would be interleaved resulting in a lot of render target swaps.

This necessitated some reorganization bc I wanted to reuse PromiseImageCallbackContext to manage the tiles' promiseImages.

Change-Id: I513bf060a69ff2bfe0e7b82ae72f149dfede632e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285056
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-04-24 12:16:34 +00:00
skia-autoroll
92247633ff Roll ../src a49aa6883e5f..132edc1c6ff4 (451 commits)
a49aa6883e..132edc1c6f


Created with:
  gclient setdep -r ../src@132edc1c6f

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 jcgregorio@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/+/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
Bug: None
Tbr: jcgregorio@google.com
Change-Id: If82f4f54caf702336c02f73966cdd01e073c3e4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285247
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-24 04:51:54 +00:00
skia-autoroll
7b8960397b Roll third_party/externals/angle2 913f4f421381..21c5af3151fb (11 commits)
913f4f4213..21c5af3151

git log 913f4f421381..21c5af3151fb --date=short --first-parent --format='%ad %ae %s'
2020-04-23 tobine@google.com Vulkan:Migrate events and queries to secondary Cmd Buffer
2020-04-23 b.schade@samsung.com Vulkan: Disable EXT_texture_sRGB_R8
2020-04-23 tobine@google.com Vulkan: Manual Validation Layer Roll
2020-04-23 j.vigil@samsung.com EGL: Implement EGL_ANDROID_native_fence_sync on vulkan
2020-04-23 jmadill@chromium.org Vulkan: Mask out implementation dirty bit in sync.
2020-04-23 jmadill@chromium.org Vulkan: Track allocated sampler counts.
2020-04-23 jmadill@chromium.org Vulkan: Add a sampler cache.
2020-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 84463fe2902f..7774c964d3df (1 commits)
2020-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader ceb6258ae101..5ab1f36a38aa (12 commits)
2020-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src c9b28b9f3388..7d65f09b8311 (2 commits)
2020-04-23 timvp@google.com Fix program interface queries for arrays and built-ins

Created with:
  gclient setdep -r third_party/externals/angle2@21c5af3151fb

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 jcgregorio@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/+/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: jcgregorio@google.com
Change-Id: I98dc8524df03e311477b05290c9f18d23588037b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285246
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-24 04:46:14 +00:00
skia-autoroll
9fd434227a Roll third_party/externals/swiftshader ceb6258ae101..91525d85792f (16 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/ceb6258ae101..91525d85792f

git log ceb6258ae101..91525d85792f --date=short --first-parent --format='%ad %ae %s'
2020-04-23 digit@google.com LLVM: Do not map read-only data sections as executable.
2020-04-23 digit@google.com Vulkan: Add vk_icdInitializeConnectToServiceCallback()
2020-04-23 amaiorano@google.com Kokoro: fix SWIFTSHADER_LESS_DEBUG_INFO not being set
2020-04-23 digit@google.com Update tests/presubmit.sh to accept Fuchsia bugs as fxb/#
2020-04-22 capn@google.com Fix specializing graphics routines for the pipeline layout
2020-04-22 bclayton@google.com SpirvShader: Add a flag for printing SPIRV execution
2020-04-22 bclayton@google.com Regres: Write logs to /dev/null
2020-04-22 amaiorano@google.com CMake: use target_compile_options/definitions for llvm
2020-04-22 amaiorano@google.com CMake: use target_link_options
2020-04-22 amaiorano@google.com CMake: require version 3.13
2020-04-22 amaiorano@google.com Kokoro: update CMake to latest version
2020-04-22 bclayton@google.com Regres: Limit the default number of threads to 100
2020-04-22 capn@google.com Pass only descriptor data to shader execution
2020-04-22 capn@google.com Reduce descriptor binding info exposure
2020-04-22 bclayton@google.com Kokoro: Fix ubuntu bots.
2020-04-22 digit@google.com Vulkan: Fix Fuchsia external semaphore fix tryWait().

Created with:
  gclient setdep -r third_party/externals/swiftshader@91525d85792f

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 jcgregorio@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jcgregorio@google.com
Change-Id: I2b36d8de69e954c3923eb2726844faad8b54ed77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285249
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-24 04:39:14 +00:00
skia-autoroll
22e77dacc4 Roll third_party/externals/dawn 21d753a05346..635239faf8ef (7 commits)
https://dawn.googlesource.com/dawn.git/+log/21d753a05346..635239faf8ef

git log 21d753a05346..635239faf8ef --date=short --first-parent --format='%ad %ae %s'
2020-04-23 brandon1.jones@intel.com Non-Local Residency 2: Implement Non-Local Management Logic
2020-04-23 cwallez@chromium.org Special-case GetDefaultQueue in the wire
2020-04-23 bryan.bernhart@intel.com D3D12: Fix UBO and sampler heap encoding test.
2020-04-23 enga@chromium.org Reland "Slab-allocate VkDescriptorSets"
2020-04-23 rafael.cintron@microsoft.com Use Ref<TextureBase> instead of TextureBase* in more places
2020-04-23 sgilhuly@chromium.org Use dawn_has_build in dawn_component
2020-04-23 cwallez@chromium.org Revert "Slab-allocate VkDescriptorSets"

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/google/shaderc ced9c72d005e..ced9c72d005e
  https://chromium.googlesource.com/chromium/src/third_party/jinja2 b41863e42637..b41863e42637
  https://chromium.googlesource.com/chromium/src/third_party/markupsafe 8f45f5cfa000..8f45f5cfa000
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang 3f4e5c456306..3f4e5c456306

Created with:
  gclient setdep -r third_party/externals/dawn@635239faf8ef

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/+/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: I4b1bcab92c98e1ff60fe184e970699d1bb51f475
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285248
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-24 04:34:54 +00:00
Brian Osman
f8865057e8 Make SkDevice preserve SkCanvas' 4x4 matrix
For now, getting the 4x4 matrix is still opt-in, and the vast majority
of code will continue to use the 3x3 matrix. This does fix marked
matrices when the CTM includes any Z.

Most of these changes ensure that APIs used to save and restore the CTM
operate on the 4x4, so that we don't accidentally discard Z.

Change-Id: Id6a690fc84c7fa1a0d686ec6d1cbeef6532c696e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284930
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-23 20:35:38 +00:00
Herb Derby
5e8fa6feb7 correct only spill once
In the scaler code, hoisted stack positions worked by chance. Add asserts,
and properly account for hoisted stack positions.

Change-Id: I8953d9f34dc110c7eadfd8855a02786aa6789043
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285101
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-23 20:33:38 +00:00
Brian Osman
1985466ab1 Clean up Sample3D math a bit, fix a bug with world-space
The localToWorld matrix was still offset, because is was being
tagged while the transform still had things offset from the origin.
I've moved where it's marked to fix that bug, renamed the ID,
and done some other minor cleanup to hopefully clarify how things
fit together.

Change-Id: Idccc419882a2e89dee14128a6096ad7566d57f99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285103
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-23 20:12:13 +00:00
Brian Salomon
c71eaad217 Increase shader/pipeline timeouts in Metal backend
Locally on my imac this seems to make GMs produce more deterministic
results.

Pipeline timeouts still occur flakily happen in:
complexclip2_path_aa,
complexclip2_rrect_aa, and
complexclip2_rect_aa.
However, further increasing the pipeline timeout just causes those to
all eventually fail with "Compiler encountered an internal error".

Hoping this reduces the flakes on the bots as well.

Change-Id: If1951036934a1e4985aaca1c6f610ef44b69f30a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285102
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-04-23 20:08:28 +00:00
Leon Scroggins
565f17f29d Reland "Make SkBitmap/SkPixmap::erase* do so in sRGB"
This reverts commit 832c931d5b.

Reason for revert: To confirm whether it was blocking, and update
Chrome if necessary

Bug: skia:8663

Original change's description:
> Revert "Make SkBitmap/SkPixmap::erase* do so in sRGB"
>
> This reverts commit 6f44647e52.
>
> Reason for revert: checking to see if this is blocking the Chrome roll
>
> Original change's description:
> > Make SkBitmap/SkPixmap::erase* do so in sRGB
> >
> > We generally consider untagged colors to be sRGB, so this makes us more
> > consistent with other parts of the API.
> >
> > Add a test.
> >
> > Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
> > Change-Id: I5468c86ad92164797a65ffd9fbe471e01a97a2ca
> > Reviewed-on: https://skia-review.googlesource.com/c/179245
> > Commit-Queue: Leon Scroggins <scroggo@google.com>
> > Reviewed-by: Mike Reed <reed@google.com>
> > Reviewed-by: Mike Klein <mtklein@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
>
> TBR=djsollen@google.com,mtklein@google.com,scroggo@google.com,brianosman@google.com,reed@google.com
>
> Change-Id: Ia592adf2c790d294da1e32c1e83f9f34e81d79cc
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
> Reviewed-on: https://skia-review.googlesource.com/c/182083
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=djsollen@google.com,mtklein@google.com,robertphillips@google.com,scroggo@google.com,brianosman@google.com,reed@google.com

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel;luci.chromium.try:android-kitkat-arm-rel;luci.chromium.try:android-marshmallow-arm64-rel;luci.chromium.try:linux-chromeos-rel;luci.chromium.try:linux_chromium_asan_rel_ng;luci.chromium.try:win7_chromium_rel_ng;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:mac_chromium_rel_ng;luci.chromium.try:linux_chromium_tsan_rel_ng;luci.chromium.try:linux_chromium_rel_ng;

Change-Id: I226fd5b6f298fad648b1d05c8a8e806eac874a46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/182142
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2020-04-23 20:07:09 +00:00
Chris Dalton
ed6e82796b Add a flag for suppressing tessellation shaders
Change-Id: Ic29618c5eac9b3eed92ce0321162745645240d6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285142
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-23 18:35:48 +00:00
Greg Daniel
a5a6b3270d Track d3d resources using sk_sp instead of raw pointers.
Change-Id: Ie153902c1bf5cbbc724691ad91688a0b572174d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284877
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-23 18:25:49 +00:00
Joe Gregorio
b25f30348b Revert "Move SkFrontBufferedStream into Android-only dir"
This reverts commit 513720f28e.

Reason for revert: Breaking the google3 roll:
   https://sponge.corp.google.com/invocation?tab=Build+Log&id=5f96970b-8171-4c2f-abf3-006e11b8fff9

Original change's description:
> Move SkFrontBufferedStream into Android-only dir
> 
> Bug: skia:10154
> 
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
> 
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.
> 
> Change-Id: Ie0f425051ea370aab7861d61150a3d6007214a93
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284721
> Commit-Queue: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Derek Sollenberger <djsollen@google.com>

TBR=djsollen@google.com,scroggo@google.com,reed@google.com

Change-Id: Iaeedaed184cc35f507d5441631ae709e1c5cb1ac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10154
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285100
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2020-04-23 18:23:30 +00:00
Leon Scroggins III
513720f28e Move SkFrontBufferedStream into Android-only dir
Bug: skia:10154

Add client_utils for code that is specifically for a single client.
Move SkFrontBufferedStream into its android/ subdir. Rename the class
to android::skia::FrontBufferedStream. Temporarily leave in
SkFrontBufferedStream until Android updates to the new API.

Add a new optional target for client_utils/android. It is built in dev
builds for testing, and when building for the Android framework.

Change-Id: Ie0f425051ea370aab7861d61150a3d6007214a93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284721
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2020-04-23 17:02:18 +00:00
Mike Klein
71d6466d1e spill oldest reg
This appears to generate at least as fast code as spilling the register
that dies latest, and has two additional advantages:
   - it's _very_ predictable even when reading assembly
   - it's a little quicker to score, not requiring another table lookup

I'm still open to smart spill logic, but if we're going to have a simple
baseline for comparison, I suggest we might use this one.

Change-Id: Ic4775dbf0095b60cfa4b91e33ede352813d34934
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285097
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-23 17:00:49 +00:00
Greg Daniel
fd77673c6d Set pipeline and related state on d3d command list.
Change-Id: I7d9d456b2a281ac7060042026eef44ffe2a635f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284808
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2020-04-23 16:52:29 +00:00
Chris Dalton
04f9cdac66 Move tessellation wedges to cubic the buffer
Converts the "path" vertex buffer to a triangle buffer, and stores
wedges in the cubic buffer instead. This is the more natural location
to store them, and will allow us to add indirect draw support more
cleanly.

Change-Id: I3c3dafce1952dcdb4a93e60c3491be7395195117
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284987
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-04-23 16:35:18 +00:00
Robert Phillips
6276819023 Allow SkThreadPool to be non-borrowing
The GPU thread has privileged access to the GPU so its work can't be easily borrowed.

Change-Id: I1eae4c86ff1c36cc1248f74fc48d76b1c243f0b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284764
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-04-23 16:11:28 +00:00
Chris Dalton
42915c2cee Remove tessellate/GrPathParser
Moves this logic to happen directly ion GrTessellatePathOp instead.

Change-Id: Ia972b8c686bdf8efb8e414fbddc856401fe44920
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284999
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-04-23 16:05:29 +00:00
Chris Dalton
8e2b69440a Update GrTriangulator to count curves
Now it returns the actual curve count instead of an "isLinear" bool.

Change-Id: Iaf2d5c6d96a59972bc7481c17580f2ac5e4b0a25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284979
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-23 16:01:59 +00:00
Weston Tracey
13e3d7e59d [roller] Upgrade to CMake 3.13.5 to unbreak Swiftshader roller.
Change-Id: I2d4ee9ee4838392d9955a196f2513857cea8f9e4
Docs-Preview: https://skia.org/?cl=285096
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285096
Commit-Queue: Weston Tracey <westont@google.com>
Auto-Submit: Weston Tracey <westont@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-04-23 15:54:58 +00:00
Stephen White
b965ff5973 Dawn: fix SamplerDescriptor params.
Remove comparison function from SamplerDescriptor, to avoid new
validation error.

Also remove other values which are at default.

Change-Id: I99631187f02d6b26748a34cf07c0bc672e2f0607
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285014
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-04-23 15:40:09 +00:00
Mike Klein
959986384f general dst() aliasing
Clarity refactors: rename alias_reg() to try_alias() and add in_reg().

Let dst() hint what register to try_alias(), and use this anywhere
aliasing is safe and we have an argument that's either already in a
register or is guaranteed to be pulled back into one, e.g r(x).

Cases like vsqrtps(dst(), any(x)) are somewhat interesting, in that if x
is in a register, it is a good thing to alias, but if it's on the stack,
it's better to just vsqrtps directly into the new register.

Change-Id: I05ecb78f660e9e4ea0df44f03e5de03b85a49cc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285086
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-23 15:36:39 +00:00
Greg Daniel
c31edc0b38 Add GrD3DRootSignature class and support.
This is the last thing needed for creating the pipeline state so this
change also starts creating the pipeline state and fixes errors involving
it.

Change-Id: Ifd1b63016d692d98cfa2a931957e857a5c53bec5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284527
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-04-23 15:34:58 +00:00
Greg Daniel
5fc5c8128c Add GrD3DPipelineStateBuilder class.
This allows us to create the binary shaders for d3d. We generate spirv
from sksl, then use spirv-cross to turn it into hlsl. Then that gets
compiled into binary to be used in the pipeline.

Adds hooks GrD3DOpsRenderPass to start creating the pipeline.

Change-Id: Ie731dd945cdd9a00cebd78c1371a3d9784e4e1a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284526
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-23 15:01:58 +00:00
Mike Klein
1006a91ee8 stack-aware codegen?
It occurs to me that now that we have some values living on the stack,
we might actually want to change our codegen based on what's in
registers or what's not.

E.g.

    a->vaddps(dst(), r(x), any(y))

is great if x is in a register, but it'd have been better as

    a->vaddps(dst(), r(y), any(x))

if x is on the stack.  I've made every symmetric op make this choice.

Change-Id: I1c65940d8e1a53d9dba44dd3a5f3e443517c8e20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284983
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-04-23 14:51:48 +00:00