Commit Graph

47300 Commits

Author SHA1 Message Date
Chris Dalton
2c3e169183 Release deferred buffers in GrOpsRenderPass::end()
Moves the sk_sp's for deferred buffers out of the individual
subclasses and into GrOpsRenderPass. Makes sure to release these refs
during end(). This ensures the buffers can actually become purgeable
after the render pass completes.

Bug: skia:10048
Change-Id: I06838e45b85297b17277f625b313b6e07eda124f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278256
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-20 19:41:29 +00:00
Brian Osman
71903bd48d Remove unused (and misleading) 'instruction' from SkSLInterpreter.h
Instructions are always 8 bits (but may be used to index the array of
void* labels with threaded code).

Change-Id: Ia0ab1e654eb2949deecd67e3dc3959a53d74c4d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278177
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-03-20 18:06:03 +00:00
Jim Van Verth
77eb96d0c2 Reland "Reland "Clear out atlases if they haven't been used in a while.""
This is a reland of 0bd00f438e

Original change's description:
> Reland "Clear out atlases if they haven't been used in a while."
> 
> This is a reland of 79007c9309
> 
> Original change's description:
> > Clear out atlases if they haven't been used in a while.
> > 
> > This will stage out atlas pages one at a time with an interval of
> > 256 flushes between them. Also removes the last page to help
> > conserve memory if text or other atlas-using systems are not in use.
> > 
> > Bug: 1058905
> > Change-Id: I8717621033068d0e24da944356d91b0f35e5373b
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276764
> > Commit-Queue: Jim Van Verth <jvanverth@google.com>
> > Reviewed-by: Herb Derby <herb@google.com>
> 
> Bug: 1058905
> Change-Id: I25b0037cb1608ae0bda641e0d0588afaf3dd47e5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276960
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Bug: 1058905
Change-Id: I6e6cf7b30ced25c6a5af6ad57311b2a305d7c73a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277611
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-20 17:58:53 +00:00
Brian Salomon
2fade72a4e Set correct coord transform visibility initially rather than update.
Aside from being simpler it also makes the matrix uniforms for
explicitly sampled FPs appear only in the FS and not both VS and FS.

Change-Id: I0f7a4e83b77decacfd0567600dd2d3bc8ce5240f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278137
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-03-20 17:44:45 +00:00
Ben Wagner
7b7b78cb9f Make SkPDFUnion a better variant.
SkPDFUnion is basically a tagged union but does some odd things around
unique_ptr and SkString. Clean up the implementation around these. This
also fixes a number of warnings given by gcc 9.

Change-Id: Iaf58b30c03f172e96a28826ddaa616bf9f655f71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277613
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-20 17:30:14 +00:00
skia-autoroll
bcf5172abf Roll third_party/externals/swiftshader bc98fbeec99b..1c9f24263e6c (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/bc98fbeec99b..1c9f24263e6c

git log bc98fbeec99b..1c9f24263e6c --date=short --first-parent --format='%ad %ae %s'
2020-03-19 sugoi@google.com Fix float to r11g11b10 conversion
2020-03-19 amaiorano@google.com marl: manually apply partial patch to fix x86 crashes

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

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 egdaniel@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: egdaniel@google.com
Change-Id: I59074f5678ab74ba73e18af9d27c0e52fc4a24b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278117
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-20 17:30:13 +00:00
skia-autoroll
6860efc563 Roll ../src 05edc0038612..e0f773c501f9 (329 commits)
05edc00386..e0f773c501


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

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 egdaniel@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: egdaniel@google.com
Change-Id: I858329f69f83a54c47f916a1edd61ccb21439563
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278118
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-20 17:25:09 +00:00
Chinmay Garde
7cbcd79a4a Guard use of [id<MTLDevice> maxThreadsPerThreadgroup] behind version check.
This API was introduced in iOS 8.0.

Change-Id: Ia4c7d00696a99dd03289d2beef7a75511dc436d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278116
Commit-Queue: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Chinmay Garde <chinmaygarde@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-20 17:25:08 +00:00
Jim Van Verth
05d091935a Flesh out backend textures and rendertargets to support Direct3D.
Add GrD3DTextureInfo and GrD3DBackendSurfaceInfo, and uses those
to initialize GrBackendTexture and GrBackendRendertarget.

Bug: skia:9935
Change-Id: I4571c1b3aa8115250ff748deb8cf4a95f80f1237
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278036
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-20 17:12:46 +00:00
Brian Salomon
f4ba4ec796 Revert "Revert "Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots""""
Updated to use sentinel GL context even when GL backend is not built.

This reverts commit 1171d314ef.

Change-Id: Ia94bbe4865ddd4e898446c13886877c539f0eb0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277976
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-20 17:11:58 +00:00
Brian Osman
85755f46a8 Delete copy constructor and assignment operator on VariableReference
Accidentally copying these by value will cause the read and write count
tracking on variables to break. (We could increment the appropriate
counts in these functions, but they're not needed, so just make them
impossible to call instead).

Change-Id: Iba45330108460acbd53529416977064331f2a9e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278016
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-03-20 14:25:25 +00:00
Sean Gilhuly
f227449715 Update Scissor code in Skia Dawn
Move scissor handling code to onSetScissorRect(). If the pipeline does
not support scissor test, set the scissor to be the pipeline bounds.

Bug: chromium:1062664
Change-Id: I2092a15b643e6f5a1e6f5609f9c45f43a42eea33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277996
Commit-Queue: Sean Gilhuly <sgilhuly@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2020-03-20 12:58:45 +00:00
Brian Salomon
4b55ff097b Fix cmake angle build on linux.
Include libangle_gl_egl_sources and libangle_gl_egl_dl_sources source sets

Change-Id: I86aa7fb19eb5ec195b8ba35b46a66449e0e461f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277738
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-03-19 21:10:56 +00:00
Chinmay Garde
f832c0ae49 Allows Skia users to disable use of API_AVAILABLE in the Metal backend.
On certain older versions of the Clang toolchain, the use of the API_AVAILABLE
macro on symbols in C++ translation units causes the visibility of those
symbols to me treated as default instead of the hidden. This causes internal
symbols to be exposed from release dylibs.

This mechanism allows users of the toolchains that have not been updated to the
latest versions to disable the use of the macro in release configurations.

Change-Id: I656361770c2011cff4c1b252761b5d0f3d89edc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277775
Auto-Submit: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-19 21:10:55 +00:00
Brian Salomon
1171d314ef Revert "Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots"""
This reverts commit fb27c9a25f.

Revert "Remove MoltenVK support"

Reason: TSAN Vulkan bots hanging.

This reverts commit 6cafe73da9.

Change-Id: I8ec9db35c112f3c8da8636dab2065e6f18de7d0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277936
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-19 13:10:59 +00:00
Brian Salomon
6cafe73da9 Remove MoltenVK support
We haven't tested this in a while. Use the Metal backend instead.

Change-Id: Ic06bf4faff99950bd24e41bdea03962db99cfeee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277612
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-03-19 12:23:23 +00:00
Brian Salomon
7c94d1891f Use SkColorMatrix_RGB2YUV in image_from_yuv_textures
Change-Id: I22ce21a7d217c6929cd3a3de6525290fafa91f55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277816
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-19 12:22:43 +00:00
Chris Dalton
fabad15705 Remove ln "-T" option from cavaskit demo
-T isn't supported on mac.

Change-Id: Ic25dd48de1cfddcccb4d4b09f12585d889e5184d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277779
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-03-19 11:12:05 +00:00
skia-autoroll
d99b64678d Roll ../src 21cbc653d600..05edc0038612 (738 commits)
21cbc653d6..05edc00386


Created with:
  gclient setdep -r ../src@05edc00386

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 egdaniel@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: egdaniel@google.com
Change-Id: I19bee9ca918d49f710bfaec4a2a2f1da98ff0e04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277897
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-19 04:49:23 +00:00
skia-autoroll
d4bc34a0ed Roll third_party/externals/angle2 d24752e63ae4..dadeffa315e7 (16 commits)
d24752e63a..dadeffa315

git log d24752e63ae4..dadeffa315e7 --date=short --first-parent --format='%ad %ae %s'
2020-03-19 jmadill@chromium.org Capture/Replay: Fix stride in compressed texture caching.
2020-03-19 jmadill@chromium.org Roll chromium_revision 86e00b5dd2..fa9d5805c4 (743688:750702)
2020-03-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 6cd8cbdaab99..caeb15a056a0 (15 commits)
2020-03-18 courtneygo@google.com Vulkan: Must call vkFlush while memory is mapped
2020-03-18 tobine@google.com Vulkan:Set one-time bit on all command buffers
2020-03-18 courtneygo@google.com Be sure to clear all program state at unlink
2020-03-18 jmadill@chromium.org Capture/Replay: Fix MEC Query capture.
2020-03-18 jmadill@chromium.org Capture/Replay: Fix compressed texture subImage caching.
2020-03-18 jmadill@chromium.org Capture/Replay: Use zlib to compress data files.
2020-03-17 m.maiya@samsung.com Vulkan: Request device local memory for glBuffer with GL_STATIC* usage
2020-03-17 amy.liu@arm.com Fix ShaderStorageBufferReadWriteOffset end2end test
2020-03-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 3a50a43df988..440fc9959f06 (1 commits)
2020-03-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 9b620aa0c12d..4b2483ee88ab (1 commits)
2020-03-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src be663d752e45..6cd8cbdaab99 (7 commits)
2020-03-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src f1d9f12a19de..64c36933d4f2 (2 commits)
2020-03-17 jmadill@chromium.org Roll third_party/zlib/ c2eb8a7f7..156be8c52 (1 commit)

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

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 egdaniel@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: egdaniel@google.com
Change-Id: Id47c4614f5fa295f50adccbc25e772173280264e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277898
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-19 04:47:33 +00:00
skia-autoroll
d65a790d71 Roll third_party/externals/swiftshader 440fc9959f06..bc98fbeec99b (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/440fc9959f06..bc98fbeec99b

git log 440fc9959f06..bc98fbeec99b --date=short --first-parent --format='%ad %ae %s'
2020-03-18 amaiorano@google.com Subzero: fix external function calls on x86-32
2020-03-18 amaiorano@google.com Subzero: fix partially initialized ManagedStatic assert
2020-03-17 digit@google.com [vulkan]: Support multiple external semaphore implementations.

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

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 egdaniel@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: egdaniel@google.com
Change-Id: I487d827d21f31afb3c6014b1db62c2fe3c2425e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277896
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-19 04:29:33 +00:00
Kevin Lubick
d3b92b910c [canvaskit] Add tests for gradients
Change-Id: I28a001f281d9dc0c64c37ad1f22a6387eadca843
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277607
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-03-18 20:03:16 +00:00
Mike Reed
430c5a1081 hide bitmap virtuals
SK_SUPPORT_LEGACY_ONDRAWBITMAP_VIRTUALS flag to stage this

Change-Id: I32c1bc954446b44cbe656f07cf6f2ad70668b723
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277736
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-18 20:01:28 +00:00
Kevin Lubick
afa83bc20b [canvaskit] Update to 0.14.0
Change-Id: I35b1c05e8e92a4dc01a3bf2b0502af18d8cb8b41
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277743
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-03-18 19:47:15 +00:00
Kevin Lubick
f279c63a60 [canvaskit] Add tests for patheffects
Also move around internal Dash PathEffect api.

Change-Id: I445626462f4e76523474b027555da45a58d54632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277599
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-03-18 19:33:50 +00:00
Kevin Lubick
8febecfee6 [canvaskit] Make codec inclusion configurable
By default, we just ship with PNG encoding/decoding and
then decoding of JPEG, GIF, WEBP.

Change-Id: I19cbb3162acdbfde809df29d49050e3e7cb049db
Bug: skia:9733
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277598
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-03-18 19:32:32 +00:00
Jim Van Verth
d29d885c88 Reland "Set up eGPU/discrete support for MacOS."
This is a reland of 1c3bea4593

Original change's description:
> Set up eGPU/discrete support for MacOS.
> 
> Pulled out of https://skia-review.googlesource.com/c/skia/+/271319.
> 
> For Metal, will default to an eGPU or discrete GPU if one is available.
> For GL, will attempt to use a Radeon eGPU, and will fallback
> if one can't be found.
> 
> Change-Id: I0a1efb3afca612ac75be56f633d811dda68f9d10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277516
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Change-Id: I1f9dcbf82465533ae8bce96b5cc73a7c627071a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277696
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-18 19:27:41 +00:00
Brian Osman
8370fd1267 Add a custom GP for GrDrawVerticesOp
That op only used a few features of the default geometry
processor. It was also the only user of SkColor vertex
colors (and the accompanying color space xform).

In GrDrawVerticesOp, this gets rid of flags entirely, and
uses tri-state enums for both local coords and colors.
We used to have a mix of flags, state inferred from other
fields, and explicit fields. I think the new single
representation simplifies the logic.

Change-Id: I9802585d99a71ca50399f5862489d4f2bd8c5052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277470
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-03-18 18:58:11 +00:00
Brian Salomon
fb27c9a25f Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots""
This reverts commit 00ba5ef4a6.

Bug: skia:10051

Change-Id: I13fd5494b7e7e64159e6330f168ab8c16a2db149
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277609
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-18 18:12:11 +00:00
Mike Reed
6a32672cb4 Revert "remove uncalled virtuals"
This reverts commit 8edacdb6a5.

Reason for revert: need to update overrides in google3

Original change's description:
> remove uncalled virtuals
> 
> Change-Id: Icd2e7ec8f321a1828b317d74c0ce4f3ada971e0a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276765
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=brianosman@google.com,reed@google.com

Change-Id: I14b1cb88bea641c475bde84126fb3d6a510bfb0b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277615
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-18 18:09:31 +00:00
Robert Phillips
c655c3aa8b Make GrOp::onPrePrepare be pure virtual
This makes onPrePrepare match onPrepare & onExecute. Most of the new method bodies will-have-to/should be filled in anyway.

Change-Id: Ifc897feaeb2d8fe6eec3ac3a8e91f99393ad6758
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277542
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-18 18:06:02 +00:00
Florin Malita
3a76975a7c [skottie] VectorValue specialization
Currently we're handling VectorValues via a generic animator => we use
vector<vector<float>> for storage.  That's kinda clunky, especially for
small-size vectors (3d values, colors).

Introduce a more efficient VectorKeyframeAnimator:

  - stores vector values in a contiguous/consolidated float array
  - keyframes reference value offsets in storage
  - fast/sk4f lerp impl

Change-Id: Ia9538068f2c722c2d2209f87e26564f0fe28ac31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277578
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-18 17:57:41 +00:00
Kevin Lubick
4765da43c5 Add fiddle example for MakeLinear
See live at https://fiddle.skia.org/c/4dbc499d0c9fdf7e732e512d90039acd

Change-Id: I06920e61b902c37c9c00ce3addd3e7cbf1c880bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277602
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-18 17:53:11 +00:00
Brian Salomon
bc074a68df Add SkBudgeted parameter to SkImage::makeTextureImage().
Also strengthens/adds some guarantees about this function:
* Always returns the same image if the original is texture-backed and
compatible with GrMipMapped (WRT HW MIP support)
* If a new texture backed image is returned it is always an uncached
texture that is not shared with another image or owned by an image
generator.

Adds a GrImageTexGenPolicy that allows control through image/bitmap
GrTextureProducers of whether a new texture must be made and whether
that texture should be budgeted or not.

Increases unit test coverage of this API.

Bug: skia:8669

Change-Id: Ifc0681856114a08fc8cfc57ca83d22efb1c1f166
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274938
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-18 17:27:41 +00:00
Brian Osman
0b1e5fc8f2 Remove GrGLSLUtil
This had a not-very-useful matrix utility in it. We've had setSkMatrix
for a while, and the one other user always wanted a 4x4, which can be
done with SkM44 just as easily.

Change-Id: I3f00a0a1ccaf58bc9c775da4eef819af5a5fa7e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277605
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-18 16:42:28 +00:00
Jim Van Verth
26651883d0 Revert "Reland "Clear out atlases if they haven't been used in a while.""
This reverts commit 0bd00f438e.

Reason for revert: Causing text issues in Chrome.

Original change's description:
> Reland "Clear out atlases if they haven't been used in a while."
> 
> This is a reland of 79007c9309
> 
> Original change's description:
> > Clear out atlases if they haven't been used in a while.
> > 
> > This will stage out atlas pages one at a time with an interval of
> > 256 flushes between them. Also removes the last page to help
> > conserve memory if text or other atlas-using systems are not in use.
> > 
> > Bug: 1058905
> > Change-Id: I8717621033068d0e24da944356d91b0f35e5373b
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276764
> > Commit-Queue: Jim Van Verth <jvanverth@google.com>
> > Reviewed-by: Herb Derby <herb@google.com>
> 
> Bug: 1058905
> Change-Id: I25b0037cb1608ae0bda641e0d0588afaf3dd47e5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276960
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

TBR=jvanverth@google.com,herb@google.com,robertphillips@google.com,backer@google.com

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

Bug: 1058905
Change-Id: I8b6f0d1a1fb522d40cdc34ec8a2d420830117b86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277606
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-18 16:26:28 +00:00
Mike Reed
8edacdb6a5 remove uncalled virtuals
Change-Id: Icd2e7ec8f321a1828b317d74c0ce4f3ada971e0a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276765
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-18 15:42:29 +00:00
Eric Boren
6b24312674 [infra] Run recipe and python unittests unbuffered
Should help to prevent missing log output.

Change-Id: I1f82f6e5792aaadec03b4b2e5e87e599332f37e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277603
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2020-03-18 15:33:38 +00:00
Brian Salomon
00ba5ef4a6 Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots"
This reverts commit f6784a8c84.

Reason for revert: breakage of builds

Original change's description:
> Don't build GL on Metal, Vulkan, Dawn, Direct3D bots
> 
> Misc fixes to omit GL-dependent targets and fix assumptions that
> SK_SUPPORT_GPU implies SK_GL.
> 
> Bug: skia:10051
> Change-Id: Ida88ac3f1bf4d9e23f66d0700c2bce18b938ed6f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277456
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

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

Change-Id: I4e02f675fd8820ed3c8efee192c64e570a23c3e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10051
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277601
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-18 14:42:28 +00:00
Robert Phillips
4f93c573e2 Update AAHairlineOp to surface its programInfos at record time
This CL is interesting bc the AAHairlineOp is the first one that requires multiple programInfos.
Correspondingly, it is also the first one that shares a pipeline between said multiple programInfos.

Bug: skia:9455
Change-Id: I2369abbdeaf4eac2bc9547ad36631beba29bd641
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277203
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-03-18 14:36:18 +00:00
Brian Salomon
f6784a8c84 Don't build GL on Metal, Vulkan, Dawn, Direct3D bots
Misc fixes to omit GL-dependent targets and fix assumptions that
SK_SUPPORT_GPU implies SK_GL.

Bug: skia:10051
Change-Id: Ida88ac3f1bf4d9e23f66d0700c2bce18b938ed6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277456
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-18 14:26:28 +00:00
Eric Boren
0d6629ad2a [infra] gen_task: follow-ups from http://review.skia.org/275076
Change-Id: I766c7e46f6f6da85411d1c4c65122c33e27a630d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276197
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2020-03-18 14:15:28 +00:00
Mike Reed
d7e0131c7e remove old experimental apis
Change-Id: Ib395faa621ae3919a3b04dc8ef1a362ef4916ce0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277580
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-18 03:54:58 +00:00
Greg Daniel
c2b7d47fdd Revert "Set up eGPU/discrete support for MacOS."
This reverts commit 1c3bea4593.

Reason for revert: breaking ios build

Original change's description:
> Set up eGPU/discrete support for MacOS.
> 
> Pulled out of https://skia-review.googlesource.com/c/skia/+/271319.
> 
> For Metal, will default to an eGPU or discrete GPU if one is available.
> For GL, will attempt to use a Radeon eGPU, and will fallback
> if one can't be found.
> 
> Change-Id: I0a1efb3afca612ac75be56f633d811dda68f9d10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277516
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

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

Change-Id: I84c64793cc305a415f54ff0496d4ec410a94687f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277579
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-03-18 01:04:58 +00:00
Chris Dalton
304e14d883 Remove FixedDynamicState from GrProgramInfo and GrPipeline
Everybody uses explicit binding now.

Change-Id: Idb6f64104eddd31d28dd2ba19f9743520a4e5170
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277541
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-17 23:09:08 +00:00
Jim Van Verth
1c3bea4593 Set up eGPU/discrete support for MacOS.
Pulled out of https://skia-review.googlesource.com/c/skia/+/271319.

For Metal, will default to an eGPU or discrete GPU if one is available.
For GL, will attempt to use a Radeon eGPU, and will fallback
if one can't be found.

Change-Id: I0a1efb3afca612ac75be56f633d811dda68f9d10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277516
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-17 21:44:58 +00:00
Herb Derby
43f7641e1b Arrange instruction to reduce register pressure
When converting from Instructions to OptimizedInstructions
place instructions that reduce register pressure earlier in
the instruction list.

This change reduces some register pressure in SkVM, and
improves the bitmap_RGBA_8888_A_scale_bilerp benchmark by
about 5%.

Change-Id: If5f6385bd2f7720701d1c827265062b35491a790
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276485
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-17 21:37:18 +00:00
Florin Malita
56015e0115 SkStrikeCache: only validate post-purge
Now that we call internalPurge() frequently and under a spinlock, the
initial validation can yield significant contention in debug builds.

Change-Id: I360183f7fca30dc35d61658258ed7980fcdc6721
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277467
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-03-17 20:07:49 +00:00
Chris Dalton
3bf2f3a9da Remove DynamicStateArrays from GrProgramInfo and GrPipeline
Every op that updates dynamic state between draws has now been
migrated to explicit binding.

Change-Id: Ibd13c9c0ffb16a205c073dfb4fd21d93f496dc52
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277493
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-17 19:12:18 +00:00
Chris Dalton
dbb833b457 Migrate GrFillRectOp and GrTextureOp to the new bind/draw API
Renames GrQuadPerEdgeAA::ConfigureMesh to "IssueDraw", and modifies it
to call draw*() directly on an opsRenderPass. Updates GrFillRectOp and
GrTextureOp to bind their own pipelines, buffers, and textures, and
then call IssueDraw. Removes DynamicStateArrays and FixedDynamicState
from GrTextureOp, in favor of directly re-binding textures during
onExecute.

Bug: skia:9455
Change-Id: Ia4a7a467061bfd0e35d363295ef1821ed2ed4e9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277496
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-17 18:46:18 +00:00