- isLazyGenerated no longer needed
- requestLock does not need a virtual
Bug: skia:4328
Change-Id: I56ab5ee1e10f2a20332eb58464a2a48b487101e6
Reviewed-on: https://skia-review.googlesource.com/13195
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Bug: skia:
Change-Id: I1972f85f593828c982ea08143e1ed7eb70345eaa
Reviewed-on: https://skia-review.googlesource.com/10296
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a bit sloppy in that it ignores some instances where discards were being issued before.
The creation of the temp RTContext in the RenderTarget's discard method was causing an extra split in the opLists.
This is split out of: https://skia-review.googlesource.com/c/10284/ (Omnibus: Remove GrSurface-derived classes from ops)
Change-Id: Ic366d303280635763b0fae238c4df37c04fb8503
Reviewed-on: https://skia-review.googlesource.com/11125
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Previosly, SkSize had a base class, which prevented it.
Also removes unused SkISize::clampNegToZero() and
SkSize::clampNegToZero().
Change-Id: I7b93b42f6f6381c66e294bbedee99ad53c6c3436
Reviewed-on: https://skia-review.googlesource.com/13187
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
This is part one of many to making SkPicture simpler.
SkMiniPicture covers the really small allocations,
so there's really no reason for us to have these inline allocations.
BUG=skia:6484
Change-Id: I0e27ac747a6b15cf178db9639128fef757bc137b
Reviewed-on: https://skia-review.googlesource.com/13137
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
The Rec in the cache is the owner of the pixel memory
- discardable or
- malloc
Each external client has a pixelref that just points to those pixels,
and whose destructor will notify the rec.
This eliminates the dependency on lockPixels in pixelref, freeing us
to remove that entirely from pixelref.
Bug: skia:
Change-Id: If45ed0ae202a1211336626364235215253e8aa7c
Reviewed-on: https://skia-review.googlesource.com/10300
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-Vulkan
Bug: skia:
Change-Id: I2e465a4668956d4337ecde4f65081bf22b3b0e7a
Reviewed-on: https://skia-review.googlesource.com/13183
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Nothing interesting here. Just slapping const all over the place.
BUG=skia:6484
Change-Id: I639001754aca6d129c40e9acddc9b2d3730fed0c
Reviewed-on: https://skia-review.googlesource.com/13184
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
SkRecord used SkNVRefCnt to avoid adding a vptr.
SkMiniPicture covers the really small allocations,
so there's really no reason to fret over an extra pointer here.
BUG=skia:6484
Change-Id: Ifa43be8eb352b2d59851c75e6b4f164bb38b5ef6
Reviewed-on: https://skia-review.googlesource.com/13139
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit 0f3fdfacf3.
Reason for revert: Blink-headless in Google3 needs an update too.
Original change's description:
> remove unused SkBitmap::copyPixelsTo
>
> Needs https://codereview.chromium.org/2812853002/ to land first
>
> Bug: skia:6465
> Change-Id: I531e33b2848cd995f20844786ed1a8d34d63fb64
> Reviewed-on: https://skia-review.googlesource.com/13171
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>
TBR=reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I5e7c4b0d05772e4948cb1dffdcc40e095fbdba41
Reviewed-on: https://skia-review.googlesource.com/13185
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Add SkCodec::FrameInfo::fAlphaType. The SkImageInfo for the SkCodec
specifies the SkAlphaType for the first frame, but the opacity can vary
from frame to frame.
When determining the required frame, also compute whether a frame has
alpha. Update how we determine the required frame, which had bugs.
(Update a test that had an incorrect required frame as a result.)
Add new test images covering cases that have been fixed:
- randPixelsAnim2.gif
It has the following frames:
A (keep)
B (keep) (subset)
C (disposePrevious) (covers B)
D (any) (does *not* cover B)
B and C depend on A, but D depends on B, since after disposing C, B
should be visible again.
- alphabetAnim.gif
Includes frames which fill the image size, with different disposal
methods and transparencies.
Change-Id: Ie086167711c4cac4931ed8c4ddaeb9c9b0b91fdb
Reviewed-on: https://skia-review.googlesource.com/9810
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
We can't realistically use AVX and SkNx together because of ODR
problems, so remove the code that may tempt us to try.
Remaining code paths using AVX:
- one intrinsics-only routine in SkOpts_hsw.cpp
- SkJumper
Change-Id: I0d2d03b47ea4a0eec27f2de2b28a4c3d1ff8376f
Reviewed-on: https://skia-review.googlesource.com/13121
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: Id127a3c4a1a40bc6ddb0641c9d72f1a5960bbc6e
Reviewed-on: https://skia-review.googlesource.com/13125
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
This operation assumes 0-1 input and guarantees 0-1 output.
The old clamp was poorly written, causing the possibility
for NaNs to not be set to 0.
BUG=709941
Change-Id: I691f0494a562a329967f5b0149a1ba04cbeb8464
Reviewed-on: https://skia-review.googlesource.com/13134
Commit-Queue: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit d83ec04412.
Reason for revert: various bot failures
Original change's description:
> Rm makeRenderTargetContext in favor of deferred version
>
> Change-Id: Ifdf67453607256ba7cdb0837263377bd83907212
> Reviewed-on: https://skia-review.googlesource.com/13001
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
>
TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I4e67a20cbe658b24725dcf386ac8bfdd127647ea
Reviewed-on: https://skia-review.googlesource.com/13131
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
It's unused, and doesn't appear to be correct, returning nullptr too
early when we should return a non-empty SkMiniPicture.
The mini-recorder path will return a zero-allocation SkEmptyPicture anyway.
Change-Id: I1be538049e731acfc2b0f8b4f30cafee434a91dc
Reviewed-on: https://skia-review.googlesource.com/12626
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Fills out most of the simple implementations.
Improves 22 gms in gbr-8888.
Bug: skia:
Change-Id: I881ade140993568263de75be51aed240d2de8cc6
Reviewed-on: https://skia-review.googlesource.com/13126
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: Ib205f6104827b734635df6932d6dcfdc2248d091
Reviewed-on: https://skia-review.googlesource.com/12103
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
This was the old way of handling color spaces.
This is now handled by chooseCacheFormat() / buildCacheInfo().
Bug: skia:
Change-Id: Ifab1ab25d547a00296af237578dd8befec9c86c6
Reviewed-on: https://skia-review.googlesource.com/13004
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Snap input values to N / 255 before doing PM/UPM conversions, and add
a new round-to-nearest conversion pair. With the pre-snapping, that
pair is chosen by (almost?) every GPU we have. This now lets us round
trip perfectly on Mali GPUs (which were falling back to SW before).
Bug: skia:
Change-Id: I0cebf1382e1c829aedfef4ec1614d7fa980057b5
Reviewed-on: https://skia-review.googlesource.com/11520
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This CL reverts legacy destinations back to lerping bytes.
Lerping linear is only the correct behavior for gradients
drawing into colorspace-aware destinations.
As written we're lerping between de-sRGB'd colors but never
transforming the outputs back. That leaves us in a weird
halfway-right-is-worse-than-wrong spot for legacy.
Change-Id: I79b85552b6913649afd2414205cf57108a8b93c6
Reviewed-on: https://skia-review.googlesource.com/13064
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: skia:6423
NOTRY=true
Change-Id: I2193c49151359a174ffa071650e1dbd366c91b28
Reviewed-on: https://skia-review.googlesource.com/11783
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I3ae75d4edde1b3c8cc44413db74e5ab9789a9020
Reviewed-on: https://skia-review.googlesource.com/13065
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
N=8 on that bot.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Fast
Change-Id: If54ae800b50d9dffb9f983b23ff6f522657943b1
Reviewed-on: https://skia-review.googlesource.com/13061
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Also remove some unused functions from GrBlend.h and related unit test.
Bug: skia:
Change-Id: Id8ad0057a02f65a9e19dc75e4b88709a762f4139
Reviewed-on: https://skia-review.googlesource.com/12623
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Constructor changes the color type to N32 now, so this
code is never needed.
Bug: skia:
Change-Id: If464440fed799122fed810d870f5d6d9a932bf12
Reviewed-on: https://skia-review.googlesource.com/13000
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Bug: skia:6473
Change-Id: I722059844bb0bc9d58347b4f6002ee62043b9e20
Reviewed-on: https://skia-review.googlesource.com/13006
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
It doesn't create an actual dependency, but it does cause the
Release-Shared build to be added to the tasks DAG, where it would be
orphaned if not for the other housekeeper.
Bug: skia:
Change-Id: Ia2974728ec353c7f209db45474e572d83cacbda5
Reviewed-on: https://skia-review.googlesource.com/13003
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This will allow different subclasses to use different models for lifetime management.
GrXferProcessor moves to simple ref counting since they don't own GrGpuResources.
This also constifies GrXferProcessor factories.
Change-Id: I6bea0ea8de718874063224232f9da50887868b16
Reviewed-on: https://skia-review.googlesource.com/11792
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Plus two sample implementations. Will fill out the
rest if the model looks ok.
Bug: skia:
Change-Id: Ie24ecd0cbc36263220cb1e506f7812c582554e50
Reviewed-on: https://skia-review.googlesource.com/12100
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
When aspectRatio is not finite, insert() can fall into an infinite loop.
This happens if you pass SkRect::MakeLargest() to the factory as bounds.
BUG=skia:5974
Change-Id: Ibcc9e5c5943c718608d4c1448305f7b8f11413bc
Reviewed-on: https://skia-review.googlesource.com/11784
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
At one point I moved the contents of the recipes into modules so that
they could be shared between repos. It turns out that we don't need
that, and it adds complexity.
Bug: skia:6473
Change-Id: I75a920b6a8474dcdd8b37ee9edd52aac801d1ab0
Reviewed-on: https://skia-review.googlesource.com/12622
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I118fcd49990597d4dfea92efd3f9d99e52fdbfab
Reviewed-on: https://skia-review.googlesource.com/11481
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:6473
Change-Id: Id78f0b5cb50ae2243b9a5aed8e552f7ed8202228
Reviewed-on: https://skia-review.googlesource.com/12060
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
By fixing this some ugly casts are avoided in setting up Chrome's GrGLInterface
Change-Id: Ie540fc41b3cbb27f976d784cad90ae10c2cef9ed
Reviewed-on: https://skia-review.googlesource.com/12621
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>