hendrikw [Wed, 22 Jul 2015 16:30:08 +0000 (09:30 -0700)]
skia: GrGLAssembleGLInterface update load chromium extension functions
Command buffer will expose GL_CHROMIUM_framebuffer_multisample and
GL_CHROMIUM_map_sub, added support for these to enable interface
validation to succeed.
Review URL: https://codereview.chromium.org/
1248853003
msarett [Wed, 22 Jul 2015 16:08:28 +0000 (09:08 -0700)]
Fix Android framework build
The Android framework was failing on conditions in
libjpeg-turbo.gyp, even though libjpeg-turbo is listed
in dependencies! for the framework (maybe because I
forgot to add export_dependent_settings!). This is fixed
by rearranging the gyp file.
BUG=skia:
Review URL: https://codereview.chromium.org/
1249003002
jvanverth [Wed, 22 Jul 2015 15:41:51 +0000 (08:41 -0700)]
Fix tile drop-out on S4 for texture decal mode.
Switch to use highp on interpolants.
Also removes some unnecessary formatting.
BUG=skia:3381
Review URL: https://codereview.chromium.org/
1245703004
borenet [Wed, 22 Jul 2015 15:19:25 +0000 (08:19 -0700)]
Coverage: add a trace for not_covered_lines per file
Example output:
{
"build_number": "2",
"gitHash": "
71f5db892ee7ed9fbb573da28ccb906e18ba24a4",
"key": {
"arch": "x86_64",
"compiler": "Clang",
"configuration": "Coverage",
"cpu_or_gpu": "CPU",
"cpu_or_gpu_value": "AVX2",
"model": "GCE",
"os": "Ubuntu"
},
"results": {
"dm_DMGpuSupport_h": {
"coverage": {
"lines_not_covered": 6,
"options": {
"dir": "dm",
"fullname": "dm/DMGpuSupport.h",
"source_type": "coverage"
},
"percent": 33.
33333333333333
}
},
"dm_DMJsonWriter_cpp": {
......
BUG=skia:2430
Review URL: https://codereview.chromium.org/
1246043002
scroggo [Wed, 22 Jul 2015 14:16:20 +0000 (07:16 -0700)]
Add the ability to decode a subset to SkCodec
This allows codecs that support subsets natively (i.e. WEBP) to do so.
Add a field on SkCodec::Options representing the subset.
Add a method on SkCodec to find a valid subset which approximately
matches a desired subset.
Implement subset decodes in SkWebpCodec.
Add a test in DM for decoding subsets.
Notice that we only start on even boundaries. This is due to the
way libwebp's API works. SkWEBPImageDecoder does not take this into
account, which results in visual artifacts.
FIXME: Subsets with scaling are not pixel identical, but close. (This
may be fine, though - they are not perceptually different. We'll just
need to mark another set of images in gold as valid, once
https://skbug.com/4038 is fixed, so we can tests scaled webp without
generating new images on each run.)
Review URL: https://codereview.chromium.org/
1240143002
fmalita [Wed, 22 Jul 2015 12:56:16 +0000 (05:56 -0700)]
Fix SkCanvas::wouldOverwriteEntireSurface() contains test
R=reed@google.com,robertphillips@google.com,bsalomon@google.com
Review URL: https://codereview.chromium.org/
1244093005
rmistry [Wed, 22 Jul 2015 11:29:38 +0000 (04:29 -0700)]
Fix CQ keyword and add more detail
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=
1246393002
TBR=jcgregorio
Review URL: https://codereview.chromium.org/
1246393002
mtklein [Wed, 22 Jul 2015 01:34:42 +0000 (18:34 -0700)]
Revert of 565 support for SIMD xfermodes (patchset #4 id:60001 of https://codereview.chromium.org/
1245673002/)
Reason for revert:
NEON 565 gold images have gone ugly. This is what I get for writing and testing SSE and just writing NEON.
E.g. colortype_xfermodes, dstreadshuffle, bigbitmaprect, pictures, textbloblooper, aaxfermodes (only Plus)
Original issue's description:
> 565 support for SIMD xfermodes
>
> This uses the most basic approach possible:
> - to load an Sk4px from 565, convert to SkPMColors on the stack serially then load those SkPMColors.
> - to store an Sk4px to 565, store to SkPMColors on the stack then convert to 565 serially.
>
> Clearly, we can optimize these loads and stores. That's a TODO.
>
> The code using SkPMFloat is the same idea but a little more long-term viable, as we're only operating on one pixel at a time anyway. We could probably write 565 <-> SkPMFloat methods, but I'd rather not until it's really compelling.
>
> The speedups are varied but similar across SSE and NEON: a few uninteresting, many 50% faster, some 2x faster, and SoftLight ~4x faster.
>
> This will cause minor GM diffs, but I don't think any layout test changes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
942930dcaa51f66d82cdaf46ae62efebd16c8cd0
>
> Committed: https://skia.googlesource.com/skia/+/
860dcaa2ddfdadc050af4f943a84a9d499315066
TBR=msarett@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1248893004
mtklein [Wed, 22 Jul 2015 00:23:39 +0000 (17:23 -0700)]
565 support for SIMD xfermodes
This uses the most basic approach possible:
- to load an Sk4px from 565, convert to SkPMColors on the stack serially then load those SkPMColors.
- to store an Sk4px to 565, store to SkPMColors on the stack then convert to 565 serially.
Clearly, we can optimize these loads and stores. That's a TODO.
The code using SkPMFloat is the same idea but a little more long-term viable, as we're only operating on one pixel at a time anyway. We could probably write 565 <-> SkPMFloat methods, but I'd rather not until it's really compelling.
The speedups are varied but similar across SSE and NEON: a few uninteresting, many 50% faster, some 2x faster, and SoftLight ~4x faster.
This will cause minor GM diffs, but I don't think any layout test changes.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
942930dcaa51f66d82cdaf46ae62efebd16c8cd0
Review URL: https://codereview.chromium.org/
1245673002
herb [Tue, 21 Jul 2015 22:36:25 +0000 (15:36 -0700)]
Change the GlyphCache to use a hash table instead of doing its own ad-hoc
hashing. This change appears to be performance neutral.
BUG=skia:
Review URL: https://codereview.chromium.org/
1216983003
hendrikw [Tue, 21 Jul 2015 21:50:07 +0000 (14:50 -0700)]
ANGLE deps roll
If we ever want to allow the command buffer as a skia gles2 backend,
we need a more up to date version of ANGLE, specifically there are
4 defines that differ between newer and older versions of ANGLE which
we use in skia, I've updated these in this change.
I'm not quite sure if what I've done for the 'angle_path' is correct,
I tried setting it to a path relative to skia, and to '<(DEPTH)', both
of which do not compile correctly, only '../' worked.
Committed: https://skia.googlesource.com/skia/+/
db0b1e796ddbd08e6be8a666537318b1c0e2ce56
Review URL: https://codereview.chromium.org/
1244843003
bungeman [Tue, 21 Jul 2015 21:14:30 +0000 (14:14 -0700)]
Compile with VS2015.
Visual Studio 2015 has additional warnings around noexcept and
disabling exceptions, which can be worked around with the
(undocumented) _HAS_EXCEPTIONS macro.
Visual Studio 2013 and 2015 have roundf in math.h, so use it to
avoid extra work and casts.
We avoid using cmath, as it undefs isfinite on gcc, but Visual Studio
2015 no longer provides overloads of copysign from math.h (which is
actually correct). As a result, use copysignf (which is available in
math.h in 2013 and 2015) directly.
Review URL: https://codereview.chromium.org/
1244173005
ericrk [Tue, 21 Jul 2015 21:06:16 +0000 (14:06 -0700)]
Revert of Bilinear optimization for 1D convolution. (patchset #5 id:200001 of https://codereview.chromium.org/
1216623003/)
Reason for revert:
Ok, I am now seeing a couple issues. going to revert and investigate further.
Original issue's description:
> Bilinear optimization for 1D convolution.
>
> Splits GrGLConvolutionEffect into GrGLBilerpConvolutionEffect and
> GrGLBoundedConvolutionEffect. When doing a non-bounded convolution we now
> always use the GrGLBilerpConvolutionEffect which uses bilinear filtering to
> perform half as many samples in the texture.
>
> BUG=skia:3986
>
> Committed: https://skia.googlesource.com/skia/+/
91abe10af417148939548551e210c001022d3bda
>
> Committed: https://skia.googlesource.com/skia/+/
0f38612b0facf585854aba4556433b858cbf7da8
TBR=bsalomon@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3986
Review URL: https://codereview.chromium.org/
1247063005
hendrikw [Tue, 21 Jul 2015 21:06:10 +0000 (14:06 -0700)]
Revert of skia: ANGLE deps roll (patchset #1 id:1 of https://codereview.chromium.org/
1244843003/)
Reason for revert:
Compile error that the try bots didn't catch :(
Original issue's description:
> ANGLE deps roll
>
> If we ever want to allow the command buffer as a skia gles2 backend,
> we need a more up to date version of ANGLE, specifically there are
> 4 defines that differ between newer and older versions of ANGLE which
> we use in skia, I've updated these in this change.
>
> I'm not quite sure if what I've done for the 'angle_path' is correct,
> I tried setting it to a path relative to skia, and to '<(DEPTH)', both
> of which do not compile correctly, only '../' worked.
>
> Committed: https://skia.googlesource.com/skia/+/
db0b1e796ddbd08e6be8a666537318b1c0e2ce56
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1245223007
hendrikw [Tue, 21 Jul 2015 20:18:27 +0000 (13:18 -0700)]
ANGLE deps roll
If we ever want to allow the command buffer as a skia gles2 backend,
we need a more up to date version of ANGLE, specifically there are
4 defines that differ between newer and older versions of ANGLE which
we use in skia, I've updated these in this change.
I'm not quite sure if what I've done for the 'angle_path' is correct,
I tried setting it to a path relative to skia, and to '<(DEPTH)', both
of which do not compile correctly, only '../' worked.
Review URL: https://codereview.chromium.org/
1244843003
ericrk [Tue, 21 Jul 2015 20:15:47 +0000 (13:15 -0700)]
Bilinear optimization for 1D convolution.
Splits GrGLConvolutionEffect into GrGLBilerpConvolutionEffect and
GrGLBoundedConvolutionEffect. When doing a non-bounded convolution we now
always use the GrGLBilerpConvolutionEffect which uses bilinear filtering to
perform half as many samples in the texture.
BUG=skia:3986
Committed: https://skia.googlesource.com/skia/+/
91abe10af417148939548551e210c001022d3bda
Review URL: https://codereview.chromium.org/
1216623003
caryclark [Tue, 21 Jul 2015 20:11:26 +0000 (13:11 -0700)]
make mixedtextblobs gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1250753004
mtklein [Tue, 21 Jul 2015 20:10:43 +0000 (13:10 -0700)]
Clean up more SkXfermode.cpp dead code.
These handwritten xfermodes for Clear, Src, DstIn, and DstOut are actually dead
code: they're all covered by Sk4pxXfermode, which we'd already have returned.
Tidies up the xfermode creation logic to make this clearer.
This cuts 20-40K off SkXfermode.o, depending on the platform.
BUG=skia:
Review URL: https://codereview.chromium.org/
1249773004
joshualitt [Tue, 21 Jul 2015 19:56:56 +0000 (12:56 -0700)]
adding assert to GrAtlasTextContext
TBR=bsalomon@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/
1241263003
mtklein [Tue, 21 Jul 2015 19:39:57 +0000 (12:39 -0700)]
De-templatize Sk4pxXfermode code a bit.
This deduplicates a few pieces of code:
- we end up with one copy of each xfer32() driver loop instead of one per xfermode;
- we end up with two* copies of each xfermode implementation instead of ten**.
* For a given Mode: Mode() itself and xfer_aa<Mode>().
** From unrolling: twice at a stride of 8, once at 4, once at 2, and once at 1, then all again for when we have AA.
This decreases the size of SkXfermode.o from 1.5M to 620K on x86-64 and from 1.3M to 680K on ARMv7+NEON.
If we wanted to, we could eliminate the xfer_aa<Mode>() copy by tagging each Mode() function as __attribute__((noinline)) or its equivalent. This would result in another ~100K space savings.
Performance is affected in proportion to the original xfermode speed:
fast modes like Plus take the largest proportional hit, and slow modes
like HardLight or SoftLight see essentially no hit at all.
This adds SK_VECTORCALL to help keep this code fast on ARMv7 and Windows. I've looked at the ARMv7 generated code... it looks good, even pretty.
For compatibility with SK_VECTORCALL, we now pass the vector-sized arguments by value instead of by reference. Some refactoring now allows us to declare each mode as just a static function instead of a struct, which simplifies things.
TBR=reed@google.com
No public API changes.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
e617e1525916d7ee684142728c0905828caf49da
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon-Trybot
Review URL: https://codereview.chromium.org/
1242743004
caryclark [Tue, 21 Jul 2015 19:27:36 +0000 (12:27 -0700)]
make color emoji gm portable
R=bungeman@google.com
Review URL: https://codereview.chromium.org/
1248703004
mtklein [Tue, 21 Jul 2015 19:08:41 +0000 (12:08 -0700)]
Revert of De-templatize Sk4pxXfermode code a bit. (patchset #2 id:20001 of https://codereview.chromium.org/
1242743004/)
Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon/builds/1168/steps/build%20most/logs/stdio
Original issue's description:
> De-templatize Sk4pxXfermode code a bit.
>
> This deduplicates a few pieces of code:
> - we end up with one copy of each xfer32() driver loop instead of one per xfermode;
> - we end up with two* copies of each xfermode implementation instead of ten**.
>
> * For a given Mode: Mode() itself and xfer_aa<Mode>().
> ** From unrolling: twice at a stride of 8, once at 4, once at 2, and once at 1, then all again for when we have AA.
>
> This decreases the size of SkXfermode.o from 1.5M to 620K on x86-64 and from 1.3M to 680K on ARMv7+NEON.
>
> If we wanted to, we could eliminate the xfer_aa<Mode>() copy by tagging each Mode() function as __attribute__((noinline)) or its equivalent. This would result in another ~100K space savings.
>
> Performance is affected in proportion to the original xfermode speed:
> fast modes like Plus take the largest proportional hit, and slow modes
> like HardLight or SoftLight see essentially no hit at all.
>
> This adds SK_VECTORCALL to help keep this code fast on ARMv7 and Windows. I've looked at the ARMv7 generated code... it looks good, even pretty.
>
> For compatibility with SK_VECTORCALL, we now pass the vector-sized arguments by value instead of by reference. Some refactoring now allows us to declare each mode as just a static function instead of a struct, which simplifies things.
>
> TBR=reed@google.com
> No public API changes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
e617e1525916d7ee684142728c0905828caf49da
TBR=msarett@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1245273005
robertphillips [Tue, 21 Jul 2015 19:06:52 +0000 (12:06 -0700)]
Possible fix Moto E compilation failure
It appears that the Adreno compiler is even more twitchy about gl_FragCoord handling than expected.
BUG=skia:4078
Review URL: https://codereview.chromium.org/
1246773003
mtklein [Tue, 21 Jul 2015 19:03:37 +0000 (12:03 -0700)]
De-templatize Sk4pxXfermode code a bit.
This deduplicates a few pieces of code:
- we end up with one copy of each xfer32() driver loop instead of one per xfermode;
- we end up with two* copies of each xfermode implementation instead of ten**.
* For a given Mode: Mode() itself and xfer_aa<Mode>().
** From unrolling: twice at a stride of 8, once at 4, once at 2, and once at 1, then all again for when we have AA.
This decreases the size of SkXfermode.o from 1.5M to 620K on x86-64 and from 1.3M to 680K on ARMv7+NEON.
If we wanted to, we could eliminate the xfer_aa<Mode>() copy by tagging each Mode() function as __attribute__((noinline)) or its equivalent. This would result in another ~100K space savings.
Performance is affected in proportion to the original xfermode speed:
fast modes like Plus take the largest proportional hit, and slow modes
like HardLight or SoftLight see essentially no hit at all.
This adds SK_VECTORCALL to help keep this code fast on ARMv7 and Windows. I've looked at the ARMv7 generated code... it looks good, even pretty.
For compatibility with SK_VECTORCALL, we now pass the vector-sized arguments by value instead of by reference. Some refactoring now allows us to declare each mode as just a static function instead of a struct, which simplifies things.
TBR=reed@google.com
No public API changes.
BUG=skia:
Review URL: https://codereview.chromium.org/
1242743004
msarett [Tue, 21 Jul 2015 19:01:48 +0000 (12:01 -0700)]
Reenable yasm for Android x86 and x86-64 on Linux host
It turns out that gyp (kind of) has support for cross
compiling with a different host and target. We simply
need to specify CC_host and CC_target instead of CC.
Making this change allows us to compile yasm on a Linux
host for Android.
We run into problems on Mac because
the linker on a Mac host requires different command line
arguments than the linker on the Android target. In
looking through the code for gyp itself and speaking to
Ben, it doesn't appear to me that gyp supports passing
different arguments to host and target linkers.
I would imagine that we would have similar problems on
Windows.
Below is a link to a CL that would fix this issue in gyp.
It looks like it has been dropped for a long time.
Thanks to Ben for this link!
https://chromiumcodereview.appspot.com/
10795044/
Also I'm adding a link to the build instructions for Chrome
(thanks again Ben). It looks like they only support
building for Android from Linux.
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
My next steps are:
1) Getting in touch with Torne or someone else with gyp to
see if people are aware of this issue or interested in
fixing it.
2) Deciding if skia should care about this issue.
3) Deciding if skia should work around this issue.
It'd be really great to hear your thoughts on (2) and (3).
My first thought is that we shouldn't care because, as
long as we always compile the production copy of skia for
Android on Linux, we will get the fast code. Is this
a valid conclusion? Is there a way to write Android apps
on Mac that accidentally use the slower code?
If we do care, there are workarounds:
For Mac, we can check in a yasm binary - it's a little
smaller than the one I am deleting in this CL :-/
For Windows, we *might* be able to use the yasm.exe binary
already in externals (we get this from DEPS because this is
how chromium uses yasm on Windows).
Are there other platforms that we care about?
Let me know what you think!
BUG=skia:4028
DOCS_PREVIEW= https://skia.org/?cl=
1239333002
Review URL: https://codereview.chromium.org/
1239333002
joshualitt [Tue, 21 Jul 2015 18:39:34 +0000 (11:39 -0700)]
Add sanity check to GrAtlasTextBlob
BUG=skia:
Review URL: https://codereview.chromium.org/
1250693002
senorblanco [Tue, 21 Jul 2015 18:11:17 +0000 (11:11 -0700)]
Remove SK_LEGACY_IMAGE_FILTER_CROP_RECT_EDGES code.
This is no longer used in Chrome.
BUG=skia:4089
Review URL: https://codereview.chromium.org/
1245193002
caryclark [Tue, 21 Jul 2015 16:15:53 +0000 (09:15 -0700)]
make varied_text* gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1244063002
jvanverth [Tue, 21 Jul 2015 15:38:06 +0000 (08:38 -0700)]
Run noise shader separately in imagefiltersclipped
BUG=skia:4079
Review URL: https://codereview.chromium.org/
1245983002
joshualitt [Tue, 21 Jul 2015 15:05:03 +0000 (08:05 -0700)]
rename BitmapTextBlob and move it to its own file
BUG=skia:
Review URL: https://codereview.chromium.org/
1249663002
caryclark [Tue, 21 Jul 2015 14:42:45 +0000 (07:42 -0700)]
make xfermode* portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1243103002
borenet [Tue, 21 Jul 2015 12:57:22 +0000 (05:57 -0700)]
Skip imagefiltersclipped GM on Galaxy S4
BUG=skia:4079
Review URL: https://codereview.chromium.org/
1250473005
mtklein [Tue, 21 Jul 2015 12:02:40 +0000 (05:02 -0700)]
Revert of 565 support for SIMD xfermodes (patchset #3 id:40001 of https://codereview.chromium.org/
1245673002/)
Reason for revert:
942930d (included in this roll) introduced a 140 kB sizes regression in
libskia.so. Please investigate and reland if this regression is necessary.
Original issue's description:
> 565 support for SIMD xfermodes
>
> This uses the most basic approach possible:
> - to load an Sk4px from 565, convert to SkPMColors on the stack serially then load those SkPMColors.
> - to store an Sk4px to 565, store to SkPMColors on the stack then convert to 565 serially.
>
> Clearly, we can optimize these loads and stores. That's a TODO.
>
> The code using SkPMFloat is the same idea but a little more long-term viable, as we're only operating on one pixel at a time anyway. We could probably write 565 <-> SkPMFloat methods, but I'd rather not until it's really compelling.
>
> The speedups are varied but similar across SSE and NEON: a few uninteresting, many 50% faster, some 2x faster, and SoftLight ~4x faster.
>
> This will cause minor GM diffs, but I don't think any layout test changes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
942930dcaa51f66d82cdaf46ae62efebd16c8cd0
TBR=msarett@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1242973004
rileya [Mon, 20 Jul 2015 22:00:03 +0000 (15:00 -0700)]
Add Rec709 YUV color space support to GrYUVtoRGBEffect.
This change is motivated by a recent switch in how chromium handles
<video> color spaces, making rec709 more commonly used. This will
allow video -> canvas copies to take the fast GPU path when we're using
709, just as we do with 601 and jpeg.
Chromium-side change: https://codereview.chromium.org/
1236313002
Review URL: https://codereview.chromium.org/
1241723005
caryclark [Mon, 20 Jul 2015 20:38:56 +0000 (13:38 -0700)]
Generate platform specific fontmgr gm.
The gm output on different font platforms is so different
that comparing images in Gold has little value. Separate the
images by appending platform information to the gm name to
group somewhat similar images together.
Note that this does not attempt to make sure that all images
generated by Gold are nearly pixel identical; it only reduces
the number of nonsensical comparisons.
R=bungeman@google.com
Review URL: https://codereview.chromium.org/
1245643002
emmaleer [Mon, 20 Jul 2015 20:38:44 +0000 (13:38 -0700)]
removing png_read_end from SkPngScanlineDecoder
BUG=skia:4041
Review URL: https://codereview.chromium.org/
1242423002
caryclark [Mon, 20 Jul 2015 17:48:01 +0000 (10:48 -0700)]
make stroketext textblob* texteffects tileimagefilter gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1244833002
mtklein [Mon, 20 Jul 2015 17:35:30 +0000 (10:35 -0700)]
565 support for SIMD xfermodes
This uses the most basic approach possible:
- to load an Sk4px from 565, convert to SkPMColors on the stack serially then load those SkPMColors.
- to store an Sk4px to 565, store to SkPMColors on the stack then convert to 565 serially.
Clearly, we can optimize these loads and stores. That's a TODO.
The code using SkPMFloat is the same idea but a little more long-term viable, as we're only operating on one pixel at a time anyway. We could probably write 565 <-> SkPMFloat methods, but I'd rather not until it's really compelling.
The speedups are varied but similar across SSE and NEON: a few uninteresting, many 50% faster, some 2x faster, and SoftLight ~4x faster.
This will cause minor GM diffs, but I don't think any layout test changes.
BUG=skia:
Review URL: https://codereview.chromium.org/
1245673002
robertphillips [Mon, 20 Jul 2015 17:22:29 +0000 (10:22 -0700)]
Fix textureDomain/bleed prevention in msaa
This updates Ganesh's bleed avoidance check to handle the case where the
sample location may be outside of the rect geometry but used because it
partially covers the pixel.
BUG=skia:4066
Review URL: https://codereview.chromium.org/
1237623012
borenet [Mon, 20 Jul 2015 16:43:36 +0000 (09:43 -0700)]
Split llvm_coverage_run into two scripts
... One for running to generate the coverage data, another to parse the data into various formats.
NOTRY=true
BUG=skia:2430
Review URL: https://codereview.chromium.org/
1239963002
mtklein [Mon, 20 Jul 2015 14:14:19 +0000 (07:14 -0700)]
Clean up dead xfermode opts code.
Now that SK_SUPPORT_LEGACY_XFERMODES is unused, tons of code becomes dead.
Nothing is needed in opts/ anymore for x86.
We still do runtime NEON detection, which just duplicates Sk4pxXfermode.
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/
1230023011
skia.buildbots [Sun, 19 Jul 2015 07:19:11 +0000 (00:19 -0700)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
NO_MERGE_BUILDS
Review URL: https://codereview.chromium.org/
1241073002
wangxianzhu [Sat, 18 Jul 2015 00:23:15 +0000 (17:23 -0700)]
Reland "SkPDF: Annotations are clipped by canvas clip stack."
Original patch was created by halcanary@google.com, and was reverted
because it triggered crbug.com/503541.
This patch fixes a bug in the original patch about clip path
transformation.
> Also, remove some SkPDFDevice functions.
> Will fix this GM: http://crrev.com/
1159273003
> BUG=skia:3872
> Review URL: https://codereview.chromium.org/
1148263005
BUG=skia:3872
BUG=503514
Review URL: https://codereview.chromium.org/
1238503007
caryclark [Fri, 17 Jul 2015 20:20:48 +0000 (13:20 -0700)]
make drawbitmaprect lighting lumafilter matrixconvolution srcmode gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1240843005
joshualitt [Fri, 17 Jul 2015 19:47:39 +0000 (12:47 -0700)]
adding unit test for textblob cache / GrBatchAtlas
BUG=skia:
Review URL: https://codereview.chromium.org/
1233253003
caryclark [Fri, 17 Jul 2015 16:39:16 +0000 (09:39 -0700)]
make arithmode bigtext colortype* degeneratesegments gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1235343004
joshualitt [Fri, 17 Jul 2015 16:09:23 +0000 (09:09 -0700)]
Some cleanups of VisualBench
BUG=skia:
Review URL: https://codereview.chromium.org/
1240633005
borenet [Fri, 17 Jul 2015 14:31:07 +0000 (07:31 -0700)]
llvm_coverage_build: Use CC and CXX variables by default
NOTRY=true
BUG=skia:2430
Review URL: https://codereview.chromium.org/
1242573003
jvanverth [Fri, 17 Jul 2015 14:22:30 +0000 (07:22 -0700)]
Reland of Add fast normalize for SkLightingImageFilter. (patchset #1 id:1 of https://codereview.chromium.org/
1244523002/)
Reason for revert:
Florin will rebaseline the images.
Original issue's description:
> Revert of Add fast normalize for SkLightingImageFilter. (patchset #2 id:20001 of https://codereview.chromium.org/
1240023002/)
>
> Reason for revert:
> Speculative revert -- DEPS roll block on linux_blink_rel
>
> https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/71483/layout-test-results/results.html
>
> Original issue's description:
> > Add fast normalize for SkLightingImageFilter.
> >
> > The normalize routine in SkPoint3 is very robust. However, for simple
> > lighting cases we prefer speed over robustness. This fixes a perf
> > regression in smoothness.tough_filters_cases.
> >
> > BUG=chromium:510562
> >
> > Committed: https://skia.googlesource.com/skia/+/
dfa0ecf169db87f7afddd93bc1c500de481a62c7
>
> TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org,jvanverth@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:510562
>
> Committed: https://skia.googlesource.com/skia/+/
ac66a8122b27c388cc74b3913d9a9be351a44e54
TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:510562
Review URL: https://codereview.chromium.org/
1241583007
reed [Fri, 17 Jul 2015 14:09:43 +0000 (07:09 -0700)]
Revert[2] of guard to remove DrawBitmapRectFlags
This reverts commit
91110195a2eee170c11885da9d16f94b00a39f87.
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/
1240753003
tfarina [Fri, 17 Jul 2015 14:07:25 +0000 (07:07 -0700)]
Add an entry in directory for BugChomper.
BUG=None
R=borenet@google.com
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=
1239803008
Review URL: https://codereview.chromium.org/
1239803008
ethannicholas [Fri, 17 Jul 2015 13:44:02 +0000 (06:44 -0700)]
No longer using non-antialiased fast path for lines when antialiasing is on.
BUG=skia:3776
Review URL: https://codereview.chromium.org/
1223323003
joshualitt [Fri, 17 Jul 2015 13:40:29 +0000 (06:40 -0700)]
Removing GrTemplates.h
BUG=skia:
Review URL: https://codereview.chromium.org/
1233923004
joshualitt [Fri, 17 Jul 2015 13:19:19 +0000 (06:19 -0700)]
Cleanup of GrFontDescKey
BUG=skia:
Review URL: https://codereview.chromium.org/
1238473004
scroggo [Fri, 17 Jul 2015 12:57:34 +0000 (05:57 -0700)]
Revert of guard to remove DrawBitmapRectFlags (patchset #1 id:1 of https://codereview.chromium.org/
1235393003/)
Reason for revert:
breaking android framework build
Original issue's description:
> guard to remove DrawBitmapRectFlags
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
6fb0b6779e40ce05c20cf279f0ecff31fa3cd60d
TBR=fmalita@chromium.org,djsollen@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1230823007
reed [Thu, 16 Jul 2015 23:02:39 +0000 (16:02 -0700)]
Revert of Add fast normalize for SkLightingImageFilter. (patchset #2 id:20001 of https://codereview.chromium.org/
1240023002/)
Reason for revert:
Speculative revert -- DEPS roll block on linux_blink_rel
https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/71483/layout-test-results/results.html
Original issue's description:
> Add fast normalize for SkLightingImageFilter.
>
> The normalize routine in SkPoint3 is very robust. However, for simple
> lighting cases we prefer speed over robustness. This fixes a perf
> regression in smoothness.tough_filters_cases.
>
> BUG=chromium:510562
>
> Committed: https://skia.googlesource.com/skia/+/
dfa0ecf169db87f7afddd93bc1c500de481a62c7
TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org,jvanverth@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:510562
Review URL: https://codereview.chromium.org/
1244523002
senorblanco [Thu, 16 Jul 2015 22:19:11 +0000 (15:19 -0700)]
Now that the SkImageFilter::CropRect crop edges refer to
width & height, name them appropriately.
BUG=240827
Review URL: https://codereview.chromium.org/
1234873005
joshualitt [Thu, 16 Jul 2015 21:23:22 +0000 (14:23 -0700)]
Fix visual bench memory leak
BUG=skia:
Review URL: https://codereview.chromium.org/
1239103002
caryclark [Thu, 16 Jul 2015 21:16:04 +0000 (14:16 -0700)]
make glyph_pos imageblur* largeglyphblur portable
R=reed@google.com,bungeman@google.com
Review URL: https://codereview.chromium.org/
1243493003
joshualitt [Thu, 16 Jul 2015 20:40:51 +0000 (13:40 -0700)]
Small fix for visualbench
BUG=skia:
Review URL: https://codereview.chromium.org/
1237563005
reed [Thu, 16 Jul 2015 20:17:13 +0000 (13:17 -0700)]
refactor code to apply the croprect
BUG=skia:
Review URL: https://codereview.chromium.org/
1218993002
jvanverth [Thu, 16 Jul 2015 19:56:46 +0000 (12:56 -0700)]
Add fast normalize for SkLightingImageFilter.
The normalize routine in SkPoint3 is very robust. However, for simple
lighting cases we prefer speed over robustness. This fixes a perf
regression in smoothness.tough_filters_cases.
BUG=chromium:510562
Review URL: https://codereview.chromium.org/
1240023002
scroggo [Thu, 16 Jul 2015 19:36:10 +0000 (12:36 -0700)]
Stop running image tests on msaa.
Blacklist all image tests on msaa. We do not run them anyway (since
they will not do anything interestingly different from drawing to the
raster backend) - we early exit from Src::draw(), but we still need to
create a render target that matches the size of the image (when not
blacklisted).
Remove the more specific blacklist of a particular image, which is
covered by this one.
BUG=skia:4045
Review URL: https://codereview.chromium.org/
1234313006
caryclark [Thu, 16 Jul 2015 19:35:58 +0000 (12:35 -0700)]
make imagefilters* imagemagnifier imageresizetiled portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1238083004
bsalomon [Thu, 16 Jul 2015 17:00:28 +0000 (10:00 -0700)]
Revert of Remove rt flags that are not necessary (patchset #1 id:1 of https://codereview.chromium.org/
1226123012/)
Reason for revert:
breaks tests, e.g.
https://build.chromium.org/p/client.skia.android/builders/Test-Android-GCC-Nexus9-GPU-TegraK1-Arm64-Release/builds/752/steps/dm/logs/stdio
Original issue's description:
> Remove rt flags that are not necessary
>
> Committed: https://skia.googlesource.com/skia/+/
b6b0a6ef179f4143c94ba7e0e1be6e7ce4b0a23a
TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1234503004
bsalomon [Thu, 16 Jul 2015 16:34:57 +0000 (09:34 -0700)]
Remove rt flags that are not necessary
Review URL: https://codereview.chromium.org/
1226123012
joshualitt [Thu, 16 Jul 2015 16:13:50 +0000 (09:13 -0700)]
All batches do their own pipeline compare
BUG=skia:
Review URL: https://codereview.chromium.org/
1242033002
bsalomon [Thu, 16 Jul 2015 15:23:13 +0000 (08:23 -0700)]
Make readpixels work on GrTextures
Review URL: https://codereview.chromium.org/
1234313002
joshualitt [Thu, 16 Jul 2015 15:12:45 +0000 (08:12 -0700)]
Give GrBatch a pointer to GrPipeline
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
1170a12839218f7a23c93487bf95fd83aae0201f
Review URL: https://codereview.chromium.org/
1237283007
jvanverth [Thu, 16 Jul 2015 14:46:07 +0000 (07:46 -0700)]
Various GL testing fixes
Check for GL context when printing NVPR error string.
Fix some indenting.
Review URL: https://codereview.chromium.org/
1235283004
reed [Thu, 16 Jul 2015 14:40:45 +0000 (07:40 -0700)]
have canvas send discard instead of retain if the draw would overwrite everything
Motivation:
- perf win for clients that overwrite the surface after a snapshot.
- may allow us to eliminate SkDeferredCanvas, as this was its primary advantage.
BUG=skia:
Review URL: https://codereview.chromium.org/
1236023004
joshualitt [Thu, 16 Jul 2015 14:16:53 +0000 (07:16 -0700)]
Revert of Give GrBatch a pointer to GrPipeline (patchset #1 id:1 of https://codereview.chromium.org/
1237283007/)
Reason for revert:
breaking nanobench
Original issue's description:
> Give GrBatch a pointer to GrPipeline
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
1170a12839218f7a23c93487bf95fd83aae0201f
TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1239073002
joshualitt [Thu, 16 Jul 2015 14:06:50 +0000 (07:06 -0700)]
Give GrBatch a pointer to GrPipeline
BUG=skia:
Review URL: https://codereview.chromium.org/
1237283007
caryclark [Thu, 16 Jul 2015 14:06:46 +0000 (07:06 -0700)]
increase gm offsetimagefilter stroke width
With a hairline width, offsetimagefilter fails to draw the
rectangle on some platforms. Make the width 2 so that it
shows up everywhere.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1236133003
borenet [Thu, 16 Jul 2015 14:01:44 +0000 (07:01 -0700)]
Coverage script: fix missing data
BUG=skia:2430
Review URL: https://codereview.chromium.org/
1242023002
mtklein [Thu, 16 Jul 2015 14:01:39 +0000 (07:01 -0700)]
Replace buggy_blend_modes GM with an exhaustive test.
The new test is disabled by default, as it's quite slow.
We can run it if we suspect problems by passing -x to DM.
This test would have been failing before the bug fix, and now is passing.
Assuming the Priv on the end means it's not considered public API...
TBR=reed@google.com
BUG=skia:4052
Review URL: https://codereview.chromium.org/
1228333003
reed [Thu, 16 Jul 2015 13:10:02 +0000 (06:10 -0700)]
guard to remove DrawBitmapRectFlags
BUG=skia:
Review URL: https://codereview.chromium.org/
1235393003
caryclark [Wed, 15 Jul 2015 21:23:50 +0000 (14:23 -0700)]
make *imagefilter morphology iamge bitmapsource gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1236403002
caryclark [Wed, 15 Jul 2015 21:03:12 +0000 (14:03 -0700)]
make strokefill gm portable
Convert the Mac-specific font text statically into
paths so that they draw the same on all platforms.
Add drawing portable text using the fake bold paint
setting so that the code path is tested everywhere
and but draws the same thing.
R=reed@google.com
Review URL: https://codereview.chromium.org/
1234463006
reed [Wed, 15 Jul 2015 20:42:32 +0000 (13:42 -0700)]
rename utility to see if a paint will overwrite its pixels
BUG=skia:
Review URL: https://codereview.chromium.org/
1228853005
wangyix [Wed, 15 Jul 2015 19:26:07 +0000 (12:26 -0700)]
Added GLVec4ScalarBench that doesn't use VAOs
BUG=skia:
Review URL: https://codereview.chromium.org/
1235153008
caryclark [Wed, 15 Jul 2015 18:57:00 +0000 (11:57 -0700)]
make gradtext quadpaths gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1234233003
bungeman [Wed, 15 Jul 2015 18:29:25 +0000 (14:29 -0400)]
Fix leak in Android FontMgr test.
FontMgrAndroidParserTest deos not free the font families it creates.
This issue was discovered by asan when enabling this test on Linux
platforms.
bungeman [Wed, 15 Jul 2015 17:58:47 +0000 (10:58 -0700)]
Allow Android font manager on *nix.
There is nothing left in the SkFontMgr_android.cpp which is specific
to Android, so allow it to be built and used on *nix platforms. This
allows for easier development and testing.
The only reason to limit to *nix platforms are the dependencies on
Expat and FreeType. This should be buildable and runnable on other
platforms when these dependencies are also available.
Review URL: https://codereview.chromium.org/
1228833003
joshualitt [Wed, 15 Jul 2015 17:17:20 +0000 (10:17 -0700)]
Fix for android command line arguments to VisualBench
BUG=skia:
Review URL: https://codereview.chromium.org/
1241923002
jvanverth [Wed, 15 Jul 2015 17:16:56 +0000 (10:16 -0700)]
Only run test_wrapped_resources() when GL is active
Review URL: https://codereview.chromium.org/
1234233002
bsalomon [Wed, 15 Jul 2015 17:12:16 +0000 (10:12 -0700)]
Don't upload texture smaller than the min texture size when stretching a bmp up to a POT
BUG=skia:3932
Review URL: https://codereview.chromium.org/
1238913002
caryclark [Wed, 15 Jul 2015 16:29:32 +0000 (09:29 -0700)]
make colorwheelnative displacement dropshadowimagefilter getposttextpath gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1237233004
caryclark [Wed, 15 Jul 2015 15:58:12 +0000 (08:58 -0700)]
make path-reverse gm portable
Put font glyph data in test as path
instead of getting data from the Mac
font. THe font may change, and is
not available on most platforms.
Also remove unreachable code.
R=reed@google.com
Review URL: https://codereview.chromium.org/
1230703005
joshualitt [Wed, 15 Jul 2015 15:38:02 +0000 (08:38 -0700)]
Match works correctly on visualbench
BUG=skia:
Review URL: https://codereview.chromium.org/
1234123004
halcanary [Wed, 15 Jul 2015 15:06:29 +0000 (08:06 -0700)]
experimental: remove old PDF benchmarking tools
TBR=
Review URL: https://codereview.chromium.org/
1233093004
borenet [Wed, 15 Jul 2015 14:43:06 +0000 (07:43 -0700)]
llvm-coverage script: respect SKIA_OUT
NOTRY=true
BUG=skia:2430
Review URL: https://codereview.chromium.org/
1239803002
herb [Wed, 15 Jul 2015 14:40:37 +0000 (07:40 -0700)]
Fix undefined behavior.
BUG=skia:4050
Review URL: https://codereview.chromium.org/
1232003008
yang.zhang [Wed, 15 Jul 2015 14:07:30 +0000 (07:07 -0700)]
Optimize RGB16 blitV functions with NEON for ARM platform.
Here are some performance resultsi on Nexus 9:
SkRGB16BlitterBlitV_neon:
+--------+-----------+
|height | C/NEON |
+--------+-----------+
|1 | 0.765230 |
+--------+-----------+
|8 | 1.273330 |
+--------+-----------+
|18 | 1.441462 |
+--------+-----------+
|32 | 1.627798 |
+--------+-----------+
|76 | 1.683131 |
+--------+-----------+
|85 | 1.679456 |
+--------+-----------+
|120 | 1.721311 |
+--------+-----------+
|128 | 1.725482 |
+--------+-----------+
|512 | 1.784117 |
+--------+-----------+
BUG=skia:
Review URL: https://codereview.chromium.org/
1213723002
scroggo [Wed, 15 Jul 2015 13:36:42 +0000 (06:36 -0700)]
Revert of Added a GLBench for testing performance of vec4 vs scalar for coverage in generated shaders. (patchset #6 id:90001 of https://codereview.chromium.org/
1225383002/)
Reason for revert:
Still failing on Windows. e.g. https://uberchromegw.corp.google.com/i/client.skia/builders/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-ANGLE/builds/231/steps/nanobench/logs/stdio
skbug.com/4053
Original issue's description:
> Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
>
> Added bench for timing vec4 vs scalar type for coverage in shaders
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
6104ced165f17eb2f765ace354d5895c0bc890c5
>
> Committed: https://skia.googlesource.com/skia/+/
c734e69e8cf94bacaf68d3d8ee3310d1ad1fe8b8
TBR=joshualitt@google.com,tomhudson@google.com,wangyix@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1239503003
joshualitt [Wed, 15 Jul 2015 13:18:57 +0000 (06:18 -0700)]
Fix VisualBench to hold onto a surface
BUG=skia:
Review URL: https://codereview.chromium.org/
1236723003
caryclark [Wed, 15 Jul 2015 13:18:47 +0000 (06:18 -0700)]
make linepaths gm portable
TBR=reed@google.com
Review URL: https://codereview.chromium.org/
1225303010
caryclark [Wed, 15 Jul 2015 12:43:38 +0000 (05:43 -0700)]
remove funkster from dcshader gm
The multicolored font that funster enables
only draws and measures on some platforms.
Removing it from the dcshader gm allows
the layout to be uniform on all devices,
making it easier to compare the output
in gold.
TBR=bsalomon@google.com
Review URL: https://codereview.chromium.org/
1231853004
rmistry [Wed, 15 Jul 2015 11:40:54 +0000 (04:40 -0700)]
Document new CQ keyword
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=
1237693005
TBR=jcgregorio
Review URL: https://codereview.chromium.org/
1237693005
msarett [Tue, 14 Jul 2015 21:39:59 +0000 (14:39 -0700)]
Fixed valgrind issues with libjpeg-turbo
The fixes are in the updated libjpeg-turbo repository
pulled in by DEPS. The fixes are detailed in the linked
skia bug. To summarize briefly, we now use calloc()
instead of malloc().
BUG=skia:4030
Review URL: https://codereview.chromium.org/
1237213004