Bug: skia:9538
Change-Id: I0e2bed991e099646c89fd87895851caf5d0734b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251658
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:9588
Change-Id: Idb80f1714865c2aa81615b8fc26afd591c3f4b24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252179
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Program caching makes whether or not this is safe a little subtle. It
is safe and I've tried to explain the subtlety in comments in the new
non-virtual Shader program() hook that forces all opaque shaders to
opaque, and in comments in SkVMBlitter where we make use of isOpaque().
I think this is the tidiest way to get the optimization and safety,
though it is a little awkward to have to write epic cross-referenced
comments explaining first why it might not generally be safe to use
shader->isOpaque() to make decisions in the blitter, and then how we
actually have made it really quite safe.
Many tiny partial-coverage diffs from how coverage interacts differently
with SrcOver and Src, SrcOver folding coverage into the src color before
blending with dst, Src just lerping with dst.
This all comes together really quite magically, changing a program to
draw a solid opaque color from this,
11 registers, 41 instructions:
r0 = uniform32 arg(0) 0
r1 = splat FF (3.5733111e-43)
r2 = extract r0 8 r1
r3 = splat 80 (1.793662e-43)
r4 = extract r0 24 r1
r5 = sub_i32 r1 r4
r6 = extract r0 16 r1
r0 = extract r0 0 r1
loop:
r7 = load32 arg(1)
r8 = extract r7 8 r1
r8 = mul_i32 r8 r5
r8 = add_i32 r8 r3
r9 = shr_i32 r8 8
r9 = add_i32 r8 r9
r9 = shr_i32 r9 8
r9 = add_i32 r2 r9
r8 = extract r7 0 r1
r8 = mul_i32 r8 r5
r8 = add_i32 r8 r3
r10 = shr_i32 r8 8
r10 = add_i32 r8 r10
r10 = shr_i32 r10 8
r10 = add_i32 r6 r10
r9 = pack r10 r9 8
r10 = extract r7 16 r1
r10 = mul_i32 r10 r5
r10 = add_i32 r10 r3
r8 = shr_i32 r10 8
r8 = add_i32 r10 r8
r8 = shr_i32 r8 8
r8 = add_i32 r0 r8
r7 = extract r7 24 r1
r7 = mul_i32 r7 r5
r7 = add_i32 r7 r3
r10 = shr_i32 r7 8
r10 = add_i32 r7 r10
r10 = shr_i32 r10 8
r10 = add_i32 r4 r10
r10 = pack r8 r10 8
r10 = pack r9 r10 16
store32 arg(1) r10
to this,
4 registers, 9 instructions:
r0 = uniform32 arg(0) 0
r1 = splat FF (3.5733111e-43)
r2 = extract r0 8 r1
r3 = extract r0 16 r1
r2 = pack r3 r2 8
r0 = extract r0 0 r1
r1 = pack r0 r1 8
r1 = pack r2 r1 16
loop:
store32 arg(1) r1
Change-Id: Ic1e2ac1496252970743ef44b17908965bc73e384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252198
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Now that we've turned paint colors into shaders where appropriate,
SkVMBlitter's Uniforms struct is only really holding one byte of
coverage for when we're in RLE coverage mode.
We can just pass that coverage as its own uniform pointer, much like we
pass a pointer for masks. This means there's no need to think about the
(notional) Uniforms struct any more, and leaves the first, main uniform
parameter holding shader uniforms exclusively.
Change-Id: I1c45d8c3280816836b011e22e07a666952a9df63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252080
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Change-Id: Iaf1daad359cd7478ed42966bd65231ff108e602c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251661
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This means we can share programs with color shaders
whether they come through as a paint color or shader.
The GM now only ever JITs one program.
Change-Id: If61f9e7b79aa6b8fd1de7c16ff52f78bfd7dc4ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252079
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
I'd like to express each of the special automatic features of the color
pipeline as their own effects in SkVMBlitter where possible. This turns
the modulate-shader-by-paint-alpha feature into an explicit shader
wrapper.
This also sort of shows off how program() and uniforms() can chain
together. This is the same basic form that SkColorFilterShader will
take, since scaling by alpha is basically a color filter. (And indeed,
I may follow up by reformulating this as AlphaColorFilter once I get
color filters and SkColorFilterShader working with SkVMBlitter.)
Other next steps may involve factoring the pipeline's implicit
use-the-paint-color shader into an explicit shader.
Just FYI on the bug, thinking along its lines.
Bug: skia:9572
Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER
Change-Id: Ia9a5a10d685d2ca0a5e15792c7cf39d8b32a20a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252022
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
When rendering to a BottomUp render target, the SRIR-V codegen
needs a uniform to pass the render target height. (This is kind
of hacky, since it depends on being the last uniform, but it's
the same hack that the Vulkan backend uses.)
Change-Id: I520478d5e26504c7884daa72024fafe943a07294
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252182
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
It is, arguably, not a good metric but the max number of AA Quads that are merged or chained together across all Skia's GMs and SKPs is 276.
This should also reduce the memory consumed from 245,760 bytes to 30,720 bytes.
Bug: b/143572065
Change-Id: Ia70d3671fa33e0d84b38b4788e8c74ef98a9661e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252176
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change variable name to reflect that.
Also, pass '--no-checkout' to git-clone to suppress "warning: remote
HEAD refers to nonexistent ref, unable to checkout" error message.
Also, change '@' to '>' in verbose output if anything changes in the
repositories.
Change-Id: I27d0b026d121c163e378f34ab2bbe81233ddba1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252177
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
This is handy for cutting irrelevant tool costs from a CPU profile.
Change-Id: Ib1d5a64a01866333e4e83351571dcb7c282ee9dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252152
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This lets skia_renderer include SkBlendModePriv.h without breaking the
chrome build.
Change-Id: Icb96dbc50199c3a98bc7d5d2b643afda0297cf97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252178
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
It's not drawing anything earthshattering, but it does act as an easy
way to exercise some interesting code paths in SkVMBlitter, here first
program caching based on shader program and not shader identity.
With today's shader caching patches, this makes 2 calls to
skvm::Builder::done(), JITing the program, while if you patched this in
at head you'd see 3. I'd like it to get down to 1 by converting paint
colors to color shaders.
Change-Id: I042f4d44a792b46e5543794c853e4ef0d95b11ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252029
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
1) add a hash() method to skvm::Builder
This is cheap... we're hashing instructions as we go anyway.
Small refactoring to keep all its hashing close and clear.
2) split Key into Key (a small bytey hashy identifier)
and Params (a pointery typey payload struct)
3) dummy call ->program() on shaders as we build our Key,
and then include that dummy Builder's hash() in the key.
This lets us reuse cached programs when effects vary only in their
uniforms. The approach in 3) is meant to be a first draft, a kind of
can-we-get-away-with-this hack. We may need to change this with,
- stronger equality than just a hash of the instructions;
- a new cheaper hook that avoids the cost of skvm::Builder.
Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER
Change-Id: I5f3839d3f7de40043fcb6177b617672c56f0eb70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252019
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I8ef13b78a5f2f49ff9c59db285b3e0e7ee708c9b
Bug: chromium:960620
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252160
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Chrome has been rebaselined:
https://chromium-review.googlesource.com/c/chromium/src/+/1893372
Change-Id: Iff21ca606bf2e5fa0b8946940cab0b06fbd11e47
Bug: skia:9543
Change-Id: Iff21ca606bf2e5fa0b8946940cab0b06fbd11e47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252158
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This should, hopefully, be faster on GL as we will only need to update the index-range for a draw rather than the offset into an vertex buffer.
Change-Id: I09e54c37262168661443fa8bf8d3b43cd8faa9db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251757
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
These docker-based tests don't actually need a checkout, but removing it
is proving time consuming and syncs are timing out.
Probably related to skia:9588
Bug: skia:9588
Change-Id: I39532f1d9cd1f6116fab341e648a517b98a312c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252156
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
841b01678c..e96039218e
git log 841b01678c49..e96039218e9d --date=short --no-merges --format='%ad %ae %s'
2019-11-01 jmadill@chromium.org Capture/Replay: Correct a few GLenum replay issues.
2019-10-31 jmadill@chromium.org Capture/Replay: Implement GetFramebufferParameter capture.
2019-10-31 jmadill@chromium.org Win: Add ANGLE_WAIT_FOR_DEBUGGER option.
2019-10-31 sugoi@google.com Provoking vertex feature support enabled
2019-10-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader e1cda3916cee..fda994c63075 (2 commits)
2019-10-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 7e2cba6a5241..618ee509421f (3 commits)
Created with:
gclient setdep -r third_party/externals/angle2@e96039218e9d
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 jcgregorio@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=jcgregorio@google.com
Change-Id: I524b07247c46f62a93673e9cef42425b68546f38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252136
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.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/afc73d4e075d241d52b01b744e73111ee3f0c47c [buildbucket] Support custom field masks (smut@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: If8093d028fa1e3b81d631257859787530eef16c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252120
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>
Performance measurments showed that SkPackedGlyphID was too much
time.
SkDiffBench-lorem_ipsum 955µs -> 873µs
BUG=chromium:881505
Change-Id: I8d42f02d87817777cc7c95404c73c723f0bc100c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251818
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Bug: chromium:1018218
Change-Id: I9a33332a06a63075dd016f038d5cd4ede59f9a5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252042
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: I133fb0d5e154c2f01aba7ef2a7e1b87b6089a608
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251460
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This adds `shader && paint alpha < 1.0f` to the blitter Key, so we'll
generate and cache two different programs based on that bit.
I put a little bit of effort into a different approach, wrapping the
shader with a new shader that modulates by paint alpha when paint alpha
is less than one. This should work, but I realized that it would break
caching, since we're caching based on shader identity. (Not really
break, but make it ineffective.)
I've added some notes about cache keys in general, and that this wrapper
approach would make caching less effective is I think enough to make me
want to work out a "identify yourself except for uniforms" protocol for
shaders (really effects, eventually color filters will need it too).
Change-Id: I1a2a490657bf7442e79f87d80968302720265f7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251775
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Brace initilaization of a std::vector was starting our uniform buffer
out as a single byte, holding sizeof(Uniforms). I meant it to be
sizeof(Uniform) bytes, all zero...
That's fixed here, and was why scaling by paint alpha wasn't working.
Change-Id: Iad30d701aa175c74c9c5aaed8baf8279479188b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251753
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
There is now just one location that defines these transformations.
Change-Id: I06b2c81610cb5aec73daa39d130f9da610b668ef
Bug: skia:9543
Change-Id: I06b2c81610cb5aec73daa39d130f9da610b668ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251958
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Removes another redundant set of YUV matrices, and probably fixes errors
in the Rec.601 and Rec.709 matrices (they appear to have had incorrect
bias values based on 128 / 255 being zero).
Matrix changes affect layout tests, so guarding this in chromium:
https://chromium-review.googlesource.com/c/chromium/src/+/1890956
Change-Id: I3699a00c93eb10a9da14c881bfd338ce98249c7d
Bug: skia:9543
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251771
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
bb35bb4e53..841b01678c
git log bb35bb4e5379..841b01678c49 --date=short --no-merges --format='%ad %ae %s'
2019-10-30 ynovikov@chromium.org Suppress flaky dEQP-GLES3 test on Win7 NVIDIA D3D11
2019-10-30 jmadill@chromium.org Fix error string commas.
2019-10-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 42f885238114..7e2cba6a5241 (1 commits)
2019-10-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader f8f6103eb89f..e1cda3916cee (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@841b01678c49
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 jcgregorio@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.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=jcgregorio@google.com
Change-Id: I7c39352f87a3ab5aeb398a7f2874751fcdbe9497
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251896
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Additionally updated some calls upstack to pass in the views.
Bug: skia:9556
Change-Id: I2b6274cb1811b102713433d51a9b18d47778174a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251759
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Cuts down on the number of places that have redundant YUV matrices.
Also, there appears to have been a typo in the Rec709 matrix, so this
fixes that.
Change-Id: I91f2c772656095c52f53e09b1de04908f268fbb7
Bug: skia:9543
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251767
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
typename 'B0' is defined in sys/termios.h
Bug: none
Change-Id: I6a2e6eb1a91f123459087280b70493dab795bbd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249917
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Change-Id: Ie4611b4aae65aed5aa45be8841fbb7326bcfbf0b
Bug: skia:9581
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251773
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ic286357dc637edf0c8df003422a43252590250f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251768
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Also fix a link and a typo.
No-Try: true
Docs-Preview: https://skia.org/?cl=251765
Change-Id: I9204887fb4c07af1e07f3e7c5d24ef6029bf8d00
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251765
Commit-Queue: Ravi Mistry <rmistry@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Change-Id: I4d4a8409163c2b2d1773e395a73857626c45d406
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251752
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
We'll lean on them being folded away before choosing blitters.
That happens everywhere but in Google3 now, and there's no use
of SkVMBlitter outside our own testing, certainly not Google3.
Change-Id: Ic9725ffbad5f2226d5f030e82bd72500a624b1ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251740
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change RemoteStrikes to hold a very small summary of what has been
sent for each glyph, and only maintain full glyph information
until the next serialization. This greatly reduces memory used,
and improves average performance by 10% as measured by traces from
the top 10 websites.
BUG=chromium:881505
Change-Id: Id5c5d974e3c35a63d232bb62fc605e8472d926fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251237
Reviewed-by: Khushal Sagar <khushalsagar@google.com>
Commit-Queue: Herb Derby <herb@google.com>
The conversion math for a given space can be fully derived
from the Kr and Kb terms (plus the headroom/footroom), so
avoid redundant values that can be wrong.
And, no need to list every possible value of an enum param,
especially when the generated doxygen links to the type's
documentation, which has all the values listed.
Change-Id: I64ce8cfd5ec7ff74dc3b878202b13d0d483e1db6
Bug: skia:9543
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251764
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This should allow the bit field positions to be moved
around in the SkPackedGlyphID.
Change-Id: I85390f594a017b9df779f0a12e1f24c4d9e077dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251761
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>