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/d05ca1537ccd7abb2e753b2e109567e18f0df4b7 Invert ios_internal fetch spec. (jbudorick@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I4eca8a99fedac79f2230f960650adc9627756198
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220744
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>
I just kind of remembered that if we're doing (xy+x)/256
and x is a destination channel and y is 255-sa, then you
can get the +x for free by multiplying by 256-sa instead.
(d * (255-sa) + d)
(d * (255-sa + 1))
(d * (256-sa) )
Duh. This is a trick we play in a lot of legacy code and
I've just now realized it's exactly equivalent to the trick
I want to play here... sigh.
Folding this math in kind of makes mul/mad_unorm8 moot.
Speed's getting good:
I32_SWAR: 0.3 ns/px
I32 : 0.55 ns/px
F32 : 0.8 ns/px
RP : 0.8 ns/px
Opts : 0.2 ns/px
Change-Id: I4d10db51ea80a3258c36e97b6b334ad253804613
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220708
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 084fa1b52f.
Reason for revert: Breaks google3 roller
Original change's description:
> [skottie] Use metrics for Shaper vertical alignment
>
> Relying on visual bounds yields incorrect results in some cases (e.g.
> leading/trailing empty lines).
>
> Update the vertical alignment logic to use metrics instead:
>
> - track the first line ascent and last line descent
> - compute content height as
>
> first_ascent + last_descent + line_height * (line_count - 1)
>
> - relocate Result::computeBounds() to the unit test (only user)
>
> Empirically, this causes top-alignment to be less snug (likely due to
> ascent slack in the tested fonts).
>
> Bug: skia:9098
> Change-Id: Ib92bf907af8889d6b0d0fda22ef41a2cc8b50901
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220656
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
TBR=bungeman@google.com,fmalita@chromium.org,reed@google.com
Change-Id: I2da2bf9b3bc4a2f333c0fbbd5a88434ef7ea65d5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220746
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@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/a74bd78e9ccd242af225629c3a105e209f5bf400 Make it clear that compile_single_file.py doesn't support Jumbo builds (sebmarchand@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib1aa978f0bc027023f99d27332f31a34f40a9004
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220742
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>
Change-Id: I86374ad15433675626f477243a9c66177eb0e21a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220740
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Any time we implement a Program::Instruction with multiple low-level
operations, we risk overwriting any arguments that alias the
destination.
This is why the _I32 tests are failing, mad_unorm8 where d == x. We
want (x*y+x)/256+z, but end up calculating (x*y+x*y)/256+z when x == d.
We could fix this by never allowing any arguments to alias any
destinations, but most instructions don't have this problem, and doing
that blindly would bloat the register count significantly.
We could fix this by knowing which Ops may be prone to aliasing in any
backend, but I find that somewhat error prone and also a little
abstraction- level-violatey. I would have thought, for instance, that
the mad_f32 Op might be vulnerable here, but it's actually not... in any
situation where there is aliasing, we actually lower it to a single
vfmadd instruction, never mul-then-add.
This sort of aliasing issue is going to keep coming back up again and
again, especially with 2-argument architectures like SSE. Luckily it's
trivially easy to fix by reserving a single tmp register to use as the
result of all but the final instructions.
The interpreter is safe because all its switch cases are single r(d) =
... statements. The right hand sides are evaluated before anything is
written back to a destination register slot. Had it been written a
little differently, it could have easily had this same aliasing issue.
Change-Id: I996392ef6af48268238ecae4a97d3bf3b4fba002
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220600
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This converts the SkSL interpreter to operate in SIMT fashion. It handles
all the same features as the previous scalar implementation, but operates
on N lanes at a time. (Currently 8).
It's modeled after GPU and other parallel architectures, using execution
masks to handle control flow, including divergent control-flow.
Change-Id: Ieb38ffe2f55a10f72bdab844c297126fe9bedb6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217122
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Bug: skia:8962
Change-Id: I0ab208063b6b7eca010f86d4d851ade23df5f849
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220529
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: chromium:972587
Change-Id: I05ab4393d4df20a8f55c4352d09f92f275cedf5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220736
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Relying on visual bounds yields incorrect results in some cases (e.g.
leading/trailing empty lines).
Update the vertical alignment logic to use metrics instead:
- track the first line ascent and last line descent
- compute content height as
first_ascent + last_descent + line_height * (line_count - 1)
- relocate Result::computeBounds() to the unit test (only user)
Empirically, this causes top-alignment to be less snug (likely due to
ascent slack in the tested fonts).
Bug: skia:9098
Change-Id: Ib92bf907af8889d6b0d0fda22ef41a2cc8b50901
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220656
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2589cdcc88..85fef1bc62
git log 2589cdcc88ec..85fef1bc62f8 --date=short --no-merges --format='%ad %ae %s'
2019-06-13 spang@chromium.org Vulkan: Build validation layers with asserts only
2019-06-12 clemendeng@google.com implement core egl image entry points
2019-06-12 jmadill@chromium.org Vulkan: Fix build with custom secondaries disabled.
2019-06-12 jmadill@chromium.org Roll SPIR-V headers and Tools.
2019-06-12 dongja@google.com Vulkan: add support for shadow samplers.
2019-06-12 jonahr@google.com Extend eglGetPlatformDisplay to allow feature overrides.
Created with:
gclient setdep -r third_party/externals/angle2@85fef1bc62f8
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=herb@google.com
Change-Id: I86cb59bef2fe3db96ded65c507a95134b717baf8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220680
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
5dc4d131fb..f6ed31446f
Created with:
gclient setdep -r ../src@f6ed31446f
The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=herb@google.com
Change-Id: I155b13c1864cf0a9d10ed884342bcf455c6b49af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220681
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This invoked operator bool(), so all arrays were parsed as having 1 column.
Change-Id: Iccd2a4fc80c905d8a5912f5639b0efbad050cbcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220530
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This trims one instruction of loop overhead, from
sub(N, K) // N -= 8
cmp(N, K-1) // if (N >= 8)
jg loop // goto loop;
to
sub(N, K) // N -= 8
... // if (N != 0)
jne loop // goto loop;
To make this work we pass only multiples of K into the
JIT'd code, so it always hits exactly N = 0 to exit.
Change-Id: I81c7a2f8d5927971059a68c5bce2e3d6fb0b8ff2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220576
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I43847609bfbdc769487cab5bf19f754615cc8ddd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220528
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
The mask-only special case for extract is wrong...
it never looked it its input!
This not only makes things correct-er, but oddly it also
makes them faster by breaking inter-loop data dependencies.
Disable tests for _I32... they're actually still broken
because of a much more systemic flaw in how I've evaluated
programs. The _F32 and _I32_SWAR JIT code and all interpreted
code is just getting lucky. o_O
While here, update the I32_SWAR code to use the same math as I32,
(x*y+x)/256 for unorm8 mul. This just helps keep me sane.
Change-Id: I1acc09adb84c426fca4b2be5ca8c2d46d9678dd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220577
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
At head we're redoing any n<8 tail from the start,
not continuing from (n/8)*8 like we'd want.
Change-Id: I1a3d24cdffc843bbe6f3e01a163b6e3a20fdd0ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220556
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Like any other Instruction the store*s are assigned
a destination register d, which doesn't really make
sense, but works perfectly as a temporary register.
This means store8 doesn't need to reserve xmm/ymm15
as a temporary... it already has one naturally. As
you might expect, the examples we have so far assign
the consumed input x register as the d register, so
things that used to look like
vpackusdw %ymm6 ,%ymm6 ,%ymm15
vpermq $0xd8 ,%ymm15,%ymm15
vpackuswb %ymm15,%ymm15,%ymm15
vmoq %xmm15,(%rdx)
now look more like
vpackusdw %ymm6,%ymm6,%ymm6
vpermq $0xd8,%ymm6,%ymm6
vpackuswb %ymm6,%ymm6,%ymm6
vmoq %xmm6,(%rdx)
Should be no perf difference, just simplified register bookkeeping.
This may suggest splitting load8/store8 into finer instructions,
two to do the physical loads and stores, and two for the 8->32
and 32->8 widen and narrow? On the other hand load8 really is
just one vpmovzxbd instruction, so it'd be a shame to split it.
I suspect this will become more clear as I add 16-bit support.
Change-Id: I7c2b4d6b1689d40b50382f65fc00c01c54529c8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220543
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: Id61b7b9d9bc7611727a27be0172fcabc2ef4345a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220522
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Change-Id: I0263b4ea8c60695c890f31d45198a7bd45ff3db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220536
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
During the dummy serialize step that dedupes typefaces, all work not relevant to typefaces is skipped.
For a picture that is approx 100% subpictures, serialization time is reduced by about 50%
Change-Id: I00a2579e935a15c5ccabc065b8326c0cad74244b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215121
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
1b5ad312c5..2589cdcc88
git log 1b5ad312c57a..2589cdcc88ec --date=short --no-merges --format='%ad %ae %s'
2019-06-11 clemendeng@google.com GLSLTest stack overflow bug fix
2019-06-11 clemendeng@google.com removed msvs_projects from devsetup
2019-06-11 jmadill@chromium.org Vulkan: Add missing command pool reset.
2019-06-11 dongja@google.com Vulkan: Add support for gl_VertexID/gl_InstanceID
2019-06-11 kbr@chromium.org Reland "Temporarily disable creating D3D debug device."
Created with:
gclient setdep -r third_party/externals/angle2@2589cdcc88ec
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=herb@google.com
Change-Id: Ie90cfa83f262b5a5c5bc053a6d1d90d4dda69c1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220478
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
3032e0d81b..5dc4d131fb
Created with:
gclient setdep -r ../src@5dc4d131fb
The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=herb@google.com
Change-Id: Iceecfccb3167dbe0f50ada31fa844610a882fdf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220479
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/bdc5cd8872c898ccb123cf7ea29d7a7975f28364 cq: use gerrit_changes from buildbucket, which are ordered by CQ daemon. (tandrii@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iad52667b14b95c0cf5e3e62dd7f768b7e731ab27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220416
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>
Make sure we make the dst be visited so that the allocator knows
it can reuse the dst copy texture.
Don't flip the copy rect for origin until after setting the bounds on
the copy op
Bug: chromium:972587
Change-Id: Ibb37e41b45e773e5df2c79c2e0e3ec79a871632f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220219
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Currently fails on GrContext's that don't support transfer buffers.
TODO: fallback to synchronous read pixels.
Bug: skia:8962
Change-Id: I464ea00519013a371ba29912a0220fa42b252243
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220299
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
We can use our hash to identify each CodeLoad entry, and that will mean
`perf inject -j` will dump out an .so for each function named
jitted-<pid>-<hash>.so, obviating the need for our own .bin dumps.
The .so's are nicer anyway because you can just `objdump -d` them;
they know what format, architecture, etc. they hold.
Change-Id: I701bda6bf55ac7716a2210b09373aa02e806c6ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220317
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Adds loads/stores (but not dst loads/gathers) for:
*fp16 single and two channel
*fp32 two channel
*normalized unsigned 8 bit two channel
*normalized unsigned 16 bit single and two channel
TODO: 4 channel unsigned normalized 16 bit.
MISSING: fp32 single channel. No matching current or future GrColorType
planned AFAIK.
Intent is to support all (noncompressed) GrColorType load/stores in
order to implement fallbacks for 3D API limitations on texture uploads
and render target readbacks (some of which require swizzling).
Also, can be used to support YUV<->RGB planar
splitters/joiners on CPU.
Bug: skia:8962
Change-Id: I258d5682a1f4025b31639a97b1a1a02077a2453f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219999
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Clients of glyphs now use the accessors to get advance information.
Scalers still have full access to the fAdvance{X|Y} fields.
Change-Id: I4e83621811ca65627356caaad7efe2327a45f8b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220217
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This will ensure that the headers from the dependencies will have
precedent over system headers, thus preventing situations where system
headers will block dependency headers and prevent compilation.
Change-Id: I0d480a6d3898f2da99cf2706c5335aaac05b4e4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220276
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Long term we'll need to spin up our own codegen rather than using xbyak,
since it uses exceptions and does not support ARM.
I really don't like how I've hacked in the caching of the JITted
program, but that'll change anyway when switching away from xbyak.
Performance looks good, better than (lowp) SkRasterPipeline
but not quite as good as hand-tuned code:
Opts: 0.2 ns/px
RP: 0.7
F32: 0.8
I32: 0.6
I32_SWAR: 0.5
ninja -C out dm nanobench && out/dm -m SkVM && gobjdump -D -b binary -mi386:x86-64 /tmp/code.bin --insn-width=10
Change-Id: I34ce46e1d3fe5aa75f42709049a92ac79bf48bbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
It is only used by SkScalerContext_DW to communicate with itself.
Change-Id: I2926a31e285368d1825b13e4ec1d597c6ddc7fe1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220257
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:8243
Change-Id: I33ae473a201ed69cbca726556a501c418749ac68
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220256
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: Ie96b3d0cb7e9f8d9070c25c90a41641ae3114ec8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220236
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:8243
Change-Id: I538e7181ab9922bbabb06e4acde1d560f2502de1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220216
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This is a reland of 10ad0b9b01
Original change's description:
> SkParagraph
>
> Change-Id: I0a4be75fd0c18021c201bcc1edfdfad8556edeff
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/192100
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
Change-Id: I46cf43eae693edf68e45345acd0eb39e04e02bfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219863
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
This device is very old and very unsupported. It doesn't officially come
with a browser (Chrome needs to be sideloaded).
Bug: skia:6531 skia:6670 skia:7286 skia:7921
Change-Id: I720cd3a40981694bf7befa5cafc700717dcd7cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219486
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Will trigger the following:
skia.primary:
Build-Debian9-Clang-arm-Release-Flutter_Android
Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework
Build-Debian9-Clang-host-sdk-Android_Framework
Build-Debian9-Clang-TAP-Presubmit-G3_Framework
luci.chromium.try:
mac_chromium_compile_dbg_ng
Bug: skia:9154
Change-Id: I88a21865777f7da52e8333920ad9d10da5e788ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219482
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Bug: oss-fuzz:14372
Change-Id: I9445a36a7d7b04ba63f1e5c9b1d1bd270708a7c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219481
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Bug: oss-fuzz:14409
Change-Id: I837083139489d46f7db2f697ce85a0cabf85fb94
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219997
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>