Commit Graph

47480 Commits

Author SHA1 Message Date
Jim Van Verth
8e75147214 Allow GrD3DTextureResourceInfo to include declared D3D12 types.
Changes the GrD3DTextureResourceInfo member in GrD3DBackendSurfaceInfo
to be a unique_ptr<> so we can use forward refs.

This will allow us to use a shared_ptr variant to manage the
ID3D12Resource on GrD3DResourceResourceInfo, without polluting
client files with Windows definitions. Clients can use GrD3DTypes.h
to get the full declarations, GrD3DTypesMinimal.h for only the forward
references.

Bug: skia:9935
Change-Id: I075a3fc608bf6767dae202efd8cbf06cdd4a9457
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280602
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-31 19:06:09 +00:00
Mike Klein
3b6a0ab182 small int->Val hunt
I tried making Val a strong enum class typedef
and found that to make code more awkward than it helped.

Here are a few ints I noticed that are really Vals,
i.e. an Instruction index in a program.

Change-Id: I0bcfe26a9ade8053a691ed30af72f8e510a92759
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280636
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-31 19:02:31 +00:00
Mike Klein
8b99b9e1d1 flatten skvm type nesting
I don't think nesting types in Builder does
anything but make us type Builder:: a lot.

Change-Id: Iaa66a7b5d71cb337f2774688f316e8aa196da55c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280572
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-31 18:32:57 +00:00
Herb Derby
adf9d21704 Update header list for spirv-tools
Change-Id: I92fd8dbdc5fc1f2a3e52c1fcda7b5740d8978219
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280608
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Sean Gilhuly <sgilhuly@chromium.org>
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-03-31 18:20:27 +00:00
Brian Salomon
b16f30bb92 Revert "Revert "Assert that all GrCaps colortype/format -> swizzle queries are legal.""
This reverts commit ef4d3794a2.

Fix for finding cached textures that were made with fallback color types.

Change-Id: Ic5b67801f9275f6a1cbe8373b8cce382f3cedfe7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280607
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-31 18:06:09 +00:00
Herb Derby
f20400e2a1 Introduce Liveness and Uses into existing scheduler
Liveness tracks all the live instructions in the instruction stream.
Uses maps this value to instructions that use it.

Uses is overkill for the current schedule, but will be needed for
spilling.

Change-Id: Id20b7b7a90901e156d323bb612c5908f91405967
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277744
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-31 17:53:07 +00:00
Greg Daniel
0a335515bf Add rasterizer and blend state to d3d pipeline state.
Change-Id: Iad34a99622cc1f356827377de74b61f339968d61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280408
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2020-03-31 16:30:47 +00:00
Brian Osman
8cbedf9855 Improve SkVerticesPriv ergonomics
Rather than two separate (partially overlapping) ways of accessing the
private portions of SkVertices, use a single privileged helper class
(similar to GrContextPriv).

Change-Id: I76b14b63088658ed8726719cce126577e5a52078
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280601
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-31 16:10:07 +00:00
Robert Phillips
5fa68b4399 Reduce GrGlyph's functionality
The idea here is to move the mapping of GrGlyph to atlas location into the GrAtlasManager.

The only thing left in the GrGlyph will be the PackedGlyphID and the width/height.

Bug: 1056730
Change-Id: I6f85780eddbab701100599198b70edfed0c434dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279915
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-31 15:37:57 +00:00
Brian Salomon
469046c096 Revert "Revert "Remove GrCaps::isFormatTexturableAndUploadable""
This reverts commit 8176508cc6.

Replaces incorrect check for Read pixels support with Write check.

Change-Id: Idc80aaaa41ba35014339df450bb8b583fb6dab51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280399
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-31 13:41:27 +00:00
Mike Reed
65d3ad9539 remove unused bitmap method
Change-Id: Iac50df8158f9cfd4adc751409e591d368c26f5a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280596
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-31 12:43:27 +00:00
Florin Malita
01f2ce0ba4 [skottie] Use a documenting alias for Animator::seek() return type
Change-Id: I46aeddf1e0739cfac9967e29192d542d6222c6ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280343
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-31 10:19:27 +00:00
skia-autoroll
63a4edd314 Roll third_party/externals/angle2 1b2dd6f92a6b..05fa1a99914a (10 commits)
1b2dd6f92a..05fa1a9991

git log 1b2dd6f92a6b..05fa1a99914a --date=short --first-parent --format='%ad %ae %s'
2020-03-31 ynovikov@chromium.org Skip test flaky on SwANGLE bots
2020-03-30 geofflang@chromium.org Update the active texture cache before changing the texture binding.
2020-03-30 sugoi@google.com Add support for NV_read_depth, NV_read_stencil and NV_depth_buffer_float2 extensions
2020-03-30 cwallez@chromium.org Revert "Enable blob cache when debugging"
2020-03-30 cnorthrop@google.com Vulkan: Expose extension for ETC1 usage with subimage updates
2020-03-30 courtneygo@google.com Enable blob cache when debugging
2020-03-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 55f01953d6e9..9a0f2d99fd5d (4 commits)
2020-03-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 02e15b249b12..1c29477aa06e (19 commits)
2020-03-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src cc481ef27631..b0c27ce32864 (2 commits)
2020-03-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 99508c1ce389..344bd0889ac9 (4 commits)

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

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 michaelludwig@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-Debian9-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: michaelludwig@google.com
Change-Id: I8dfd9228f2d593ad6b165dec65e9610ed1c95b76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280540
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-31 04:48:25 +00:00
skia-autoroll
732f84d3e2 Roll third_party/externals/swiftshader 1c29477aa06e..5cf1e9a31c90 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/1c29477aa06e..5cf1e9a31c90

git log 1c29477aa06e..5cf1e9a31c90 --date=short --first-parent --format='%ad %ae %s'
2020-03-30 capn@google.com Fix implicit narrowing cast
2020-03-30 capn@google.com Eliminate the legacy PowerVR SDK
2020-03-30 capn@google.com Integrate PowerVR OpenGL ES samples
2020-03-30 capn@google.com Fix completeness test of OpenGL ES immutable textures
2020-03-30 cwallez@google.com Revert "MetalSurface: set layer.device to a ref of the system default device."
2020-03-30 cwallez@cwallez-macbookpro3.roam.corp.google.com MetalSurface: set layer.device to a ref of the system default device.

Created with:
  gclient setdep -r third_party/externals/swiftshader@5cf1e9a31c90

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 michaelludwig@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-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: michaelludwig@google.com
Change-Id: I3dc5c3beb4de3846ac8cdb33bf8e37bbc6bb07af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280538
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-31 04:38:35 +00:00
skia-autoroll
25a88e75ea Roll ../src af1924a67aab..f43e7c4d79ad (411 commits)
af1924a67a..f43e7c4d79


Created with:
  gclient setdep -r ../src@f43e7c4d79

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 michaelludwig@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: michaelludwig@google.com
Change-Id: Ide4b70f3a79eb69931b28a268be4ed6977a25f85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280539
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-31 04:36:25 +00:00
Ben Wagner
14ba58ff01 Add GrTAllocator::push_back(T&&)
Allow push_back to take an rvalue to move into the allocator, which has
the nice side effect of making the test for it a bit better.

Change-Id: I7e313cf75c1ad65fbf765b10c4717672063b5570
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280412
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-30 22:37:25 +00:00
Michael Ludwig
dd205451a1 Declare SkString in GrContext
Fix flutter/mac bot builds.

Change-Id: I522f3ce52c01900b3f4e0007ace84975796c0dd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280411
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-03-30 21:49:34 +00:00
Mike Reed
853c15cdaa remove unused SkLightingShader
Change-Id: I60a3569b47b599b710c0f3a9522241748f15360d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280409
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-30 20:55:34 +00:00
Brian Osman
01e6d17fe8 Stop including SkCanvas.h from GrTypesPriv.h
It was too easy to get into circular include chains. Added static
asserts to ensure we keep our quad AA flags in sync. Also, IWYU.

Change-Id: I01aefa264aa56420ab5a46a8ecd9e63c021c79ab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280405
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-03-30 20:43:34 +00:00
Jim Van Verth
68ccec5880 Fix d3d debug clang build
Bug: skia:9935
Change-Id: Ic5f745f404373fa80303c95004fe4744c6bf292b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280407
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-03-30 20:41:34 +00:00
Greg Daniel
6e2af5c326 Remove alpha versions of constant blend coeffs.
Change-Id: Iccff036e59f76f7d9651d7fd6ec005d329e3b593
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280349
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2020-03-30 19:42:14 +00:00
Brian Salomon
ef4d3794a2 Revert "Assert that all GrCaps colortype/format -> swizzle queries are legal."
This reverts commit aa8bf26dc2.

Reason for revert: d3d9 failures

Original change's description:
> Assert that all GrCaps colortype/format -> swizzle queries are legal.
> 
> Otherwise they silently fall back to "rgba".
> 
> Change-Id: I9a4dcfc99ae52f156b6dfc367665eb0129b6b03d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280336
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I05940da3ae6d93e7a0b44790b8051ce3221e62d7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280403
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-30 19:41:13 +00:00
Jim Van Verth
aa90dada80 Fill in some D3D texture creation routines.
Adds some writepixels caps methods even though it's not implemented,
just to keep dm from crashing in unexpected places.

Bug: skia:9935
Change-Id: Ia76e5abd8a6c72987658af4f8369efe69f6b685c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279576
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-30 19:32:34 +00:00
Brian Salomon
aa8bf26dc2 Assert that all GrCaps colortype/format -> swizzle queries are legal.
Otherwise they silently fall back to "rgba".

Change-Id: I9a4dcfc99ae52f156b6dfc367665eb0129b6b03d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280336
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-30 19:11:44 +00:00
Sean Gilhuly
695f57da6c Roll Dawn and add dependencies
Add Dawn's dependencies shaderc and glslang, and roll SPIRV. Update the
BUILD.gn files to match upstream changes.

Bug: skia:9939, chromium:1064563
Change-Id: Ie9720806efe823312da10f7911688f12cad0713e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278770
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
2020-03-30 18:52:06 +00:00
Brian Salomon
8176508cc6 Revert "Remove GrCaps::isFormatTexturableAndUploadable"
This reverts commit c18dad25e4.

Reason for revert: Revealed thread safety issue in GrGLCaps, picked up by viz_unittests/TSAN.

Original change's description:
> Remove GrCaps::isFormatTexturableAndUploadable
> 
> Instead separately check texturability and uploadability using existing
> queries.
> 
> Also remove unused renderable param from onGetDefaultBackendFormat()
> 
> Change-Id: I8751e6d62263ddabd713c850beb788620a78bf10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279996
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I8cd90fb35091009e51f283db1ee55df6088a8fe1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280398
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-30 18:16:34 +00:00
Chris Dalton
80f865fa6d Use GL_ANGLE_base_vertex_base_instance
Adds the ANGLE extension to our list of options for
glDraw*BaseInstance.

Removes glDrawElementsInstancedBaseInstance since this method is not
supported by the ANGLE extension.

Change-Id: Ifd25324feeaad55a4d141b5064bcd8e059948ef7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280388
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-30 17:59:05 +00:00
Mike Klein
8ded7ad1e7 remove Builder inheritance
With all those new toys it's just as clear to use skvm::Builder
without inheriting from it.

Change-Id: I105973db465d889ded528f476a479232f6e70391
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280335
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-30 16:18:02 +00:00
Mike Klein
8079eb633c fix unpremul()
Just a typo.  Rewritten to make premul vs. unpremul stand out more.

Change-Id: I6db425a97a1333a6c5d2e867115c7f77f73d0482
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280378
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-30 16:16:42 +00:00
Florin Malita
0147de41c4 [skottie] Lazy adapter sync
Expand the core animator logic to return whether the computed value is
changing on each tick.  Also rename tick/onTick -> seek/onSeek to better
reflect Skottie semantics.

This information allows us to skip adapter updates for static/hold
animation segments.

This effectively hoists some of the scene graph lazy-update logic to the
Skottie model level, and culls unneeded conversions (e.g. we were
converting ShapeValue -> SkPath on every tick, even when the shape was
not changing).

TBR=
Change-Id: I1ea4e19ae8f993d659826269de6b0465fec70189
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279816
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-03-30 16:06:02 +00:00
Brian Salomon
34ed73b038 Make memcmps in GrResourceKey::op== safe.
Previously the size of one of the keys was passed to memcmp.
It was incorrectly assumed that if the size mismatched in the
first word compared then the rest of the keys would not be
accessed.

Change-Id: I9850949c6b51d0d2fb6de53ed8d4dee5192826d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280356
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-03-30 16:04:12 +00:00
Brian Osman
713ac8a9fc Remove some legacy GN defines for Flutter
Flutter's code has been updated so these can all be removed

Change-Id: Id3b778158fce175efd23b80a1d1245106c848501
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279840
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-03-30 15:36:12 +00:00
Mike Klein
34b93045c6 don't run clang-tidy on third_party
This doesn't usually come up because third_party/ is mostly
only C code and clang-tidy only runs on C++ code, but it's
starting to matter as we roll in Dawn.

Change-Id: I52c64cd55281989dad837d6573c38e8b380861a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280329
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-30 15:26:32 +00:00
Mike Klein
45c7e70b20 way more p-> inference
We can infer the builder on any method that's got at least one I32/F32
argument.  That's basically everything but splat, uniform??, and load??.

This will let us write things like

   sqrt(x*x + y*y)

instead of

   p->sqrt(x*x + y*y)

Previously we had to inherit from skvm::Builder for that...
I think we can remove all that inheritance once I fill all this out.

To make the impl. terser, give I32/F32 an operator-> for their Builder.

Open question about whether to add operator>>?  operator<< is
unambiguous, but operator>> on I32 is probably just going to be
more confusing than sticking with shr and sra.

Change-Id: Id7f1334f87e2354c8733a93d510569df38ae861e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280318
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-30 15:08:42 +00:00
Brian Salomon
c18dad25e4 Remove GrCaps::isFormatTexturableAndUploadable
Instead separately check texturability and uploadability using existing
queries.

Also remove unused renderable param from onGetDefaultBackendFormat()

Change-Id: I8751e6d62263ddabd713c850beb788620a78bf10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279996
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-30 14:20:40 +00:00
Mike Klein
d0b568b529 remove negate()
negate(x) -> -x

Change-Id: I920b1abe473325309562ca29be6384bedd7e6a42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280317
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-30 13:54:10 +00:00
Mike Klein
47737a1233 remove inv()
inv(x) -> 1-x

Change-Id: If64591f4f3ce15eb487222f052fc4bd1bac97977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280316
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-30 13:52:30 +00:00
Mike Klein
46de36f993 simpler immediates
That last patch was too ambitious: the existing logic is error-prone,
and to fix it would require implementing a whole side algebra for
immediates.  I don't really want to have a second side system, even if
we work out how to make it correct.

If instead we just require a few more splats, we can come up with a
simple sane system that at least can't blow up on you unexpectedly.

 - Strip F32/I32 back down to a Builder pointer and Val ID,
   but create F32a/I32a for use as method arguments that
   can auto-construct from an immediate or the normal type.

 - Add method overloads using F32a/I32a.

 - Add operators using F32a/I32a and int/float primitive types,
   guaranteeing there's at least one F32/I32 to get a Builder from.

 - To keep things simple, drop all the operator forward declarations.
   They're only needed for inline methods on Builder, and there
   are few enough of them that calling methods is fine.

 - TODO: some of the inline helpers become simple enough
   when written with operators they might not need to exist,
   e.g.  inv(x) -> (1-x).

Change-Id: I193b0e5bca5617ab564c769b916473434ad6d56d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280276
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-30 13:47:14 +00:00
skia-autoroll
e9bc857b39 Roll third_party/externals/angle2 f2bee3043a5e..1b2dd6f92a6b (18 commits)
f2bee3043a..1b2dd6f92a

git log f2bee3043a5e..1b2dd6f92a6b --date=short --first-parent --format='%ad %ae %s'
2020-03-28 timvp@google.com Vulkan: Refactor varying validation for separable programs
2020-03-28 timvp@google.com Vulkan: Move ProgramInfo/ShaderInfo to ProgramExecutableVk
2020-03-28 timvp@google.com Vulkan: Create TransformSpirvCode()
2020-03-28 timvp@google.com Vulkan: Make mVariableInfoMap a gl::ShaderMap<>
2020-03-28 timvp@google.com Vulkan: Only calculate variable locations once
2020-03-28 timvp@google.com Create the ProgramExecutableVk Class
2020-03-28 ynovikov@chromium.org Skip KHR-GLES31.core.shader_image_load_store.advanced-allMips-* tests
2020-03-27 jmadill@chromium.org Vulkan: Mask out Depth/Stencil RTs in feedback loops.
2020-03-27 timvp@google.com Vulkan: Move cached samplers/images and has*() to ProgramExecutable
2020-03-27 jmadill@chromium.org Fix feedback loop clearing detection.
2020-03-27 jmadill@chromium.org Update OWNERS information.
2020-03-27 jmadill@chromium.org Support masking out DS feedback loops in RenderTargetCache.
2020-03-27 geofflang@chromium.org D3D11: Serialize and deserialze mImage2DUniforms.
2020-03-27 timvp@google.com Create the ProgramExecutable Class
2020-03-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src acbf316040c3..cc481ef27631 (1 commits)
2020-03-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 2df8c71258de..99508c1ce389 (1 commits)
2020-03-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 443c2caa1714..55f01953d6e9 (1 commits)
2020-03-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 77090261dabc..02e15b249b12 (8 commits)

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

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 michaelludwig@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-Debian9-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: michaelludwig@google.com
Change-Id: I5335357194cb04ab024cf3d422b137196dcb6630
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280298
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-30 04:54:59 +00:00
skia-autoroll
de455de4df Roll ../src 2cb42d2f8146..af1924a67aab (483 commits)
2cb42d2f81..af1924a67a


Created with:
  gclient setdep -r ../src@af1924a67a

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I8159db5dfb40d7b1fc5a9e8dd7aacbfc4928b9a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280296
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-30 04:53:29 +00:00
skia-autoroll
2af68a4c4d Roll third_party/externals/swiftshader 3ca41df3d3ba..1c29477aa06e (9 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/3ca41df3d3ba..1c29477aa06e

git log 3ca41df3d3ba..1c29477aa06e --date=short --first-parent --format='%ad %ae %s'
2020-03-29 capn@google.com Don't expose the sampling routine cache's mutex
2020-03-29 capn@google.com Create PowerVR targets if submodule already exists
2020-03-28 bclayton@google.com Regres: Generate coverage data on nightly runs
2020-03-28 bclayton@google.com Subzero Coroutines: Use ultra-low-level marl APIs
2020-03-28 bclayton@google.com Subzero: Ensure coroutines are same-thread.
2020-03-28 capn@google.com Rename constant cache to snapshot cache
2020-03-28 capn@google.com Add sampling routine documentation
2020-03-27 sugoi@google.com Fix Android.bp following the SPIRV-Tools update
2020-03-27 bclayton@google.com Regres: Switch to building with LLVM 10

Created with:
  gclient setdep -r third_party/externals/swiftshader@1c29477aa06e

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 michaelludwig@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-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: michaelludwig@google.com
Change-Id: I6e6bc1e73065714cf4da98cea3c88aeb794fa318
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280297
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-30 04:43:29 +00:00
skia-recreate-skps
3aee4845b5 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I1fb2acafb05c5072ec0c2500deb6695449829488
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280218
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-03-29 08:41:05 +00:00
skia-recreate-skps
611bbf4c16 Update Go Deps
Change-Id: I9775b892e1cd24994d00e82800ec096b82aba789
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280192
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-03-29 05:35:25 +00:00
Mike Klein
5b11a58c62 skvm::Builder friendliness improvements
It would be nice if we could use infix operators, and it would also be
nice if we could use literals instead of so many splats.

To make infix operators possible, we need to have each I32 / F32 struct
track its origin Builder, so that we know where to build the
corresponding operation when we encounter an infix operator.  E.g.

    struct F32 {
       Val      id      = NA;
       Builder* builder = ...;
    };

    ...

    static inline F32 operator*(F32 x, F32 y) {
        SkASSERT(x.builder == y.builder);
        return x.builder->mul(x,y);
    }

OK, that's great!  But then once we start churning out overrides to work
with literals, things get quite verbose, and it becomes easy to lose
track of which methods can take literals and which can't.  It'd be nice
to have some sort of way to automatically handle literals.

For that we notice that the F32 struct has 4 dead bytes anyway between
the Val and the Builder*... perfect space for a literal.

   struct F32 {
       Val      id      = NA;
       float    imm     = 0.0f;
       Builder* builder = nulltpr;
   };

Now we can operate under the convention that when builder == nullptr,
the F32 represents the value in `imm`, and when builder is set it is
the result of the instruction at `id`.

Then inside skvm::Builder, we'll look for F32's that are in that sort
of Builder-less imm state and resolve them to splats.  That's what id()
does, returning that `id` val.  I've renamed the field in the struct to
make sure I caught all the old uses of `.id`.

From there we make I32 and F32 much more locked down types, with three
public constructors: NA/false, immediates, and instruction values.

There's lots and lots and lots and lots and lots left to do both
removing splat()s and especially converting to infix.  I just tried
to get enough in here that proves it works.

luminance() has weird extra parens to preserve the order of evaluation,
but I don't see any reason not to drop them in a follow up.

Change-Id: If6889ec9ba1ecc23edb15361ccb2b2309be7a6b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279907
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-28 12:42:04 +00:00
skia-recreate-skps
277879e17b Update Go Deps
Change-Id: I45586c8a0c5fb56a7afb25b195a52f971bca28cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280181
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-03-28 05:35:36 +00:00
Ben Wagner
7363af8c51 Fix gcc 9 warnings.
GCC 9 warns about this pessimizing-move. It isn't clear why clang isn't
as well.

GCC 9 has a working redundant-move diagnostic. Clang has an old (C++11
style) redundant-move diagnostic which only warns when moving a
parameter. The GCC warning conflicts with Clang's
return-std-move-in-c++11, which we want to keep until we can drop
support for older compilers. So just disable redundant-move warnings
until we can remove return-std-move-in-c++11.

This change allows us to compile without warnings on gcc 9.3.0.

Change-Id: If21fcfb2944ce49e27fc84d40805752895ae68cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279958
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-27 23:00:54 +00:00
Brian Salomon
2f23ae6b8e Rename SkColorTypeComponentFlags to SkColorChannelFlags.
Precusor step for making this public and adding a method to
GrBackendFormat to query its channels.

Bug: skia:10078
Change-Id: I2d8fa6586721c35961bc328a15eef8e2ebd4406e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279422
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-27 21:48:41 +00:00
Mike Reed
c6b17ef292 all colorfilters but RT converted to skvm
Change-Id: I51a0b5cb9c14f44f3af9cd8748f4e1c866f3441c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280096
Auto-Submit: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-27 21:48:39 +00:00
Greg Daniel
ffa16148f6 Add GrD3DPipelineState class and setup vertex input information.
Change-Id: If918db1153f6b5bf7057e00f3d36113fc88d889d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279919
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-03-27 20:55:11 +00:00
Mike Reed
f36b37f828 onProgram for SkGaussianColorFilter, plus gm and bench
iMac Pro bench:
- RP:          167
- VM exp:      195
- VM quartics: 135

Change-Id: Ie8deb38f246b9ae7bbd35e59c3e7e66fc7c42de5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279918
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-27 20:41:20 +00:00