SkStrike becomes SkScalerCache. It will eventually externalize
the memory accounting to SkStrikeCache::Node because the amount of
memory used by the scaler cache, and the overall strike cache memory
usage must be kept in sync.
Change-Id: Ia889f057d8138ec7f22f996e7ebb9d2441dea4ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/271018
Reviewed-by: Ben Wagner <bungeman@google.com>
unused declaration
passing std::move() to const&
These are triggering warnings in google3
Change-Id: I12cebd0a8fd218e7755718fed7acec7908d386a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/271138
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Floating-point errors in the calculations in arcTo can cause the final
point to differ significantly enough from the supplied target point that
a subsequent 'close' operation inserts a lineTo to close the curve. This
can result in bad miters on curves with thick outlines.
The fix is to ensure that the final point used is *exactly* the point
that was supplied.
The fix is now staged behind a flag so that we can fix Chromium test
failures before turning it on.
Bug: chromium:1001768
Change-Id: I82d872f2ae39b5486f7d810a61ba00eeda1b3a62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270503
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
The blitAntiH() entry point for blitters takes (sparse) arrays for
coverage (aa) and run lengths (runs). These are marked as "const", but
some blitter "helpers" like SkRgnClipBlitter modify their contents
in-place (to efficiently handle subsets of the runs).
This is normally fine, but if the caller is repeatedly using the same
buffers (as we do in call_hline_blitter, which has a finite sized
tmp buffer), we need to defensively reset the starter values each time
through the local loop.
Bug: skia:9915
Change-Id: I0e701b74da2a57a3f5ddc0ae4b44550f8f75ad95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/271036
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
The SkRemoteGlyphCache_ReWriteGlyph checked that glyphs of
desparation were not overwritten by glyphs coming from the
Renderer. Since the search of desparation is no longer, this
test is not needed.
In addition:
* Remove unused call prepareForDrawingPathsCPU.
* Cleanup some comments
Change-Id: I1fbc3f84363c9093f5301985e8052f49bbb9356e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270996
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Split apart creation of the callback contexts and the backend textures
This allows the texture upload to be done separately on the
gpu-thread
Add a backendFormat member to the promise image callback context
This allows the promise images to be created in CreatePromiseImages
before the backend textures have been created (i.e., the backend
textures can now be created on the gpu-thread so we have no
guarantee they will be available when the SKP is being reinflated
w/ promise images)
Change-Id: I1e21385e450a5ef27dd6950d9d6aee737aa7515d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270939
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Rather than create a renderCmdEncoder per draw, we create it up front
and each draw just uses it. On a clear or upload we switch away and
then recreate it.
Bug: skia:
Change-Id: Ic6d612119ed3f7c41183d0186083deae14f96398
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270841
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Comparing y shader mode with x shader mode.
Change-Id: I022948596de966ae2d6179f7762e95300301757c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270942
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
TileData now gets a pointer to the final surface
This allows the tile to, once rendered, compose itself into
the final surface
DDLTileHelper now stores the TileData in a dumb array
SkTArray is overkill and, since TileData*s are being doled
out to threads, we never want reallocation
Added DDLTileHelper::kickOffThreadedWork
The old code only performed DDL creation in parallel. This
entry point also replays the DDLs and composes them into the
final surface in parallel
Change-Id: I66e02ef7f8291b4d402e22bee0ad3546e930609e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270796
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
esp. during serialization. We now store/serialize SkColor, which is
stable.
Change-Id: Ib453920a9a06647f44b33c9ae8af33936d6ead33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270997
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Originally there was a distinction WRT half pixel insetting, but as I
learned more about what the call sites expected the distinction was
erased. Callers with a SkIRect can just convert to SkRect.
Change-Id: Ib1e117baffdb532ba09a668da7f851d02c2c5206
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270941
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
std::unique_ptr is not always the same size as a pointer (shame! shame!).
AFAICT I added this terrible hack just to be able to make GrProcessorSet
store unique_ptrs of const GrFP rather than non-const FP, which is in no
way important.
Bug: skia:9908
Change-Id: I6e7eb0c0a7ad3473489e549909fa0b0a9eeec49b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270938
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I649f07e036f184e6dbb3a335bdd979dedea27ec8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270876
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Change-Id: I9d9c1ee0aacba8598869fb702436a7c6bf668323
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270838
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
I'm adding a new DDL Sink and would like to reuse this functionality.
TBR=egdaniel@google.com
Change-Id: I17ae929557400be4edd8df78ab6580872024bc15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270799
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: I12ea00b35967f13e81410c584e34b62eea6c2ffe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270445
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
74ab0bffb5..d5861a68d9
git log 74ab0bffb526..d5861a68d9f7 --date=short --first-parent --format='%ad %ae %s'
2020-02-13 ynovikov@chromium.org Fix ASAN errors in end2end tests.
2020-02-13 cnorthrop@google.com Vulkan: Update more bug numbers for ES 3.1
2020-02-13 cclao@google.com Vulkan: Fold glClear into draw call when command graph is disabled
2020-02-13 cnorthrop@google.com Capture/Replay: Track and restore mapped buffer data
2020-02-13 lexa.knyazev@gmail.com Vulkan: expose ANGLE_compressed_texture_etc
2020-02-13 julien.isorce@chromium.org Provide default implementation of rx::DisplayEGL
2020-02-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 45b9d01815d9..db0a1553991d (1 commits)
2020-02-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src d439b17da022..30794ac2f91b (12 commits)
2020-02-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 6cbb02e0dc93..ac4e1d236088 (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@d5861a68d9f7
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 stani@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: stani@google.com
Change-Id: Icb947ebb5b45da4dfd4a04a91681b61bb3f4dff3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270903
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Support MIP map for all but kRepeat.
Update texel_subset_ GMs to exercise newly supported modes.
Also makes GrTextureEffect do shader wrap modes for rectangle/
external textures even when not subsetted.
Change-Id: Ie2d299106120b5c6cc40365e8f300cc426dd5489
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268163
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: Ia1752196fd50ade2c3160dc401a36618433420d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270822
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Adds a brief discussion of supported compiler versions, and how to pull
changes and rebuild.
Bug: NONE
Change-Id: Ibd26e623c1435953969f9e69b00612fdff601881
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270296
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (recipe_engine) into this repository.
recipe_engine:
https://crrev.com/33fed4343ba9723f8d4e16dd04978f27490f0a57 (gbeaty@chromium.org)
Report run steps in the order they were run.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ieefbbaf6f85644c1f387d3bfed7815807d2e6723
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270770
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>
By moving this clamp until just before the store,
we're minimizing the chance we'd do something between
the clamp and store that undoes the clamp's guarantee,
e.g. unpremul().
It also means we can now try thinking of ways to do
the clamp and store simultaneously in an integrated
way if that makes things faster or more safe somehow.
E.g. to_unorm() could do the clamp itself.
Change-Id: If07d09b4b59a8a20b236b4954ca79c660d6be85b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270614
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Pretty straightforward, but needs the relaxed
asserts CL on the relation chain to draw all
GMs without asserting.
Change-Id: Ibe45922f9f5bc796117059b2bc73e83a90dc06a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270402
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The iPhone11 doesn't work with the old version, but our recipes don't
yet work on the new version, so I'm pinning the version in order to
stage the rollout of the new version.
Change-Id: I778c664aee7fbd33442d57d1b36607c8bc0f43e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270443
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
This reverts commit 7b2fcfbc5a.
Reason for revert: Need to loosen up error handling
Original change's description:
> Carve some helper functions off of GPUSink
>
> I'm adding a new DDL Sink and would like to reuse this functionality.
>
> Change-Id: I9f4535ca5e0f36925bf896cb0076eab73fe60fd1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270639
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,robertphillips@google.com
Change-Id: I97968834b5719c2061d53caff0dcf08a80917beb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270798
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
The stored rect will already be adjusted for origin and actual backing
surface height.
This is needed since proxy doesn't store origin anymore, it doesn't
make sense for it to hold onto a rect which itself is dependent on
origin.
Bug: skia:9556
Change-Id: I41a2755970b9d5d1518dfa16a61a78af7c8ae2c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270448
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
If we need to support the Ultras, I vote we use taskdrivers instead of
these old recipes.
Bug: skia:9899
Change-Id: I9a3adedde5e7b28d90d3f836ccab0c7fe40abd38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270440
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
I'm adding a new DDL Sink and would like to reuse this functionality.
Change-Id: I9f4535ca5e0f36925bf896cb0076eab73fe60fd1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270639
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
These make it easier for clients to create new surface characterizations that differ only a little from an existing surface characterization.
Change-Id: Iebd0b32ae941d3f91427927108d092cb5864b09f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270444
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
For each Lottie keyframe, we currently store interpolation
*segments*:
{
t0, v0
t1, v1
cubic_mapper
}
This is quite redundant:
- kf(n).t1 == kf(n+1).t0 for all keyframes
- kf(n).v1 == kf(n+1).v0 for all non-constant keyframes
Refactor to store single keyframe records:
{
t, v
mapping
}
To identify constant keyframes, since we no longer store
explicit hard stops, we now tag each record with a "mapping"
selector:
0 -> constant keyframe
1 -> linear keyframe
> 1 -> cubic keyframe (adjusted cubic mapper index)
This reduces the storage size by 2/5, and yields overall cleaner
logic (as we're no longer back-filling info as we parse).
Also add a handful of unit tests to lock down limit semantics
(keyframe segments are left-inclusive/right-exclusive).
Change-Id: I3ab0e5568b83ab8536a7d326dbc07c4c455e978d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270450
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Draw placeholder gray rectangles rather than omitting cols/rows.
Swap x and y mode iteration so they correspond with GM layout.
Change-Id: I3c2d95bcd5d684f5a5a99cb677c326864e13f252
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270641
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
I find this useful for managing which context is active on threads.
Change-Id: I655955a2351f273751681f080190ca684d29db4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270642
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
The tricky bit here is tracking when we care if the image is opaque,
and when we care if the shader output is opaque. These are usually
the same, except for decal tiling modes.
We can exploit both of these properties:
- if the shader output is opaque, set alpha to 1.0f after all
sampling and interpolation to retroactively skip any the unpacking
and interpolation we did to calculate alpha.
- if the input is opaque, set alpha to 1.0f after each sample to skip
unpacking it. This mostly just helps decal modes, as this will
itself all be skipped when the output is opaque.
Change-Id: Ie2954e59f0f9da8be7ad5d11f30fdfd4635c4b70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270656
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
At head we're asserting that our post-blend color is premul and alpha is in range
[0,1], which I think is still something we could assert if we were
dealing with real numbers. But we've got floats, with rounding,
precision loss, etc, and these asserts keep triggering oh so very
slightly, usually by 1 ulp.
We're using these asserts to check that we can skip a clamp to [0,1]
across all channels (notably, not r,g,b to alpha) for sane conversion to
packed fixed point. So first thing to try is relaxing the asserts to
exactly what they're enforcing, from asserting the color is premul and
in-gamut to just every channel is in [0,1].
I've never seen one of these small errors show up by the time we've
convert to fixed point to store the pixel, so perhaps we can move these
checks there instead somehow?
Change-Id: I2062dad8f9477d7e1a72063dc55fe185c7233384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270612
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
- Have SkVMBlitter also check the color type for opacity,
and commit to this opacity as a guarantee rather than optional
optimization.
- Have SkImageShader do the same when sampling.
This will make it easier to work with opaque formats like 888x, 101010x,
and should mean sampling from opaque images is a bit cheaper, skipping
any work to unpack and convert alpha.
Change-Id: I0d20418f8335bd07c8b1a80b042636424854df18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270607
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>