mtklein [Mon, 2 Feb 2015 20:22:07 +0000 (12:22 -0800)]
Atomics overhaul.
This merges and refactors SkAtomics.h and SkBarriers.h into SkAtomics.h and
some ports/ implementations. The major new feature is that we can express
memory orders explicitly rather than only through comments.
The porting layer is reduced to four template functions:
- sk_atomic_load
- sk_atomic_store
- sk_atomic_fetch_add
- sk_atomic_compare_exchange
From those four we can reconstruct all our previous sk_atomic_foo.
There are three ports:
- SkAtomics_std: uses C++11 <atomic>, used with MSVC
- SkAtomics_atomic: uses newer GCC/Clang intrinsics, used on not-MSVC where possible
- SkAtomics_sync: uses older GCC/Clang intrinsics, used where SkAtomics_atomic not supported
No public API changes.
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/
896553002
rmistry [Mon, 2 Feb 2015 20:08:18 +0000 (12:08 -0800)]
Add missing SK_OVERRIDE
Tested by running on clang head + ubuntu 14.04:
GYP_DEFINES=”skia_gpu=0 skia_warnings_as_errors=1" tools/xsan_build thread dm BUILDTYPE=Release
out/Release/dm -v
BUG=skia:3386
Review URL: https://codereview.chromium.org/
894833002
mtklein [Mon, 2 Feb 2015 19:49:05 +0000 (11:49 -0800)]
add missing SK_OVERRIDE
BUG=skia:
Review URL: https://codereview.chromium.org/
894153002
bungeman [Mon, 2 Feb 2015 19:19:44 +0000 (11:19 -0800)]
Don't read unecessary font files on Android.
With a new style fonts.xml (version >= 21) fallback fonts are specified
as font families without a name. The current code reads these, but then
also reads in the old fallback and vendor xml files. With this change,
when a new style xml file is encoutered, no further files will be read.
This both lowers memory use and speeds font lookup. Locally, this
change reduces the number of font families loaded on my 'L' device from
148 to 80. All of the families removed are duplicates.
Review URL: https://codereview.chromium.org/
888923003
stephana [Mon, 2 Feb 2015 18:02:48 +0000 (10:02 -0800)]
Revert of Revert of SSE4 opaque blend using intrinsics instead of assembly. (patchset #1 id:1 of https://codereview.chromium.org/
873553003/)
Reason for revert:
Reverted the wrong CL.
Original issue's description:
> Revert of SSE4 opaque blend using intrinsics instead of assembly. (patchset #16 id:300001 of https://codereview.chromium.org/
874863002/)
>
> Reason for revert:
> This causes a bug on the 'hittestpath' GM on MacMini 4,1
>
> See:
>
> https://gold.skia.org/#/triage/hittestpath?head=0
>
> for details.
>
> Original issue's description:
> > SSE4 opaque blend using intrinsics instead of assembly.
> >
> > Since we had such a hard time with the assembly versions of this blit (to the
> > point that we have them completely disabled everywhere), I thought I'd take
> > a shot at writing a version of the blit using intrinsics.
> >
> > The key feature of SSE4 we're exploiting is that we can use ptest (_mm_test*)
> > to skip the blend when the 16 src pixels we consider each loop are all opaque
> > or all transparent. _mm_shuffle_epi8 from SSSE3 also lends a hand to extract
> > all those alphas.
> >
> > It's worth looking to see if we can backport this type of logic to SSE2 using
> > _mm_movemask_epi8, or up to 32 pixels at a time using AVX.
> >
> > My local performance testing doesn't show this to be an unambiguous win
> > (there are probably microbenchmarks and SKPs where we'd be better off just
> > powering through the blend rather than looking at alphas), but the potential
> > does seem tantalizing enough to let skiaperf vet it on the bots. (< 1.0x is a win.)
> >
> > DM says it draws pixel perfect compare to the old code.
> >
> > Microbenchmarks:
> > bitmap_RGBA_8888_A_source_stripes_two 14us -> 14.4us 1.03x
> > bitmap_RGBA_8888_A_source_stripes_three 14.3us -> 14.5us 1.01x
> > bitmap_RGBA_8888_scale_bilerp 61.9us -> 62.2us 1.01x
> > bitmap_RGBA_8888_update_volatile_scale_rotate_bilerp 102us -> 101us 0.99x
> > bitmap_RGBA_8888_scale_rotate_bilerp 103us -> 101us 0.99x
> > bitmap_RGBA_8888_scale 18.4us -> 18.2us 0.99x
> > bitmap_RGBA_8888_A_scale_rotate_bicubic 71us -> 70us 0.99x
> > bitmap_RGBA_8888_update_scale_rotate_bilerp 103us -> 101us 0.99x
> > bitmap_RGBA_8888_A_scale_rotate_bilerp 112us -> 109us 0.98x
> > bitmap_RGBA_8888_update_volatile 5.72us -> 5.58us 0.98x
> > bitmap_RGBA_8888 5.73us -> 5.58us 0.97x
> > bitmap_RGBA_8888_update 5.78us -> 5.6us 0.97x
> > bitmap_RGBA_8888_A_scale_bilerp 70.7us -> 68us 0.96x
> > bitmap_RGBA_8888_A_scale_bicubic 23.7us -> 21.8us 0.92x
> > bitmap_RGBA_8888_A 13.9us -> 10.9us 0.78x
> > bitmap_RGBA_8888_A_source_opaque 14us -> 6.29us 0.45x
> > bitmap_RGBA_8888_A_source_transparent 14us -> 3.65us 0.26x
> >
> > Running over our ~70 SKP web page captures, this looks like we spend 0.7x
> > the time in S32A_Opaque_BlitRow compared to the SSE2 version, which should
> > be a decent predictor of real-world impact.
> >
> > BUG=chromium:399842
> >
> > Committed: https://skia.googlesource.com/skia/+/
04bc91b972417038fecfa87c484771eac2b9b785
> >
> > CQ_EXTRA_TRYBOTS=client.skia:Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release-Trybot
> >
> > Committed: https://skia.googlesource.com/skia/+/
6dbfb21a6c88af6d94e8c823c3ad559f1a41b493
>
> TBR=henrik.smiding@intel.com,mtklein@google.com,herb@google.com,reed@google.com,thakis@chromium.org,mtklein@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:399842
>
> Committed: https://skia.googlesource.com/skia/+/
4988891a1173cd405bf1c1dd3a3668c451f45e4c
TBR=henrik.smiding@intel.com,mtklein@google.com,herb@google.com,reed@google.com,thakis@chromium.org,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:399842
Review URL: https://codereview.chromium.org/
894083002
stephana [Mon, 2 Feb 2015 17:52:43 +0000 (09:52 -0800)]
Revert of SSE4 opaque blend using intrinsics instead of assembly. (patchset #16 id:300001 of https://codereview.chromium.org/
874863002/)
Reason for revert:
This causes a bug on the 'hittestpath' GM on MacMini 4,1
See:
https://gold.skia.org/#/triage/hittestpath?head=0
for details.
Original issue's description:
> SSE4 opaque blend using intrinsics instead of assembly.
>
> Since we had such a hard time with the assembly versions of this blit (to the
> point that we have them completely disabled everywhere), I thought I'd take
> a shot at writing a version of the blit using intrinsics.
>
> The key feature of SSE4 we're exploiting is that we can use ptest (_mm_test*)
> to skip the blend when the 16 src pixels we consider each loop are all opaque
> or all transparent. _mm_shuffle_epi8 from SSSE3 also lends a hand to extract
> all those alphas.
>
> It's worth looking to see if we can backport this type of logic to SSE2 using
> _mm_movemask_epi8, or up to 32 pixels at a time using AVX.
>
> My local performance testing doesn't show this to be an unambiguous win
> (there are probably microbenchmarks and SKPs where we'd be better off just
> powering through the blend rather than looking at alphas), but the potential
> does seem tantalizing enough to let skiaperf vet it on the bots. (< 1.0x is a win.)
>
> DM says it draws pixel perfect compare to the old code.
>
> Microbenchmarks:
> bitmap_RGBA_8888_A_source_stripes_two 14us -> 14.4us 1.03x
> bitmap_RGBA_8888_A_source_stripes_three 14.3us -> 14.5us 1.01x
> bitmap_RGBA_8888_scale_bilerp 61.9us -> 62.2us 1.01x
> bitmap_RGBA_8888_update_volatile_scale_rotate_bilerp 102us -> 101us 0.99x
> bitmap_RGBA_8888_scale_rotate_bilerp 103us -> 101us 0.99x
> bitmap_RGBA_8888_scale 18.4us -> 18.2us 0.99x
> bitmap_RGBA_8888_A_scale_rotate_bicubic 71us -> 70us 0.99x
> bitmap_RGBA_8888_update_scale_rotate_bilerp 103us -> 101us 0.99x
> bitmap_RGBA_8888_A_scale_rotate_bilerp 112us -> 109us 0.98x
> bitmap_RGBA_8888_update_volatile 5.72us -> 5.58us 0.98x
> bitmap_RGBA_8888 5.73us -> 5.58us 0.97x
> bitmap_RGBA_8888_update 5.78us -> 5.6us 0.97x
> bitmap_RGBA_8888_A_scale_bilerp 70.7us -> 68us 0.96x
> bitmap_RGBA_8888_A_scale_bicubic 23.7us -> 21.8us 0.92x
> bitmap_RGBA_8888_A 13.9us -> 10.9us 0.78x
> bitmap_RGBA_8888_A_source_opaque 14us -> 6.29us 0.45x
> bitmap_RGBA_8888_A_source_transparent 14us -> 3.65us 0.26x
>
> Running over our ~70 SKP web page captures, this looks like we spend 0.7x
> the time in S32A_Opaque_BlitRow compared to the SSE2 version, which should
> be a decent predictor of real-world impact.
>
> BUG=chromium:399842
>
> Committed: https://skia.googlesource.com/skia/+/
04bc91b972417038fecfa87c484771eac2b9b785
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/
6dbfb21a6c88af6d94e8c823c3ad559f1a41b493
TBR=henrik.smiding@intel.com,mtklein@google.com,herb@google.com,reed@google.com,thakis@chromium.org,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:399842
Review URL: https://codereview.chromium.org/
873553003
bungeman [Mon, 2 Feb 2015 17:27:14 +0000 (09:27 -0800)]
Add resourcePath to running dm on Android doc.
Without specifying the resource path a number of tests and gms do not
work properly. The example given in the docs should specify the
resource path so that the example run is exemplary.
Review URL: https://codereview.chromium.org/
898453003
qiankun.miao [Mon, 2 Feb 2015 14:28:53 +0000 (06:28 -0800)]
Optimize SSE2 opaque blend
Backport optimization from https://codereview.chromium.org/
874863002/.
Microbenchmarks data compared to previous SSE2 implementation:
bitmap_BGRA_8888_A_source_stripes_three 7.52us -> 8.67us 1.15x
bitmap_BGRA_8888_A_source_stripes_two 7.48us -> 8.56us 1.15x
bitmap_BGRA_8888_update_scale_rotate_bilerp 63.4us -> 64us 1.01x
bitmap_BGRA_8888_update_volatile 3.31us -> 3.33us 1.01x
bitmap_BGRA_8888_scale 11.1us -> 11.2us 1x
bitmap_BGRA_8888_scale_bilerp 35.8us -> 35.9us 1x
bitmap_BGRA_8888 3.33us -> 3.33us 1x
bitmap_BGRA_8888_A_scale_rotate_bicubic 66.7us -> 66.5us 1x
bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 65.1us -> 64us 0.98x
bitmap_BGRA_8888_scale_rotate_bilerp 65.1us -> 64us 0.98x
bitmap_BGRA_8888_A_scale_bicubic 30.6us -> 29.9us 0.98x
bitmap_BGRA_8888_A_scale_bilerp 42.7us -> 41.4us 0.97x
bitmap_BGRA_8888_A_scale_rotate_bilerp 71us -> 67.7us 0.95x
bitmap_BGRA_8888_A 7.44us -> 5.7us 0.77x
bitmap_BGRA_8888_A_source_opaque 7.46us -> 3.72us 0.5x
bitmap_BGRA_8888_A_source_transparent 7.46us -> 1.96us 0.26x
BUG=skia:
Review URL: https://codereview.chromium.org/
886403002
fmalita [Mon, 2 Feb 2015 13:25:04 +0000 (05:25 -0800)]
Disable LCD text when rasterizing SkPictureShader tiles.
BUG=chromium:453299
R=reed@google.com
Review URL: https://codereview.chromium.org/
884163003
skia.buildbots [Mon, 2 Feb 2015 06:36:03 +0000 (22:36 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
890293003
reed [Mon, 2 Feb 2015 03:01:04 +0000 (19:01 -0800)]
allow GMs to animate
BUG=skia:
Review URL: https://codereview.chromium.org/
888283002
skia.buildbots [Sun, 1 Feb 2015 06:53:02 +0000 (22:53 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
888343002
bsalomon [Sun, 1 Feb 2015 04:10:56 +0000 (20:10 -0800)]
Revert of Move npot resizing out of GrContext and simplify GrContext texture functions. (patchset #10 id:200001 of https://codereview.chromium.org/
882223003/)
Reason for revert:
perf fix didn't fix the cr webgl conformance tests
Original issue's description:
> Move npot resizing out of GrContext and simplify GrContext texture functions.
>
> Committed: https://skia.googlesource.com/skia/+/
8a8100349105c8c6de39fcb34e47679da7a67f54
>
> Committed: https://skia.googlesource.com/skia/+/
6c96672491b04cb782bce8fee778124df66524a0
TBR=robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
887303002
mtklein [Sun, 1 Feb 2015 04:00:58 +0000 (20:00 -0800)]
SVG backend in DM
Not enabled by default, but this should get you SKPs, GMs etc for free to play with.
$ out/Debug/dm -w svgs --src gm skp --config svg
BUG=skia:
Review URL: https://codereview.chromium.org/
892693002
bsalomon [Sun, 1 Feb 2015 03:27:53 +0000 (19:27 -0800)]
Move npot resizing out of GrContext and simplify GrContext texture functions.
Committed: https://skia.googlesource.com/skia/+/
8a8100349105c8c6de39fcb34e47679da7a67f54
Review URL: https://codereview.chromium.org/
882223003
Brian Salomon [Sat, 31 Jan 2015 19:29:16 +0000 (14:29 -0500)]
Remove extraneous newline.
TBR=mtklein@google.com
Review URL: https://codereview.chromium.org/
878333004
bsalomon [Sat, 31 Jan 2015 15:51:14 +0000 (07:51 -0800)]
Add standard way to indicate GM is GPU-only.
TBR=egdaniel@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/
869393007
fmalita [Sat, 31 Jan 2015 15:02:18 +0000 (07:02 -0800)]
Revert of Move npot resizing out of GrContext and simplify GrContext texture functions. (patchset #9 id:160001 of https://codereview.chromium.org/
882223003/)
Reason for revert:
webGL conformance failures:
WebglConformance.conformance_textures_tex_image_and_sub_image_2d_with_video
WebglConformance.conformance_textures_texture_npot_video
https://codereview.chromium.org/
892773003/
http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/29272
Original issue's description:
> Move npot resizing out of GrContext and simplify GrContext texture functions.
>
> Committed: https://skia.googlesource.com/skia/+/
8a8100349105c8c6de39fcb34e47679da7a67f54
TBR=robertphillips@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
868233005
skia.buildbots [Sat, 31 Jan 2015 07:00:10 +0000 (23:00 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
875243006
bungeman [Sat, 31 Jan 2015 03:58:19 +0000 (19:58 -0800)]
Update dump code in FontConfigParser test.
This code is still quite useful for debugging, but has bit rotted.
Update to match current structure of code.
Review URL: https://codereview.chromium.org/
890073002
bungeman [Fri, 30 Jan 2015 23:35:09 +0000 (15:35 -0800)]
Convert FamilyData to Skia style field names.
The Skia convention is to prefix field names with 'f'.
This change is mostly mechanical.
Review URL: https://codereview.chromium.org/
892733002
bungeman [Fri, 30 Jan 2015 23:24:49 +0000 (15:24 -0800)]
Do not leak FamilyData in Android SkFontMgr.
Currently, it appears one FamilyData is leaking per scanned file.
This also cleans up the hanging currentFamily memory management.
Review URL: https://codereview.chromium.org/
889943005
reed [Fri, 30 Jan 2015 22:54:38 +0000 (14:54 -0800)]
export SkImageInfo
BUG=skia:
Review URL: https://codereview.chromium.org/
893603005
bungeman [Fri, 30 Jan 2015 22:52:58 +0000 (14:52 -0800)]
Do not add indirection to XML_Parser.
The expat type XML_Parser is already a pointer, so pass it by value
instead of by indirection.
Review URL: https://codereview.chromium.org/
880783003
robertphillips [Fri, 30 Jan 2015 22:44:22 +0000 (14:44 -0800)]
Revert of Add device space "nudge" to gpu draws (patchset #6 id:90001 of https://codereview.chromium.org/
877473005/)
Reason for revert:
Blink layout tests this time :(
Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/
2d55d07501c56310f97d2092d789a2bc9fa01b78
>
> Committed: https://skia.googlesource.com/skia/+/
b9329991426d0b77ea194a380d72d73fb855308a
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/
886153002
mtklein [Fri, 30 Jan 2015 21:22:23 +0000 (13:22 -0800)]
Suggestions and merge in the other CL.
I had some suggestions on the subset CL, and took the opportunity to rebase it
against head and merge in the other color type CL.
BUG=skia:
Review URL: https://codereview.chromium.org/
893703002
scroggo [Fri, 30 Jan 2015 21:16:02 +0000 (13:16 -0800)]
Reland "remove unused SkAvoidXfermode"
(patchset #2 id:20001 of https://codereview.chromium.org/
860583002/)
SkAvoidXfermode has been moved into Android, so it is safe to remove.
Review URL: https://codereview.chromium.org/
890893003
brucedawson [Fri, 30 Jan 2015 20:57:50 +0000 (12:57 -0800)]
Disable the noisiest /analyze warning in Chrome. ~3,700/12,000
Decades ago Intel decided that the bsr (Bit Scan Reverse) instruction
should have undefined results if its argument is zero. This probably
makes the instruction harder to implement and it definitely makes it
more difficult to use.
In SkCLZ_portable it requires a check for a zero argument, but despite
that check /analyze still warns that _BitScanReverse might fail
(because it doesn't know what can cause failures). Because this warning
occurs in a frequently included header file it ends up being very noisy,
accounting for ~30% of all warnings (before deduplication).
Suppressing this useless warning will make the raw results easier to
look through.
Review URL: https://codereview.chromium.org/
872673007
bsalomon [Fri, 30 Jan 2015 20:43:44 +0000 (12:43 -0800)]
Move npot resizing out of GrContext and simplify GrContext texture functions.
Review URL: https://codereview.chromium.org/
882223003
caryclark [Fri, 30 Jan 2015 20:37:02 +0000 (12:37 -0800)]
First cut at cleaning up Sergio's example code and moving some common code to SkWindow.
Eventually, this will be moved to be a peer of SampleApp so it is compiled by the bots to avoid future bit rot.
Also ignore XCode auto-generated flag in CommandLineFlags, and remove the unused multiple-example part.
Review URL: https://codereview.chromium.org/
890873003
mtklein [Fri, 30 Jan 2015 19:42:31 +0000 (11:42 -0800)]
DM: paths as implict strings too.
BUG=skia:
Review URL: https://codereview.chromium.org/
891823002
robertphillips [Fri, 30 Jan 2015 19:24:50 +0000 (11:24 -0800)]
Add device space "nudge" to gpu draws
This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
BUG=423834
Committed: https://skia.googlesource.com/skia/+/
2d55d07501c56310f97d2092d789a2bc9fa01b78
Review URL: https://codereview.chromium.org/
877473005
halcanary [Fri, 30 Jan 2015 19:00:12 +0000 (11:00 -0800)]
DM::NullSink
Motivation: The null sink can act as a control for experiments.
Review URL: https://codereview.chromium.org/
873723007
halcanary [Fri, 30 Jan 2015 17:58:58 +0000 (09:58 -0800)]
dm: allow multiple --images flags, allow single files
Review URL: https://codereview.chromium.org/
872993005
fmalita [Fri, 30 Jan 2015 17:03:29 +0000 (09:03 -0800)]
Initial SVG backend stubbing
This adds SkSVGDevice and a small utility for converting SKP files to SVG (skp2svg).
R=reed@google.com,jcgregorio@google.com
BUG=skia:3368
Review URL: https://codereview.chromium.org/
892533002
scroggo [Fri, 30 Jan 2015 15:34:48 +0000 (07:34 -0800)]
Remove unused globalRef/globalUnref.
BUG=skia:1482
Review URL: https://codereview.chromium.org/
887993003
halcanary [Fri, 30 Jan 2015 15:31:19 +0000 (07:31 -0800)]
dm: allow multiple --skp flags, allow single files
Review URL: https://codereview.chromium.org/
885353002
scroggo [Fri, 30 Jan 2015 15:14:03 +0000 (07:14 -0800)]
Remove unused hasLocalMatrix.
This method is not called anywhere on Android or Chrome, and it
has a FIXME that it may not be correct.
A client can still getLocalMatrix().isIdentity() if they need this
information. (It has the same FIXME, and perhaps we should revisit
it. In the meantime, this convenience method is not needed.)
Review URL: https://codereview.chromium.org/
882443007
halcanary [Fri, 30 Jan 2015 15:00:42 +0000 (07:00 -0800)]
documentation: Writing Unit and Rendering Tests
Review URL: https://codereview.chromium.org/
885133002
scroggo [Fri, 30 Jan 2015 14:19:44 +0000 (06:19 -0800)]
Define SK_OVERRIDE when building for Android framework.
Review URL: https://codereview.chromium.org/
868243003
skia.buildbots [Fri, 30 Jan 2015 06:57:53 +0000 (22:57 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
893513002
herb [Fri, 30 Jan 2015 04:31:04 +0000 (20:31 -0800)]
Start SampleApp documentation
BUG=skia:359
Review URL: https://codereview.chromium.org/
883203003
qiankun.miao [Fri, 30 Jan 2015 02:36:52 +0000 (18:36 -0800)]
Remove always true if statement and commented out code in GrBitmapTextContext
BUG=skia:
Review URL: https://codereview.chromium.org/
873473008
qiankun.miao [Fri, 30 Jan 2015 02:35:25 +0000 (18:35 -0800)]
Clean up commented out code in GrDistanceFieldTextContext
SkCLZ isn't used any more. Just remove it.
BUG=skia:
Review URL: https://codereview.chromium.org/
888533004
scroggo [Thu, 29 Jan 2015 21:52:13 +0000 (13:52 -0800)]
Update comment for SkMallocPixelRef::NewWithProc.
Add a comment about using a NULL ReleaseProc.
BUG=skia:2185
Review URL: https://codereview.chromium.org/
885573005
reed [Thu, 29 Jan 2015 20:59:11 +0000 (12:59 -0800)]
share code between arcTo and addArc, update dox
BUG=skia:
Review URL: https://codereview.chromium.org/
863123005
fmalita [Thu, 29 Jan 2015 20:24:24 +0000 (12:24 -0800)]
Conservative blob bounds cleanup
* drop SK_SUPPORT_LEGACY_BLOB_BOUNDS
* remove horizontal & fully position tight bounds support (always using
conservative bounds now)
* special-case horizontal run bounds logic to avoid unnecessary vertical
min-maxing
R=reed@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/
858153007
reed [Thu, 29 Jan 2015 20:03:58 +0000 (12:03 -0800)]
reorg some path routines, preparing to switch arcs to conics
BUG=skia:
Review URL: https://codereview.chromium.org/
887783002
mtklein [Thu, 29 Jan 2015 20:03:53 +0000 (12:03 -0800)]
Make SkWriter32::snapshotAsData() a dumb copy.
SkWriter32::snapshotAsData() is no longer performance critical.
It's only used when we're serializing to disk.
BUG=skia:2289
Review URL: https://codereview.chromium.org/
875403005
scroggo [Thu, 29 Jan 2015 19:58:51 +0000 (11:58 -0800)]
Remove SkProxyCanvas.
SkProxyCanvas is redundant with SkNWayCanvas, and means another class
we have to keep in sync with the SkCanvas interface.
Remove tests which use an SkProxyCanvas.
Requires a change to chromium.
BUG=skia:3279
BUG=skia:500
Review URL: https://codereview.chromium.org/
886813002
scroggo [Thu, 29 Jan 2015 19:58:45 +0000 (11:58 -0800)]
SkStream::read() only returns 0 at end.
All implementations behave this way, so respect it.
BUG=skia:2936
Review URL: https://codereview.chromium.org/
888703002
reed [Thu, 29 Jan 2015 18:48:16 +0000 (10:48 -0800)]
add new gm for SkPath::addArc()
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/
888663002
caryclark [Thu, 29 Jan 2015 18:44:35 +0000 (10:44 -0800)]
remove experimental pixman files
these files have never worked, and contain nother of value
R=reed@google.com
Review URL: https://codereview.chromium.org/
890703002
caryclark [Thu, 29 Jan 2015 18:43:09 +0000 (10:43 -0800)]
The original instantiation of pathops was in the experimental/Intersection directory. Anything of value has been copied into the mainline.
The obsolete gyp files are also included, along with a pixman test that never functioned but accidentally referenced some of these deleted files.
Review URL: https://codereview.chromium.org/
867213004
humper [Thu, 29 Jan 2015 18:26:37 +0000 (10:26 -0800)]
enable subpixel text on the subpixel translate sample
BUG=skia:
Review URL: https://codereview.chromium.org/
885783006
bsalomon [Thu, 29 Jan 2015 18:07:32 +0000 (10:07 -0800)]
Use draws instead of clears as temporary workaround for Qualcomm stencil clear bug
Review URL: https://codereview.chromium.org/
885863003
caryclark [Thu, 29 Jan 2015 17:59:53 +0000 (09:59 -0800)]
fix bit rotted code to create test font
BUG=skia:3080
R=reed@google.com
Review URL: https://codereview.chromium.org/
884873007
jcgregorio [Thu, 29 Jan 2015 17:55:14 +0000 (09:55 -0800)]
Add docs for running docserver locally.
BUG=skia:3346
Review URL: https://codereview.chromium.org/
891483002
caryclark [Thu, 29 Jan 2015 17:45:44 +0000 (09:45 -0800)]
fix parsing SVG strings to paths with comma delimiters
BUG=skia:583
R=reed@google.com
Review URL: https://codereview.chromium.org/
885103002
bsalomon [Thu, 29 Jan 2015 17:34:18 +0000 (09:34 -0800)]
Apply prePathMatrix in SkGpuDevice as view matrix preconcat when possible
BUG=skia:3055
Review URL: https://codereview.chromium.org/
886713006
fmalita [Thu, 29 Jan 2015 15:44:24 +0000 (07:44 -0800)]
More win64 warning fixes.
TBR=bsalomon@google.com
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/
887713002
bsalomon [Thu, 29 Jan 2015 15:13:20 +0000 (07:13 -0800)]
Fix win64 warnings.
TBR=joshualitt@google.com
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/
884253004
mlee [Thu, 29 Jan 2015 14:22:41 +0000 (06:22 -0800)]
skia: blend32_16_row for neon version
This includes blend32_16_row neon implementation
for aarch32 and aarch64.
For performance,
blend32_16_row is called in following tests in nanobench.
- Xfermode_SrcOver
- tablebench
- rotated_rects_bw_alternating_transparent_and_opaque_srcover
- rotated_rects_bw_changing_transparent_srcover
- rotated_rects_bw_same_transparent_srcover
- luma_colorfilter_large
- luma_colorfilter_small
- chart_bw
I can see perf increase in following two tests, especially. For others, looks
similar.
For each, I tried to run two times.
1) Xfermode_SrcOver
<org>
- D/skia ( 2000): 3M 57 17.3µs 17.4µs 17.4µs 17.7µs 1%
█▃▂▃▂▂▂▁▃▂ 565 Xfermode_SrcOver
- D/skia ( 1915): 3M 70 13.5µs 16.9µs 16.7µs 18.8µs 9%
▆█▄▅█▁▅▅▆▄ 565 Xfermode_SrcOver
<new>
- D/skia ( 2000): 3M 8 11.6µs 11.8µs 12.1µs 14.4µs 7%
▃█▁▁▂▁▁▁▂▂ 565 Xfermode_SrcOver
- D/skia ( 2004): 3M 62 10.3µs 12.9µs 13µs 15.2µs 11%
█▅▅▆▁▅▅▅▇▃ 565 Xfermode_SrcOver
2)
luma_colorfilter_large
<org>
- D/skia ( 2000): 159M 8 136µs 136µs 136µs 139µs 1%
█▃▁▂▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 1915): 158M 2 135µs 177µs 182µs 269µs 22%
▆▃█▁▁▃▃▃▃▃ 565 luma_colorfilter_large
<new>
- D/skia ( 2000): 157M 5 84.2µs 85.3µs 87.5µs 110µs 9%
█▁▂▁▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 2004): 159M 6 84.7µs 110µs 112µs 144µs 18%
█▄▇▁▁▄▃▄▄▆ 565 luma_colorfilter_large
Review URL: https://codereview.chromium.org/
847363002
robertphillips [Thu, 29 Jan 2015 01:37:33 +0000 (17:37 -0800)]
Revert of Add device space "nudge" to gpu draws (patchset #5 id:70001 of https://codereview.chromium.org/
877473005/)
Reason for revert:
Chrome pixel test :(
Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/
2d55d07501c56310f97d2092d789a2bc9fa01b78
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/
890433003
robertphillips [Thu, 29 Jan 2015 01:33:45 +0000 (17:33 -0800)]
Revert of Remove 'f' from 0.05f in shader code (patchset #1 id:1 of https://codereview.chromium.org/
888483002/)
Reason for revert:
Chrome pixel test
Original issue's description:
> Remove 'f' from 0.05f in shader code
>
> TBR=bsalomon@google.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/
1726997861fac8daa8213d1a51d5c8fbe44428d1
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
890433002
mtklein [Wed, 28 Jan 2015 23:32:24 +0000 (15:32 -0800)]
Revert of DM::SKPSrc::size() reports correct size. (patchset #3 id:40001 of https://codereview.chromium.org/
863243005/)
Reason for revert:
Still no good on Chrome OS bot:
http://build.chromium.org/p/client.skia/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/628/steps/dm/logs/stdio
Original issue's description:
> DM::SKPSrc::size() reports correct size.
>
> Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
>
> Motivation:
> Improve PDF testing by printing the entire SKP.
>
> Source: http://crrev.com/
863243004
>
> BUG=skia:3365
>
> Committed: https://skia.googlesource.com/skia/+/
441b10eac09a1f44983e35da827a6b438a409e63
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Release-Trybot,Test-ChromeOS-Alex-GMA3150-x86-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/
d4dd58e43ca4551531ad6a9f54bfc5632ea45a80
TBR=halcanary@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3365
Review URL: https://codereview.chromium.org/
886543005
robertphillips [Wed, 28 Jan 2015 23:19:53 +0000 (15:19 -0800)]
Remove 'f' from 0.05f in shader code
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
888483002
robertphillips [Wed, 28 Jan 2015 22:41:57 +0000 (14:41 -0800)]
Add device space "nudge" to gpu draws
This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
BUG=423834
Review URL: https://codereview.chromium.org/
877473005
hcm [Wed, 28 Jan 2015 22:16:43 +0000 (14:16 -0800)]
authors update- add herb and reorganize
BUG=skia:
TBR=reed@google.com
NOTRY=true
Review URL: https://codereview.chromium.org/
881993002
herb [Wed, 28 Jan 2015 22:12:12 +0000 (14:12 -0800)]
Make char hash dynamic when needed.
BUG=skia:
Review URL: https://codereview.chromium.org/
880383002
mtklein [Wed, 28 Jan 2015 21:59:42 +0000 (13:59 -0800)]
DM::SKPSrc::size() reports correct size.
Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
Motivation:
Improve PDF testing by printing the entire SKP.
Source: http://crrev.com/
863243004
BUG=skia:3365
Committed: https://skia.googlesource.com/skia/+/
441b10eac09a1f44983e35da827a6b438a409e63
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Release-Trybot
Review URL: https://codereview.chromium.org/
863243005
reed [Wed, 28 Jan 2015 21:28:53 +0000 (13:28 -0800)]
Use murmur3 finisher to improve font hash efficiency.
Add dump() method to inspect glyphcache strikes.
Murmur addition improves hash efficient roughly 50%
BUG=skia:
Review URL: https://codereview.chromium.org/
877113002
sugoi [Wed, 28 Jan 2015 21:15:32 +0000 (13:15 -0800)]
Fixed clusterfuzz issue
BUG=448423
Review URL: https://codereview.chromium.org/
881423002
jvanverth [Wed, 28 Jan 2015 21:08:40 +0000 (13:08 -0800)]
Use distance fields for glyphs > 256 pt, before switching to paths.
BUG=452313
Review URL: https://codereview.chromium.org/
862403004
joshualitt [Wed, 28 Jan 2015 20:53:54 +0000 (12:53 -0800)]
GrBatchPrototype
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
d15e4e45374275c045572b304c229237c4a82be4
Committed: https://skia.googlesource.com/skia/+/
d5a7db4a867c7e6ccf8451a053d987b470099198
Review URL: https://codereview.chromium.org/
845103005
mtklein [Wed, 28 Jan 2015 20:04:08 +0000 (12:04 -0800)]
Revert of DM::SKPSrc::size() reports correct size. (patchset #1 id:1 of https://codereview.chromium.org/
863243005/)
Reason for revert:
OOM on 32-bit machines.
Original issue's description:
> DM::SKPSrc::size() reports correct size.
>
> Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
>
> Motivation:
> Improve PDF testing by printing the entire SKP.
>
> Source: http://crrev.com/
863243004
>
> BUG=skia:3365
>
> Committed: https://skia.googlesource.com/skia/+/
441b10eac09a1f44983e35da827a6b438a409e63
TBR=halcanary@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3365
Review URL: https://codereview.chromium.org/
884743003
halcanary [Wed, 28 Jan 2015 19:45:58 +0000 (11:45 -0800)]
DM::PDFSink::draw excercises multi-page pdf
BUG=skia:3365
Review URL: https://codereview.chromium.org/
881343002
reed [Wed, 28 Jan 2015 19:44:48 +0000 (11:44 -0800)]
add more checks for computing clamp counts, remove dead code
BUG=448299
Review URL: https://codereview.chromium.org/
886473003
bsalomon [Wed, 28 Jan 2015 19:39:48 +0000 (11:39 -0800)]
Fix wrapped content keys for npot textures.
Review URL: https://codereview.chromium.org/
879193002
mtklein [Wed, 28 Jan 2015 19:35:18 +0000 (11:35 -0800)]
Fold gmtoskp into DM, as --src gm --config skp.
BUG=skia:
Review URL: https://codereview.chromium.org/
885733002
mtklein [Wed, 28 Jan 2015 19:12:25 +0000 (11:12 -0800)]
DM::SKPSrc::size() reports correct size.
Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
Motivation:
Improve PDF testing by printing the entire SKP.
Source: http://crrev.com/
863243004
BUG=skia:3365
Review URL: https://codereview.chromium.org/
863243005
joshualitt [Wed, 28 Jan 2015 19:08:00 +0000 (11:08 -0800)]
dstread gm
TBR=
BUG=skia:
Review URL: https://codereview.chromium.org/
883053002
senorblanco [Wed, 28 Jan 2015 19:01:06 +0000 (11:01 -0800)]
Add a flag to flush the canvases during SkMultiPictureDraw::draw().
This is necessary for multisampling, so that each multisampled render
target resolves before Chrome's compositor attempts to draw the
texture.
BUG=skia:
Review URL: https://codereview.chromium.org/
878653004
fmalita [Wed, 28 Jan 2015 18:56:06 +0000 (10:56 -0800)]
Conservative SkTextBlob bounds.
Compute cheaper/more conservative text blob bounds based on the typeface
maximum glyph bbox.
BUG=chromium:451401
R=reed@google.com,bungeman@google.com
Review URL: https://codereview.chromium.org/
886473002
skia.buildbots [Wed, 28 Jan 2015 18:56:00 +0000 (10:56 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
879203002
mtklein [Wed, 28 Jan 2015 17:39:10 +0000 (09:39 -0800)]
Add a script to fetch the latest SKPs.
I keep forgetting how best to do this.
NOTRY=true
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/
880283002
mtklein [Wed, 28 Jan 2015 15:20:28 +0000 (07:20 -0800)]
add a paranoid assert
NOTREECHECKS=true
BUG=chromium:399842
Review URL: https://codereview.chromium.org/
881253003
joshualitt [Wed, 28 Jan 2015 14:54:30 +0000 (06:54 -0800)]
Revert of GrBatchPrototype (patchset #32 id:630001 of https://codereview.chromium.org/
845103005/)
Reason for revert:
One last try to fix mac perf regression
Original issue's description:
> GrBatchPrototype
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
d15e4e45374275c045572b304c229237c4a82be4
>
> Committed: https://skia.googlesource.com/skia/+/
d5a7db4a867c7e6ccf8451a053d987b470099198
TBR=bsalomon@google.com,kkinnunen@nvidia.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
877393002
joshualitt [Wed, 28 Jan 2015 00:27:12 +0000 (16:27 -0800)]
whitespace
NOTREECHECKS=True
NOTRY=True
TBR=
BUG=skia:
Review URL: https://codereview.chromium.org/
885443003
mtklein [Tue, 27 Jan 2015 23:39:19 +0000 (15:39 -0800)]
Revert of patch from issue
885453002 at patchset 20001 (crrev.com/
885453002#ps20001) (patchset #1 id:1 of https://codereview.chromium.org/
881953002/)
Reason for revert:
==32435==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x621000d8cd00
Lots of info here:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/1198/steps/dm/logs/stdio
Original issue's description:
> patch from issue
885453002 at patchset 20001 (http://crrev.com/
885453002#ps20001)
>
> Make the char cache dynamic in SkGlyphCache
> because it is rarely used.
>
> Landing on behalf of Herb.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
95faa61d63a6f62916f6f7be58c4624da8357e3b
TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
881023003
joshualitt [Tue, 27 Jan 2015 23:39:06 +0000 (15:39 -0800)]
GrBatchPrototype
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
d15e4e45374275c045572b304c229237c4a82be4
Review URL: https://codereview.chromium.org/
845103005
mtklein [Tue, 27 Jan 2015 23:10:17 +0000 (15:10 -0800)]
patch from issue
885453002 at patchset 20001 (crrev.com/
885453002#ps20001)
Make the char cache dynamic in SkGlyphCache
because it is rarely used.
Landing on behalf of Herb.
BUG=skia:
Review URL: https://codereview.chromium.org/
881953002
mtklein [Tue, 27 Jan 2015 22:46:26 +0000 (14:46 -0800)]
add -r to DM
$ out/Debug/dm -w good
$ out/Debug/dm -r good -w bad && echo "hooray no diffs!"
BUG=skia:
Review URL: https://codereview.chromium.org/
863093003
mtklein [Tue, 27 Jan 2015 22:35:18 +0000 (14:35 -0800)]
SSE4 opaque blend using intrinsics instead of assembly.
Since we had such a hard time with the assembly versions of this blit (to the
point that we have them completely disabled everywhere), I thought I'd take
a shot at writing a version of the blit using intrinsics.
The key feature of SSE4 we're exploiting is that we can use ptest (_mm_test*)
to skip the blend when the 16 src pixels we consider each loop are all opaque
or all transparent. _mm_shuffle_epi8 from SSSE3 also lends a hand to extract
all those alphas.
It's worth looking to see if we can backport this type of logic to SSE2 using
_mm_movemask_epi8, or up to 32 pixels at a time using AVX.
My local performance testing doesn't show this to be an unambiguous win
(there are probably microbenchmarks and SKPs where we'd be better off just
powering through the blend rather than looking at alphas), but the potential
does seem tantalizing enough to let skiaperf vet it on the bots. (< 1.0x is a win.)
DM says it draws pixel perfect compare to the old code.
Microbenchmarks:
bitmap_RGBA_8888_A_source_stripes_two 14us -> 14.4us 1.03x
bitmap_RGBA_8888_A_source_stripes_three 14.3us -> 14.5us 1.01x
bitmap_RGBA_8888_scale_bilerp 61.9us -> 62.2us 1.01x
bitmap_RGBA_8888_update_volatile_scale_rotate_bilerp 102us -> 101us 0.99x
bitmap_RGBA_8888_scale_rotate_bilerp 103us -> 101us 0.99x
bitmap_RGBA_8888_scale 18.4us -> 18.2us 0.99x
bitmap_RGBA_8888_A_scale_rotate_bicubic 71us -> 70us 0.99x
bitmap_RGBA_8888_update_scale_rotate_bilerp 103us -> 101us 0.99x
bitmap_RGBA_8888_A_scale_rotate_bilerp 112us -> 109us 0.98x
bitmap_RGBA_8888_update_volatile 5.72us -> 5.58us 0.98x
bitmap_RGBA_8888 5.73us -> 5.58us 0.97x
bitmap_RGBA_8888_update 5.78us -> 5.6us 0.97x
bitmap_RGBA_8888_A_scale_bilerp 70.7us -> 68us 0.96x
bitmap_RGBA_8888_A_scale_bicubic 23.7us -> 21.8us 0.92x
bitmap_RGBA_8888_A 13.9us -> 10.9us 0.78x
bitmap_RGBA_8888_A_source_opaque 14us -> 6.29us 0.45x
bitmap_RGBA_8888_A_source_transparent 14us -> 3.65us 0.26x
Running over our ~70 SKP web page captures, this looks like we spend 0.7x
the time in S32A_Opaque_BlitRow compared to the SSE2 version, which should
be a decent predictor of real-world impact.
BUG=chromium:399842
Committed: https://skia.googlesource.com/skia/+/
04bc91b972417038fecfa87c484771eac2b9b785
CQ_EXTRA_TRYBOTS=client.skia:Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release-Trybot
Review URL: https://codereview.chromium.org/
874863002
bungeman [Tue, 27 Jan 2015 19:01:42 +0000 (11:01 -0800)]
Remove unused methods from SkScalerContext.
The methods getLocalMatrixWithoutTextSize and
getSingleMatrixWithoutTextSize on SkScalerContext were added as a
temporary measure for CoreText issues. Now that the CoreText
SkScalerContext is using other means to fix these issues more completely,
remove these now unused methods.
Review URL: https://codereview.chromium.org/
883833002
bungeman [Tue, 27 Jan 2015 18:41:17 +0000 (10:41 -0800)]
SkFontHost_FreeType takes advantage of SkStreamAsset.
With recent changes, SkTypeface now deals in SkStreamAsset instead of
SkStream. Take advantage of this for performance with FreeType.
Review URL: https://codereview.chromium.org/
882763002
bsalomon [Tue, 27 Jan 2015 17:56:04 +0000 (09:56 -0800)]
Fix GPU resource cache related assertions.
Review URL: https://codereview.chromium.org/
879963003
djsollen [Tue, 27 Jan 2015 17:01:01 +0000 (09:01 -0800)]
Setup Android framework builds to use the appropriate shared lib defines.
Review URL: https://codereview.chromium.org/
864043005
halcanary [Tue, 27 Jan 2015 16:38:35 +0000 (08:38 -0800)]
sk_tool_utils::draw_checkerboard uses SkXfermode::kSrc_Mode to fix valgrind error.
Review URL: https://codereview.chromium.org/
877103002
jvanverth [Tue, 27 Jan 2015 16:19:33 +0000 (08:19 -0800)]
Use highp for distance field texture coordinates.
Addresses issues with wavy text (probably due to low-precision aliasing)
BUG=429080
Review URL: https://codereview.chromium.org/
879603003