mtklein [Wed, 4 Feb 2015 15:06:26 +0000 (07:06 -0800)]
Revert of Build in C++11 mode on Unix-like bots. (patchset #4 id:60001 of https://codereview.chromium.org/
868233008/)
Reason for revert:
Perf-Ubuntu12, and Test-Ubuntu12, Build-Nacl all too old.
Android and Chrome OS builders look ok.
Android testers look ok. Chrome OS testers haven't run yet.
Original issue's description:
> Build in C++11 mode on Unix-like bots.
>
> Mac and Windows bots are already building in C++11 mode.
> This turns on the rest, mostly to see what work remains.
>
> This will probably break a few bots. It'd be nice if we could let those
> all come in as red before reverting this so I can see the full list to fix.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
779e49602a9c8f4d2799504822e01bcafbcaa534
TBR=stephana@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
879803003
mtklein [Wed, 4 Feb 2015 14:55:36 +0000 (06:55 -0800)]
Build in C++11 mode on Unix-like bots.
Mac and Windows bots are already building in C++11 mode.
This turns on the rest, mostly to see what work remains.
This will probably break a few bots. It'd be nice if we could let those
all come in as red before reverting this so I can see the full list to fix.
BUG=skia:
Review URL: https://codereview.chromium.org/
868233008
egdaniel [Wed, 4 Feb 2015 14:25:28 +0000 (06:25 -0800)]
Revert "Move DstCopy on gpu into the GrXferProcessor."
This reverts commit
74a11753604768bf461b80cabb66060e8564d82c.
TBR=joshualitt@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
3e9dfdb3784c0cbfecf7589a74aa9aff7ef40abd
Review URL: https://codereview.chromium.org/
896163003
egdaniel [Wed, 4 Feb 2015 14:20:25 +0000 (06:20 -0800)]
Revert of Revert "Move DstCopy on gpu into the GrXferProcessor." (patchset #1 id:1 of https://codereview.chromium.org/
896163003/)
Reason for revert:
failed on my manual revert
Original issue's description:
> Revert "Move DstCopy on gpu into the GrXferProcessor."
>
> This reverts commit
74a11753604768bf461b80cabb66060e8564d82c.
>
> TBR=joshualitt@google.com,bsalomon@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
3e9dfdb3784c0cbfecf7589a74aa9aff7ef40abd
TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
900913002
egdaniel [Wed, 4 Feb 2015 14:14:22 +0000 (06:14 -0800)]
Revert "Move DstCopy on gpu into the GrXferProcessor."
This reverts commit
74a11753604768bf461b80cabb66060e8564d82c.
TBR=joshualitt@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
896163003
tfarina [Wed, 4 Feb 2015 14:05:58 +0000 (06:05 -0800)]
Fix the URL for previewing Markdown changes.
BUG=None
R=jcgregorio@google.com
NOTRY=true
Review URL: https://codereview.chromium.org/
883003004
skia.buildbots [Wed, 4 Feb 2015 07:27:08 +0000 (23:27 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
876313006
kkinnunen [Wed, 4 Feb 2015 06:20:19 +0000 (22:20 -0800)]
Remove unused and unimplemented abstract functions from GrRenderTarget
Remove unused and unimplemented abstract functions from GrRenderTarget.
The functions might cause confusion later.
BUG=skia:3388
Review URL: https://codereview.chromium.org/
865603007
fmalita [Wed, 4 Feb 2015 01:47:12 +0000 (17:47 -0800)]
[SkSVGDevice] Initial text support
R=reed@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/
899683002
joshualitt [Wed, 4 Feb 2015 01:40:16 +0000 (17:40 -0800)]
fixing GrBatch leak
TBR=
BUG=skia:
Review URL: https://codereview.chromium.org/
886393008
joshualitt [Wed, 4 Feb 2015 00:41:41 +0000 (16:41 -0800)]
Hairline batch
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
6eff8701f027016fbb3147412ec2292dcec2b7f5
Committed: https://skia.googlesource.com/skia/+/
658d55cd6121c67488aaf5d0832c9712737f26a5
Review URL: https://codereview.chromium.org/
876673002
joshualitt [Tue, 3 Feb 2015 23:07:51 +0000 (15:07 -0800)]
Dash using vertex attributes for interval and stroke width
BUG=skia:
Review URL: https://codereview.chromium.org/
892203003
djsollen [Tue, 3 Feb 2015 23:07:30 +0000 (15:07 -0800)]
Cleanup the android scripts.
Rename a few files to make their function clearer.
Update other files to remove dead code or improve function.
Review URL: https://codereview.chromium.org/
865943007
egdaniel [Tue, 3 Feb 2015 23:02:43 +0000 (15:02 -0800)]
Move DstCopy on gpu into the GrXferProcessor.
BUG=skia:
Review URL: https://codereview.chromium.org/
885923002
reed [Tue, 3 Feb 2015 23:02:24 +0000 (15:02 -0800)]
add textual overview
BUG=skia:
Review URL: https://codereview.chromium.org/
898573002
mtklein [Tue, 3 Feb 2015 21:38:58 +0000 (13:38 -0800)]
Port SkRefCnt.h to new SkAtomics.h
This adds sk_memory_barrier(), implemented using sk_atomic_fetch_add() on an uninitialized variable. If that becomes a problem we can drop this to the porting layer, using std::atomic_thread_fence() / __atomic_thread_fence() / __sync_synchronize().
The big win is that ref() doesn't generate a memory barrier any more on ARM.
This is an instance of SkSafeRef() in SkPaint(const SkPaint&) after this CL:
4d0: 684a ldr r2, [r1, #4]
4d2: 6018 str r0, [r3, #0]
4d4: b13a cbz r2, 4e6 <_ZN7SkPaintC1ERKS_+0x2e>
4d6: 1d10 adds r0, r2, #4
4d8: e850 4f00 ldrex r4, [r0]
4dc: 3401 adds r4, #1
4de: e840 4500 strex r5, r4, [r0]
4e2: 2d00 cmp r5, #0
4e4: d1f8 bne.n 4d8 <_ZN7SkPaintC1ERKS_+0x20>
Here's the before, pretty much the same with two memory barriers surrounding the ref():
4d8: 684a ldr r2, [r1, #4]
4da: 6018 str r0, [r3, #0]
4dc: b15a cbz r2, 4f6 <_ZN7SkPaintC1ERKS_+0x3e>
4de: 1d10 adds r0, r2, #4
4e0: f3bf 8f5f dmb sy
4e4: e850 4f00 ldrex r4, [r0]
4e8: 3401 adds r4, #1
4ea: e840 4500 strex r5, r4, [r0]
4ee: 2d00 cmp r5, #0
4f0: d1f8 bne.n 4e4 <_ZN7SkPaintC1ERKS_+0x2c>
4f2: f3bf 8f5f dmb sy
The miscellaneous files in here are just fixups to explicitly include SkMutex.h,
instead of leeching it off SkRefCnt.h.
No public API changes.
TBR=reed@google.com
Build trybots seem hosed.
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
896803002
mtklein [Tue, 3 Feb 2015 21:24:36 +0000 (13:24 -0800)]
Build in C++11 mode on Macs.
Build trybots are not triggering.
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
894773002
tfarina [Tue, 3 Feb 2015 20:07:20 +0000 (12:07 -0800)]
Remove link to Push application.
BUG=None
R=jcgregorio@google.com
NOTRY=true
Review URL: https://codereview.chromium.org/
884203002
caryclark [Tue, 3 Feb 2015 19:16:05 +0000 (11:16 -0800)]
remove remaining parts of SkExample
R=reed@google.com
Review URL: https://codereview.chromium.org/
895103002
hcm [Tue, 3 Feb 2015 19:10:56 +0000 (11:10 -0800)]
add new Skia team member to committers list
BUG=skia:
NOTRY=true
TBR=rmistry@google.com
Review URL: https://codereview.chromium.org/
885493008
egdaniel [Tue, 3 Feb 2015 19:10:51 +0000 (11:10 -0800)]
Save and temp dst and src FBO on GrGLGpu and use the temp FBOs for copySurface if needed.
BUG=skia:
Review URL: https://codereview.chromium.org/
893703003
joshualitt [Tue, 3 Feb 2015 16:40:22 +0000 (08:40 -0800)]
Revert of Hairline batch (patchset #17 id:360001 of https://codereview.chromium.org/
876673002/)
Reason for revert:
still a performance regression
Original issue's description:
> Hairline batch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
6eff8701f027016fbb3147412ec2292dcec2b7f5
>
> Committed: https://skia.googlesource.com/skia/+/
658d55cd6121c67488aaf5d0832c9712737f26a5
TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
882883003
Mike Klein [Tue, 3 Feb 2015 15:43:28 +0000 (10:43 -0500)]
Land Ben's 32-bit symlink script.
BUG=skia:
Review URL: https://codereview.chromium.org/
890613005
Thiago Farina [Tue, 3 Feb 2015 15:12:54 +0000 (13:12 -0200)]
Fix references to https://sites.google.com/site/skiadocs/.
Point them to their equivalent in https://skia.org.
BUG=None
R=hcm@google.com, jcgregorio@google.com
NOTRY=true
Review URL: https://codereview.chromium.org/
856353004
joshualitt [Tue, 3 Feb 2015 14:56:44 +0000 (06:56 -0800)]
Hairline batch
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
6eff8701f027016fbb3147412ec2292dcec2b7f5
Review URL: https://codereview.chromium.org/
876673002
fmalita [Tue, 3 Feb 2015 13:44:40 +0000 (05:44 -0800)]
[SkSVGDevice] Initial shader/gradient support
* linear gradient support (based on shawcroft@google.com's CL)
* generic paint resources reorg
* opacity support
R=reed@google.com,mtklein@google.com,halcanary@google.com
Review URL: https://codereview.chromium.org/
892973002
Ravi Mistry [Tue, 3 Feb 2015 13:41:46 +0000 (08:41 -0500)]
Whitespace change to test new compile bots
skia.buildbots [Tue, 3 Feb 2015 06:56:50 +0000 (22:56 -0800)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
897603002
bsalomon [Tue, 3 Feb 2015 05:19:50 +0000 (21:19 -0800)]
Add texture create/upload stats and make nanobench have explicit gpu stats flag
Review URL: https://codereview.chromium.org/
891973002
bsalomon [Tue, 3 Feb 2015 05:06:23 +0000 (21:06 -0800)]
Revert of Make the glyph array entries inline. (patchset #10 id:170001 of https://codereview.chromium.org/
885903002/)
Reason for revert:
I suspect this is causing the off-by-one character issues that show up in gold.skia.org as of now. All the errors I've seen are on a Win7 bot. Example:
good:
https://gold.skia.org/img/images/
35396bb0d299b81c0031dc0632a019d4.png
bad:
https://gold.skia.org/img/images/
484e511f9e696d95031cd25aeae59da0.png
Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
4c08f16b252a55e438a61f26e5581394ed177da1
TBR=mtklein@google.com,reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
897463004
mtklein [Tue, 3 Feb 2015 02:26:03 +0000 (18:26 -0800)]
patch from issue
886233004 at patchset 40001 (crrev.com/
886233004#ps40001)
... with changes proposed in the review.
BUG=skia:
Review URL: https://codereview.chromium.org/
894013002
joshualitt [Tue, 3 Feb 2015 02:12:39 +0000 (18:12 -0800)]
Revert of Hairline batch (patchset #16 id:300001 of https://codereview.chromium.org/
876673002/)
Reason for revert:
Regression
Original issue's description:
> Hairline batch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
6eff8701f027016fbb3147412ec2292dcec2b7f5
TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
894273002
herb [Tue, 3 Feb 2015 01:47:31 +0000 (17:47 -0800)]
Make the glyph array entries inline.
BUG=skia:
Review URL: https://codereview.chromium.org/
885903002
bsalomon [Tue, 3 Feb 2015 01:25:26 +0000 (17:25 -0800)]
make getContentKey() available in GrGpuResource public interface
TBR=robertphillips@google.com
Committed: https://skia.googlesource.com/skia/+/
85ed2db092e75db41b711b9116a8d5b465fc2b0c
Review URL: https://codereview.chromium.org/
886313005
joshualitt [Tue, 3 Feb 2015 01:19:40 +0000 (17:19 -0800)]
Hairline batch
BUG=skia:
Review URL: https://codereview.chromium.org/
876673002
Ravi Mistry [Tue, 3 Feb 2015 00:40:55 +0000 (19:40 -0500)]
Whitespace change to test new GCE compile bot
Ravi Mistry [Tue, 3 Feb 2015 00:05:32 +0000 (19:05 -0500)]
Whitespace change to test new GCE compile bot
Ravi Mistry [Mon, 2 Feb 2015 23:16:22 +0000 (18:16 -0500)]
Whitespace change to test new GCE compile bot
stephana [Mon, 2 Feb 2015 22:52:11 +0000 (14:52 -0800)]
Revert of make getContentKey() available in GrGpuResource public interface (patchset #2 id:20001 of https://codereview.chromium.org/
886313005/)
Reason for revert:
This causes in one case the linker and in the other the compiler to segfault. On
Test-Ubuntu12-ShuttleA-GTX660-x86_64-Debug/Release
Original issue's description:
> make getContentKey() available in GrGpuResource public interface
>
> TBR=robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/
85ed2db092e75db41b711b9116a8d5b465fc2b0c
TBR=robertphillips@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
864343005
bsalomon [Mon, 2 Feb 2015 22:08:09 +0000 (14:08 -0800)]
make getContentKey() available in GrGpuResource public interface
TBR=robertphillips@google.com
Review URL: https://codereview.chromium.org/
886313005
mtklein [Mon, 2 Feb 2015 21:24:37 +0000 (13:24 -0800)]
DM: wire up --leaks / -l again
No public API changes.
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/
893043002
bsalomon [Mon, 2 Feb 2015 21:00:10 +0000 (13:00 -0800)]
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
Review URL: https://codereview.chromium.org/
882223003
caryclark [Mon, 2 Feb 2015 20:55:14 +0000 (12:55 -0800)]
move HelloWorld to be a peer of SampleApp
This is working towards making a simple example part of the buildbot compile step and removing SkExamples from the experimental directory.
This works on Mac, Windows, and Linux but isn't complete for Android, ChromeOS and iOS.
Review URL: https://codereview.chromium.org/
886413004
reed [Mon, 2 Feb 2015 20:55:02 +0000 (12:55 -0800)]
add SkAnimTimer, SPACE = pause/resume, ESP = stop
BUG=skia:
Review URL: https://codereview.chromium.org/
894083003
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