Commit Graph

45046 Commits

Author SHA1 Message Date
Mike Klein
066c3e5d4d add Release SkVMBlitter bot
Now that assert_true()  leads to different code generation
in Debug and Release builds, we should probably test both.

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER,Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_USE_SKVM_BLITTER
Change-Id: Icd3b67f09d964becb595ce9c95e7ebadae8da9b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253898
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-11-12 19:52:15 +00:00
Robert Phillips
373bda6c39 Remove final usage of GrProgramDesc's header
This demotes GrProgramDesc to just being the program key while promoting GrProgramInfo as the exclusive source for live information about the program.

The GrProgramDesc is still a bit more than a simple program key though bc Vulkan shears off the non-Vulkan-specific portion to cache the SPIRV code.

Bug: skia:9455
Change-Id: Ica11e3df91b8c97794deebff3f5208d16aaf75c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254184
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-12 19:18:35 +00:00
recipe-roller
581108137b Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/89863242a42887291b2ae7210b9831ff465af530 Add fetch configs for devtools-frontend (yangguo@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1180c03c7e5bb225ec12987b57290feab14a96ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254232
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-12 17:50:56 +00:00
Chris Dalton
5e8cdfdd8b Add 'numRasterSamples' and 'isMixedSampled' to GrProgramInfo
Replaces numSamples with numRasterSamples, and adds isMixedSampled.
The sample count that vulkan and metal actually want to know is how
many samples the rasterizer will compute, which may not match the
number of samples in the render target when we have mixed samples.
They will also need to know whether a program is mixed sampled in
order to set up coverage modulation.

Change-Id: I133c11f74b7dc6a7580818ef73d6deec1d201b64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253550
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-11-12 17:14:19 +00:00
Colin Cross
654eb2ad04 [SkQP/Android] Replace -Weverything with -Wextra
-Weverything is not recommended, use -Wextra.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP,Test-Debian9-Clang-NUC7i5BNK-CPU-Emulator-x86-devrel-All-Android_SKQP

Bug: b/143713277
Test: mma
Change-Id: Ibaca86bd52348d544a8109b25ae013001444935d
Reviewd-on: https://android-review.googlesource.com/1163299
Cherry-pick: 29cd4eca88df5fafde51ee9a50e3deb96263fc64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253956
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-12 16:49:29 +00:00
Robert Phillips
a87c52991b Use a priori knowledge about the number of stencil bits in Dawn, Metal and Vulkan backends
The goal here is to centralize more of the program key creation w/in GrProgramInfo. For Dawn,
Metal and Vulkan, afaict, the number of stencil bits is always 8. We can use this information
 to stop passing the GrStencilSettings object around. For GL, the number of stencil bits is
 variable but it is never part of the key.

Bug: skia:9455
Change-Id: I8fd2bea2422c5b9df69fc184d3a82013eef5407e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254177
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 16:48:19 +00:00
Stephen White
7cb52cb5e6 Dawn: implement dynamic primitive processor texture handling.
Move texture setting into its own function.
Put textures in their own bind group.
Bind the dynamic ones per-mesh.
Bind the fixed ones once up front.

Change-Id: Ia93b5a3f0de6a2a3cc26b549fb56ce58215c0b19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253878
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 16:16:50 +00:00
recipe-roller
2785ad7307 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/5803e496033ff9c90e7d3bfdd37f149ed4d730d9 depot_tools: Add ehmaldonado to WATCHLISTS. (ehmaldonado@chromium.org)
  https://crrev.com/79d4f9950680c588d4c3a2cc8595179f3adc90d4 Reland "git-cl: Fix some python3 compatibility errors." (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I810e48ec78676a67caa9865e93aa463ddce0756f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254129
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-12 15:39:29 +00:00
skia-autoroll
c9862b2209 Roll third_party/externals/swiftshader 31edef751a8d..9da287fd0264 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/31edef751a8d..9da287fd0264

git log 31edef751a8d..9da287fd0264 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 timvp@google.com Output Swiftshader version to logcat
2019-11-11 chrisforbes@google.com Allow depth/stencil attachment to be VK_ATTACHMENT_UNUSED in clear
2019-11-11 swiftshader.regress@gmail.com Regres: Update test lists @ 414f99e0
2019-11-11 chrisforbes@google.com Relax descriptor set index assert at descriptor point of definition
2019-11-11 sugoi@google.com Avoid sync issues by removing global android swapchain map
2019-11-11 bclayton@google.com Regres: Check out the change before attempting to read files from it.

Created with:
  gclient setdep -r third_party/externals/swiftshader@9da287fd0264

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 halcanary@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.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=halcanary@google.com
Change-Id: Ic144c6bb92d9b45059fce780fefc8318faed788d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254121
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-12 15:01:23 +00:00
Jim Van Verth
9187e49ed1 Detect whether trying to blit a Metal swapchain texture, and fail if so.
Metal swapchain textures (equivalent to GL's FBO 0) can't be used with
MTLBlitCommandEncoder. For copySurface we need to detect this and fail.
Future changes will handle GrSurfaceProxy.

Change-Id: I9235d91cf31e96260c8d1da5938f5441d2e49d27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252045
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 14:56:28 +00:00
Stephen White
3a62ed4ff1 Dawn: fix bug in stencil handling.
Change-Id: Iacfe175d0c6e3d90dae1990b57de2c94dada3e77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253959
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-11-12 14:56:18 +00:00
Nigel Tao
5b2714631f Free SkWuffsCodec frame-count decoder earlier
This might help peak memory use.

Bug: skia:8235
Change-Id: Ib8316211ff6bbe7d2cc32e759d3e0d20e2b56348
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254156
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2019-11-12 14:51:23 +00:00
Ben Wagner
2e4a8eb436 Track and force opsz axis on Mac.
If the opsz axis is set, ensure that it stays that way. Currently this
does not pin the opsz axis for all fonts, but allows for that in the
future.

Bug: skia:9533

Change-Id: Iac786f9f91bf6d53d92847a91443b876713f9c2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253738
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-11-12 14:51:13 +00:00
Herb Derby
4bb189fcee Make metrics const on SkStrike
Change-Id: I13373d7d4f12fec977ad9f77e1b3a9ead91c321d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254076
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-11-12 14:46:18 +00:00
recipe-roller
d1fba071d5 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/7e55700844c9f9460bae817f3f7a4befec8a5959 fetch: Fix GCLIENT_PY3 on Windows (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7e195fe2efd815425c2642c6e0a4cb4e2fbb26c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253992
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-12 14:46:09 +00:00
skia-autoroll
d860a78fd6 Roll third_party/externals/angle2 012d15196023..e33c1582b4bc (6 commits)
012d151960..e33c1582b4

git log 012d15196023..e33c1582b4bc --date=short --no-merges --format='%ad %ae %s'
2019-11-11 shrekshao@google.com Fix EXT_texture_norm16
2019-11-11 jmadill@chromium.org Windows: Use Job handle in LaunchProcess.
2019-11-11 jmadill@chromium.org Minor tweaks to SampleApplication.
2019-11-11 lehoangq@gmail.com Add Metal progress to README
2019-11-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader d9ed1c2732ba..31edef751a8d (3 commits)
2019-11-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 041f0a02493d..3e4abc9ac382 (2 commits)

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

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 halcanary@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=halcanary@google.com
Change-Id: Ic022e334c710aac4283ec8703557cf9fa637bde6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254120
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-12 14:41:14 +00:00
Herb Derby
8a1a3e6489 WS: SkStrike
Change-Id: I2419ebbd53e50d39a1469d97f1b7736b0db73da6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254096
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-11-12 14:41:04 +00:00
recipe-roller
ad21d47cfa Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/5ef16a371974e1ffdd707e864c7229bd09dbf8c3 git-cl: Fix error message when -B is not specified. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I3f562e0208fbb5667348aa2899821d0829d93e58
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253997
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-11 21:45:15 +00:00
Brian Salomon
c75bc031ef Clamp RGB outputs of GrYUVtoRGBEffect.
The matrices we're using can produce very slightly out of range color
channels. This gives surprising results when in shader blending is used
for color burn and color dodge. After this change we clamp the RGB
values to 0..1 before applying premul.

Adds a GM modeled on a blink layout test that shows the problem using
SkImageMakeFromYUVAPixmaps.


Bug: skia:9619


Change-Id: I446d39763a7f5a2f7c5f61d94d163927d851baa3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253879
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-11 20:04:15 +00:00
Herb Derby
aa3f2623ea Remove belongsToCache from SkStrike
Change-Id: I0fd6cf940f2df97f4f6b952681109f58dc9ad553
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253777
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-11-11 19:46:05 +00:00
Julia Lavrova
b00ccf52de Correct cluster index
Change-Id: Ic657b3fff318e1e76efa4ab7533bc2a833d17802
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253957
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2019-11-11 19:26:56 +00:00
skia-autoroll
4a09815d8e Roll skia/third_party/skcms e51ca8b81987..0e5f77218153 (1 commits)
https://skia.googlesource.com/skcms.git/+log/e51ca8b81987..0e5f77218153

git log e51ca8b81987..0e5f77218153 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 brianosman@google.com Move ICCTag struct and GetTag functions to skcms_internal.h

Created with:
  gclient setdep -r skia/third_party/skcms@0e5f77218153

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC halcanary@google.com,mtklein@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=luci.chromium.try:linux-blink-rel

Bug: None
Change-Id: If85f40fa8110589cc76890bb477ac53375d21b75
TBR=halcanary@google.com,mtklein@google.com
TBR=halcanary@google.com,mtklein@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253908
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-11 17:59:31 +00:00
Sean Gilhuly
6c536a5b44 Roll Dawn, fix build issues in Skia Dawn
There were some recent renamings in Skia and in the WGPU API. Roll
Dawn to the latest patch, and update Skia Dawn to match these new
names.

Change-Id: I0b73a514553664ddea7181b9c6174ab6231ea4f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253731
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2019-11-11 17:58:21 +00:00
skia-autoroll
2565a6db53 Roll skia/third_party/skcms b118cb0ef477..e51ca8b81987 (1 commits)
https://skia.googlesource.com/skcms.git/+log/b118cb0ef477..e51ca8b81987

git log b118cb0ef477..e51ca8b81987 --date=short --no-merges --format='%ad %ae %s'
2019-11-11 brianosman@google.com Add CHAD and WTPT functions to public API

Created with:
  gclient setdep -r skia/third_party/skcms@e51ca8b81987

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC halcanary@google.com,mtklein@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=luci.chromium.try:linux-blink-rel

Bug: None
Change-Id: I68b587e2ecb88a60c3eb68b0dd8231d262b7a263
TBR=halcanary@google.com,mtklein@google.com
TBR=halcanary@google.com,mtklein@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253902
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-11 17:23:01 +00:00
Robert Phillips
323471ec79 Remove GrProgramDesc's need for the GrGpu
Although not strictly necessary, being able to compute the program key w/o needing access to the Gpu will give us more flexibility.

Bug: skia:9455
Change-Id: I0cd76d79a3008b69be18636be370e7aaa531bc65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247686
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-11 17:17:01 +00:00
Mike Klein
ee5864a170 add int3, vptest, jc
Will use these to implement assert_true on x86.

Change-Id: I9d2595a35518b6971dd8e418b583febd3960c7f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253896
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-11-11 16:33:01 +00:00
skia-autoroll
eab1e281fa Roll third_party/externals/angle2 652dbfc63e70..012d15196023 (9 commits)
652dbfc63e..012d151960

git log 652dbfc63e70..012d15196023 --date=short --no-merges --format='%ad %ae %s'
2019-11-09 jdarpinian@chromium.org Stop using __has_include<Cocoa/Cocoa.h>
2019-11-08 jmadill@chromium.org Capture/Replay: Implement more state for mid-execution replay.
2019-11-08 lehoangq@gmail.com Metal: multiple bug fixes
2019-11-08 lehoangq@gmail.com Always use MTLPixelFormatBGRA8Unorm for SurfaceMtl.
2019-11-08 jonahr@google.com Reset texture swizzle state to default after LUMA workaround
2019-11-08 enga@chromium.org Only enable addAndTrueToLoopCondition feature on Mac Intel
2019-11-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src e471df3c9154..f34cdc70ca1b (2 commits)
2019-11-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 27a3d31d7a9d..d9ed1c2732ba (1 commits)
2019-11-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src dc59b4b075e9..041f0a02493d (4 commits)

Created with:
  gclient setdep -r third_party/externals/angle2@012d15196023

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 halcanary@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=halcanary@google.com
Change-Id: I11d6ce23fa6d71f8a5f13ac34777ed5f4e7540fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253836
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-11 15:22:18 +00:00
skia-recreate-skps
11ac816acf Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I6bdffe1001d3422e1664009d10c1153bdcda0f7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253866
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-11-11 15:17:58 +00:00
Mike Klein
1360117174 add assert_true()
This is an assert that is active in debug mode.  For the moment it only
works in the interpreter, but I plan to follow up with JIT code too.

assert_true() is a data sink like a store() as far as lifetime goes,
though we take care to allow it to be hoisted if its inputs are.  An
assert_true's existence will keep all its inputs alive, and in release
builds where we skip the instruction, those inputs will all drop away
automatically.

Tested locally by forcing the interpreter.  It shouldn't be long before
I have at least x86 JIT asserts working too.

Change-Id: I7aba40d040436a57a6b930790f7b8962bafb1a8c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253756
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-11 15:12:18 +00:00
Brian Salomon
8283fa4066 C++17
With this change C++17 language features can be used in code that does
not need to be be included in client code (not in public headers or
the files they transitively include).

We haven't investigated the c++17ness of the standard libraries in use
by clients so proceed with caution on library features.

One thing discovered along the way: throw() in C++17 is now equivalent
to noexcept(true). Moreover, the noexcept-ness of a function is part of
its type in C++17. This means that if a header declares a function with
throw() and it is included in a cpp compiled with C++17 file it will have
a different type than if it is compiled in a file compiled with C++14 (or
earlier) and you can get linker errors. Here is a change we had to make
as a result of this:

https://skia.googlesource.com/skia.git/+/4d0fe38f29388ef0aa6893d1d4fc237e758dd11f%5E%21/#F0

Change-Id: I996f2237fdd6b49e2e4cc8d3ff6db9dd536eafd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235022
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-11-11 14:49:55 +00:00
Mike Klein
78441455a3 don't allocate an interpreter register for stores
Instructions only need a register if they've got an output.
This more closely mirrors what the JIT does.

Change-Id: I9cddba124a90c3afa698d82b1bb89808a7abd3c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253762
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-11 14:39:45 +00:00
John Rosasco
1edd468de3 Staging for Chromium to accept Skia-GL changes to come.
Change-Id: I406cc4f284ce2cf83f70d88ebd9bac9c10c148a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253737
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-11-11 14:17:15 +00:00
skia-autoroll
3de645cbca Roll third_party/externals/swiftshader d9ed1c2732ba..31edef751a8d (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/d9ed1c2732ba..31edef751a8d

git log d9ed1c2732ba..31edef751a8d --date=short --no-merges --format='%ad %ae %s'
2019-11-09 chrisforbes@google.com Update deqp to vulkan-cts-1.1.6.1
2019-11-08 chrisforbes@google.com Fix PointCoord builtin
2019-11-08 bclayton@google.com Kokoro: Allow 'Fixes:' in bug check

Created with:
  gclient setdep -r third_party/externals/swiftshader@31edef751a8d

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 halcanary@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.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=halcanary@google.com
Change-Id: Ia990eca315b394e52228ec9787426321eea4a6a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253837
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-11 13:38:18 +00:00
recipe-roller
0fd4f01b9b Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/2102e819b3d68cf17a7dc72bc2b45b7431292215 Reland "Add swarming.TaskRequest.from_jsonish()" (garymm@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib31188733ae2e585a66a8a6110f9678ca6592ab9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253741
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-08 23:54:09 +00:00
Mike Klein
4135cf0b57 use round() instead of trunc() to f32->unorm
This does open us up to a little bit of possible inconsistency of
rounding when right on a x.5 (sometimes we'll +0.5 and trunc, sometimes
round to nearest, sometimes round according to the default mode which is
usually round to nearest) but I think that inconsistency may be worth
the free register not needing a splat(0.5f) buys us.

A few invisible diffs.

Change-Id: I9af092c937ccf7c5891c2ab3cb298d217e4a9e9f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253725
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-11-08 21:28:07 +00:00
Julia Lavrova
b30d4812c7 Yet another build fix
Change-Id: I606689930c9d07dbba3e743d1137e7c3c54790d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253736
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-11-08 21:22:37 +00:00
Mike Klein
6e4aad91c3 rename to_i32 -> trunc, and add round
This plumbs through round but doesn't use it.  I want that change to be
its own CL.  It's nice to have assembler support and the name changes
even if I revert using round.

Change-Id: I6d67ec5c63546069eb7cc1c91599b599bafcda66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253724
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-08 21:00:51 +00:00
Mike Klein
049b58f97a avoid redundant clamps
If we clamp the shader color to gamut, we won't need to clamp again when
storing to the destination... blending and coverage will keep the color
in gamut.

Change-Id: I9a4eb609de58fc0cb6295df0ad1c4cef8cd7e307
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253722
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-08 20:51:37 +00:00
Mike Klein
b97a919418 don't clamp alpha, it's already [0,1]
No diffs.

Change-Id: I13a848955605a16aa229b98a14dc0e1930ba28c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253721
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-08 20:40:47 +00:00
Mike Klein
a53e47fe94 native f32 min/max
No diffs.

Change-Id: Ia0b35c2787e27d74763f21b81072affa6caf1e5a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253720
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-11-08 20:21:38 +00:00
recipe-roller
a461a8ee39 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/0e9afd2a56f279584af49aca1c4b72485df49a77 Change "CPU time" to "elapsed time" (brucedawson@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I3091a19ff5e94fda23ecdfac2dfc0ba8b72f1c0f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253713
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-08 19:42:46 +00:00
Mike Klein
b9f208817c convert SkVMBlitter over to floats
As we've learned there's not much advantage to working directly in i32
ops over f32... it's the same size, kind of a wash speed-wise, and f32
supports all operations we want where i32 supports only a subset.  If we
really want to go fast, we need to focus on i16 operations, which are
both significantly faster and operate on twice as much data at a time.

(This is the same split as SkRasterPipeline, highp f32 and lowp i16.)

For now port everything to f32, with i16 to follow, perhaps much later.

There's a little here we could spin off to land first (uniformF, better
unpremul) but I think it might be easiest to land all at once.

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER
Change-Id: I6fa0fd2031a0de18456abf529cc5b0d8137ecbe0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253704
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-11-08 19:29:06 +00:00
Chris Dalton
f00b95b7f3 Always attach stencil buffers with exact sample count matches
After this CL we will always attach a stencil buffer for rendering
that matches the stencil sample count of the proxy. We will even
downgrade a stencil attachment to one with less samples if necessary.
(In the past we would only guarantee that the attached stencil buffer
had a sample count >= to that of the proxy.)

Change-Id: I358e13ffdf286695257b1b5b672a84d16c417b80
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253547
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-11-08 19:20:36 +00:00
recipe-roller
ac3cd147e4 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/8eb3985beff2b4d0cf0bae61a7a3dab29271849f [recipe_modules/cipd] Expose default test data input for cipd.search. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I5a0866aacea7cf069210b4d020f620f8faec5d95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253700
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-08 19:04:46 +00:00
Julia Lavrova
f0ade8a687 Fixing no icu situation
Change-Id: I9763a0a2a0ee231500b27c11e17e0f5f4df44f29
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253683
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-11-08 18:59:03 +00:00
Mike Reed
052a05ac3a add flatten test to SkFont
Change-Id: I7e96e826fad9aa204c963ae671cce668a676378f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253684
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2019-11-08 18:49:15 +00:00
Chris Dalton
0b68ddacad Defer stencil attachment until opsTask execution
Change-Id: I34cc35d16966d35e26561c40a0300112b2da2fa1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253546
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-08 18:36:35 +00:00
recipe-roller
c88d1774ed Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/d5c0b56e84e0c6f416439ce56c60d617897610fe Use git fetch --no-tags to fetch commits to apply via cherry-pick. (danakj@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7a80629ff3742a77259f8e4304f2b3119be09414
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253681
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-11-08 18:07:05 +00:00
Mike Klein
b2ab7d15d3 add SkColorTypeIsNormalized()
This centralizes the logic for whether a color type is normalized.

The change in SkRasterPipelineBlitter is minor, only now properly
treating kR16G16_float_SkColorType as unnormalized.

The change in SkColorSpaceXformSteps is more extreme given the way
it had been written, with all the newer color types now correct.

I think I'm making the right call on kA16_float_SkColorType?

Are there equivalent sites to update in Ganesh?

Change-Id: I32a40b31b86c5fde0dea2528122a4deda91c5545
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253668
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-08 17:51:45 +00:00
Julia Lavrova
2e30fde046 Font resolution: all unit tests working
Change-Id: Ie6ee30901d599ceefa42651add79bb0288c54c48
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249004
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2019-11-08 17:24:14 +00:00