We need the wrapped GrVkSeocndaryCommandBuffer to live, holding refs to
GrVkResources until the GPU is done with the work. However, we don't know
ourselves when the command buffer gets submitted or when the GPU is done
since the client handles on that in the wrapped case. Our spec for wrapped
secondary command buffers requires to the client to keep the
GrSecondaryCommandBufferContext alive till the GPU is done the work so we
can use that to manage our needed lifetime as well. By putting the
GrVkSecondaryCommandBuffer on the GrVkRenderTarget, which is owned by the
SkGpuDevice in the above GrSCBContext, or lifetime should match what we need.
Change-Id: I7cdd92089bed390548ebf33f9d5c7e714bacc9c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256361
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This reverts commit b1edfde279.
Reason for revert: senorblanco@ is adding a WriteOnly flag which will
be more appropriate for this functionality.
Original change's description:
> Rename GLRTFBOIDIs0 to WrapsSwapchainSurface and use for Metal.
>
> This provides a way to indicate that a Metal RenderTarget, and in
> particular a RenderTargetProxy, is framebufferOnly, so it can be
> restricted to certain operations.
>
> Bug: skia:9573
> TBR: bsalomon@google.com
> Change-Id: I733fae2fce402c375534889346255afe28a57944
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255783
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,robertphillips@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: skia:9573
Change-Id: Ide775fbbe81114c10fe81e7faa517c20784e8498
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256496
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Now that the UniformHandlers can accept SurfaceProxies directly, there's
no need to have the restricted type on TextureSampler anymore. This will
make them one step closer to compatibility with GrSurfaceProxyView.
While making these changes, several effects performed their own source
coord normalization by peeking the texture. I updated these to just
use the proxy's backing store dimensions.
Bug: skia:9556
Change-Id: I97183e8453b7a3db86cd90d614c8c959b3707abb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255978
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This is a first pass that should help with migrating clients.
The utility implementations of ResourceProvider are still in
skottie - those are going to be harder to move. More likely
that I'll add parallel implementations in skresources, then
we can shift clients over and delete the skottie copy.
I'm planning to use this interface/system in particles.
Bug: skia:9513
Change-Id: I004da685983c05cb1b48a75f8a23bd7d73a3f5af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256077
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
* Remove Run.
* Have SubRun handle both mask and path data.
* Collect up runs of glyph with the same format to
simplify building SubRuns.
The nexus of this change is GrTextBlob::makeSubRun. All the
invariants for a SubRun are set in this code, and those
invariants stem from the SubRunType. Much of the code has been
simplified by not having to maintain complicated invariant
state between adding glyphs.
The change that reduces the most number of problems with the
old code is having SubRun own its SkStrikeSpec. Having bulk
glyph insertion facilitated this.
Change-Id: I2439392a9ee3485e7b07a1f3fdaf1351128c4d47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255309
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Change-Id: I0524c96e3a6ab1a342872d5d0d903e87526dffeb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256230
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This is a reland of 997b37fdb9
Layout tests have been suppressed.
Original change's description:
> Revert "Revert "Make FP optimizations helpers use SkAlphaType not GrColorType""
>
> This reverts commit 078e8faa26.
>
> Change-Id: I67b2970584db5a1afbf9928b77c5444947ef71a3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255897
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I6db4cff8b71ef1f29ac47f7729b9514d009f730a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256225
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
The bulkrect_1000_random_uniqueimages_batch on a Nexus 6P/Adreno 430
w/o this CL
curr/maxrss loops min median mean max stddev samples config
304/304 MB 1 151ms 159ms 158ms 163ms 3% ▆█▇▄▆▆▁▂█▅ gles
w/ this CL
curr/maxrss loops min median mean max stddev samples config
286/286 MB 1 18.1ms 18.1ms 18.1ms 18.1ms 0% ▂▄▅▃▅▅▃▄▁█ gles
Change-Id: I0f6d690b953444ec7a3176cb27c8a253caa55f5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255986
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Replaces VisitSurfaceProxyFunc with GrOp::VisitProxyFunc since they are
now the same.
Records sampled textures as GrSurfaceProxies, but asserts they are in fact
texturable. Updates all backends to process the pipelines with surface
proxies (which always have had to do a surface->asTexture() virtual call
that is unchanged, this just avoids the unnecessary proxy virtual).
Also updates the GrTextureOp to not call asTextureProxy() anymore, to
take advantage of the relaxed pipeline types.
A number of instances of asTextureProxy() remain. It is still the primary
method of determining if a proxy is texturable, so code paths that branch
on that still use it. Some resource management code still requires mipmap
functionality specific to the GrTextureProxy API, so they still use it.
To keep this CL sane, the GrFP::TextureSampler and all generated FPs have
not been updated to use GrSurfaceProxy, although that will be in a follow
up since it should be technically possible.
Bug: skia:9556
Change-Id: I1e917aff9e70b08915e98ccc17c6b8f3be29c4f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255830
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: I2df94791af133fcfb3fa491163394369f324bbc3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256096
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
4c7db77e01..e9b68f332a
git log 4c7db77e0185..e9b68f332a30 --date=short --no-merges --format='%ad %ae %s'
2019-11-23 emircan@chromium.org Clean unused NewCreateImagePipeCmd
2019-11-22 cnorthrop@google.com Enable frame capture on Android
2019-11-22 jmadill@chromium.org Posix: Fix async LaunchProcess.
2019-11-22 shrekshao@google.com EXT_texture_norm16 readpixels fix
2019-11-22 courtneygo@google.com Suppress flaky failure with Win7/NVIDIA/D3D11
Created with:
gclient setdep -r third_party/externals/angle2@e9b68f332a30
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 bungeman@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: bungeman@google.com
Change-Id: I3717a0fe9f300e724ab4cbfb5e3c5b85888fd239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256297
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Also update some recipe expectations to use job names that currently
exist.
Bug: skia:9632
Change-Id: I35883474a91ffb9fb2ab3b16089c7c80b5df0bd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255982
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
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/800129711d28549962e99dfa08007d9d79e4f7a3 my_activity: allow to exclude some servers (vbendeb@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1dea6be6ecef10b0e07603faa38e8edb31873005
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256104
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>
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/dcbdf913dcecac13e14af5928a070f369b729c60 [swarming] Don't use null user/tags in test data (olivernewman@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I60f962f5c8ae19e52ee8e4aa9f582ad525a433e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256103
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>
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/fb9043505a8386e9ea7b9ff12bad0aeaaf41d929 [recipes-py] Provide the ability to supply reason when cancel a build (yiwzhang@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iebaa1fbda6377589db5f174e92a3a6ff0f92c203
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256122
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>
Add a common way to make rect op for testing that uses a GP with a local
matrix.
Change-Id: I958d1230bd5067b2e4b60fcd374e2f7718681e43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255782
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Chrome is seeing unexplained segfaults when trying to access the n-1th
textureSampler while creating textOp GeoProcs -- it's possible that's
because n is 0. Also add checks to make sure n is not > kMaxTextures.
Bug: chromium:1027314
Change-Id: I65a5472980bab37d580b3f237a132a8b23794abe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255985
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ib29f41f6e71b176fec1ead26259ad1945a41e634
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254677
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This is complete overkill for what these GMs require but it will help centralize things.
Change-Id: If30cbd9a9cfc8fcc1fe96fc9ca1b4cb17cdeb4bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255824
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: I3c8bf48dda061aa9d318b9f81f22608fdd68fcbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255786
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
(also renames CreateTextureSetOps to AddTextureSetOps, to match naming of
GrFillRectOp::AddFillRectOps).
Now that GrTextureOp can add more than one op to the GrRTC, it can take
over ownership of its fallback code for the texture set. It already had
taken over the code for non src-over blends when drawing a single texture.
Besides consolidating where the logic of converting TextureSetEntries into
op data lives, this makes the fallback case more consistent in terms of
performance. Previously, it would go through GrRTC::drawTexturedQuad,
which attempts to merge the clip with the draw for correctness reasons.
A batch never attempted these optimizations, so now even when one op per
quad is required, there won't be the overhead of comparing clips.
Change-Id: I30883e3bd45ed4386f81584e3d68229c46b17e47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255781
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Also, create and use new service account for the G3 compile bots.
Interesting failure here refers to when the bot fails only because of
test failures and not:
* merge failures
* unknown failure reasons (eg: some flaky timeouts from the script running in borg)
* when the bot is not owned or approved by a Googler
NoTry: true
Bug: skia:9631
Change-Id: I964fd7874269116cca0e25d1b516283a00d5133f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254278
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
I've punted for now on GPU test support.
Change-Id: I2ebe54a6fc61e1ce92120a6a221d5bb936b047e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255874
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This provides a way to indicate that a Metal RenderTarget, and in
particular a RenderTargetProxy, is framebufferOnly, so it can be
restricted to certain operations.
Bug: skia:9573
TBR: bsalomon@google.com
Change-Id: I733fae2fce402c375534889346255afe28a57944
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255783
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
The *previous* SkWuffsCodec.cpp commit, 39da10b5 "Optimize SkWuffsCodec
pixbuf zero-initialization", removed the need to *explicitly*
zero-initialize the fPixelBuffer on the first frame decode. Subsequent
frames, including the first frame of the animation again if the
animation is looped, still need to call sk_bzero.
Prior to *this* commit, each row of the pixel buffer was zeroed
separately. When it is necessary to memset to zero, it can be faster to
issue one big call instead of many small calls.
For example, the single-frame droids.gif file mentioned in the previous
commit (39da10b5) now skips the explicit sk_bzero calls, due to the
optimization in exactly that previous commit. But if it was a looped
animation, decoding subsequent (repeated) frames would need to memset
the re-used buffer to zero. The time taken for those sk_bzero calls
would be affected by this commit: from 2.900ms to 2.454ms (out of a
total decode time of 33.342ms as per 39da10b5's commit message).
Bug: skia:8235
Change-Id: I72ec3dc4230f06f358b5e8fee1b2799607d86615
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255358
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>