platform/upstream/libSkiaSharp.git
10 years agoRevert "Add new GM to stress test the GPU font cache"
jvanverth@google.com [Wed, 9 Oct 2013 17:03:22 +0000 (17:03 +0000)]
Revert "Add new GM to stress test the GPU font cache"

git-svn-id: http://skia.googlecode.com/svn/trunk@11678 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRevert "change SkColorTable to be immutable"
reed@google.com [Wed, 9 Oct 2013 16:49:45 +0000 (16:49 +0000)]
Revert "change SkColorTable to be immutable"

This reverts commit 1c0ff422868b3badf5ffe0790a5d051d1896e2f7.

BUG=

Review URL: https://codereview.chromium.org/26709002

git-svn-id: http://skia.googlecode.com/svn/trunk@11677 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agochange SkColorTable to be immutable
reed@google.com [Wed, 9 Oct 2013 16:34:47 +0000 (16:34 +0000)]
change SkColorTable to be immutable

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/25353002

git-svn-id: http://skia.googlecode.com/svn/trunk@11676 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix font cache GM on Windows
jvanverth@google.com [Wed, 9 Oct 2013 16:22:38 +0000 (16:22 +0000)]
Fix font cache GM on Windows

git-svn-id: http://skia.googlecode.com/svn/trunk@11675 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSketch of SK_ONCE
mtklein@google.com [Wed, 9 Oct 2013 16:12:23 +0000 (16:12 +0000)]
Sketch of SK_ONCE

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/26563002

git-svn-id: http://skia.googlecode.com/svn/trunk@11674 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd new GM to stress test the GPU font cache for cases similar to
commit-bot@chromium.org [Wed, 9 Oct 2013 16:00:42 +0000 (16:00 +0000)]
Add new GM to stress test the GPU font cache for cases similar to
Chromium issue 303803.

BUG=303803
R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/26699002

git-svn-id: http://skia.googlecode.com/svn/trunk@11673 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoImplement stroking a path with nv_path_rendering
commit-bot@chromium.org [Wed, 9 Oct 2013 15:14:18 +0000 (15:14 +0000)]
Implement stroking a path with nv_path_rendering

Initialize the path stroke properties in the GrGLPath constructor.
Use StencilStrokePath and CoverStrokePath to stroke the path.

The order of the GL calls is:
1. StencilFill, if needed
2. StencilStroke, if needed
2a. CoverStroke, if stroke was applied
2b. CoverFill, if stroke was not applied

The reason for not pairing StencilFill + CoverFill, StencilStroke +
CoverStroke is that Skia API does not allow separate fill and stroke
color within one call. Covering the stroke bounding box should also
cover the fill bounding box.

Causes different rendering in gm/dashcubics due to different rendering
algorithm. (?) (TODO: this should be resolved somehow.)

R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/23440049

git-svn-id: http://skia.googlecode.com/svn/trunk@11672 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoremove tracking code, as it polutes the code readability. Should be added back, in...
edisonn@google.com [Wed, 9 Oct 2013 15:13:19 +0000 (15:13 +0000)]
remove tracking code, as it polutes the code readability. Should be added back, in a less eficient way, by registering streams instead, so we don't have to pass arround the streams, and the code will be cleaner.

Review URL: https://codereview.chromium.org/26700002

git-svn-id: http://skia.googlecode.com/svn/trunk@11671 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoflush after every print in windows
commit-bot@chromium.org [Wed, 9 Oct 2013 15:09:42 +0000 (15:09 +0000)]
flush after every print in windows

R=djsollen@google.com, reed@google.com, epoger@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26680004

git-svn-id: http://skia.googlecode.com/svn/trunk@11670 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs
commit-bot@chromium.org [Wed, 9 Oct 2013 14:39:46 +0000 (14:39 +0000)]
ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs

Xfermode: allow for SIMD modeprocs

    This patch introduces the ability to have SIMD Xfermode modeprocs.
    In the NEON implementation, SIMD modeprocs will process 8 pixels
    at a time.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11654

R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11669 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoImplement filling a path with nv_path_rendering cover
commit-bot@chromium.org [Wed, 9 Oct 2013 14:11:33 +0000 (14:11 +0000)]
Implement filling a path with nv_path_rendering cover

Implement filling a path with nv_path_rendering cover functionality.

The nv_path_rendering cover can be used if the fill is non-inverted
and the draw operation does not require use of vertex shaders.

Moves code for the inverted fill from GrStencilAndCoverPathRenderer
down to GrGpuGL.

R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/22686002

git-svn-id: http://skia.googlecode.com/svn/trunk@11667 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRemove --pdf option as it can now be controlled by --config
commit-bot@chromium.org [Wed, 9 Oct 2013 14:10:27 +0000 (14:10 +0000)]
Remove --pdf option as it can now be controlled by --config

R=borenet@google.com, bsalomon@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/25859006

git-svn-id: http://skia.googlecode.com/svn/trunk@11666 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix valgrind uninitialized memory complaint
robertphillips@google.com [Wed, 9 Oct 2013 12:51:09 +0000 (12:51 +0000)]
Fix valgrind uninitialized memory complaint

https://codereview.chromium.org/26469003/

git-svn-id: http://skia.googlecode.com/svn/trunk@11664 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agotry uping the cache-count-limit to see if it speeds up bench-pictures
reed@google.com [Wed, 9 Oct 2013 12:45:51 +0000 (12:45 +0000)]
try uping the cache-count-limit to see if it speeds up bench-pictures

BUG=

Review URL: https://codereview.chromium.org/25118003

git-svn-id: http://skia.googlecode.com/svn/trunk@11663 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoImprove SkScalerContext_GDI::generateCharToGlyph for non-BMP code points.
bungeman@google.com [Tue, 8 Oct 2013 21:32:15 +0000 (21:32 +0000)]
Improve SkScalerContext_GDI::generateCharToGlyph for non-BMP code points.

Sometimes, when ScriptShape is presented with a surrogate pair which does
not map to a glyph, it returns two space glyphs instead of .notdef (0).
Detect this class of issues and handle appropriately.

git-svn-id: http://skia.googlecode.com/svn/trunk@11660 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAllow sampling GIF images during decode.
commit-bot@chromium.org [Tue, 8 Oct 2013 19:40:18 +0000 (19:40 +0000)]
Allow sampling GIF images during decode.

SkScaledBitmapSampler:
Add a mode for sampling rows out of order, used by GIF decoder for
interlaced images.
Add a getter for the X sampling rate.

SkImageDecoder_libgif:
Respect the sampleSize set on SkImageDecoder.

skimage_main:
Provide an option to set a sample size.

BUG=https://b.corp.google.com/issue?id=8999690
R=reed@google.com, djsollen@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/25354004

git-svn-id: http://skia.googlecode.com/svn/trunk@11659 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix uninitialized memory access
robertphillips@google.com [Tue, 8 Oct 2013 19:15:58 +0000 (19:15 +0000)]
Fix uninitialized memory access

https://codereview.chromium.org/26529002/

git-svn-id: http://skia.googlecode.com/svn/trunk@11658 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRevert "ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs"
djsollen@google.com [Tue, 8 Oct 2013 16:59:53 +0000 (16:59 +0000)]
Revert "ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs"

This reverts http://code.google.com/p/skia/source/detail?r=11654

Review URL: https://codereview.chromium.org/26340010

git-svn-id: http://skia.googlecode.com/svn/trunk@11655 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs
commit-bot@chromium.org [Tue, 8 Oct 2013 16:47:22 +0000 (16:47 +0000)]
ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs

Xfermode: allow for SIMD modeprocs

    This patch introduces the ability to have SIMD Xfermode modeprocs.
    In the NEON implementation, SIMD modeprocs will process 8 pixels
    at a time.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
BUG=
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11654 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUpdate #if to #ifdef for consistency
commit-bot@chromium.org [Tue, 8 Oct 2013 16:24:07 +0000 (16:24 +0000)]
Update #if to #ifdef for consistency

R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/26495002

git-svn-id: http://skia.googlecode.com/svn/trunk@11653 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix memory leak in SkPDFRasterizer
robertphillips@google.com [Tue, 8 Oct 2013 15:40:49 +0000 (15:40 +0000)]
Fix memory leak in SkPDFRasterizer

https://codereview.chromium.org/26373005/

git-svn-id: http://skia.googlecode.com/svn/trunk@11652 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUpdate valgrind suppressions
robertphillips@google.com [Tue, 8 Oct 2013 15:37:19 +0000 (15:37 +0000)]
Update valgrind suppressions

https://codereview.chromium.org/26465007/

git-svn-id: http://skia.googlecode.com/svn/trunk@11650 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoskia/trunk changes for generic sanitizer gyp flag.
mtklein@google.com [Tue, 8 Oct 2013 15:16:36 +0000 (15:16 +0000)]
skia/trunk changes for generic sanitizer gyp flag.

BUG=
R=borenet@google.com

Review URL: https://codereview.chromium.org/25564003

git-svn-id: http://skia.googlecode.com/svn/trunk@11648 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSanitizing source files in Housekeeper-Nightly
skia.committer@gmail.com [Tue, 8 Oct 2013 07:01:42 +0000 (07:01 +0000)]
Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11645 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoDocument how to get a specific revision when rebaselining.
bungeman@google.com [Mon, 7 Oct 2013 20:32:18 +0000 (20:32 +0000)]
Document how to get a specific revision when rebaselining.

This is helpful when using the trybots.

R=epoger@google.com

Review URL: https://codereview.chromium.org/25653008

git-svn-id: http://skia.googlecode.com/svn/trunk@11643 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake svndiff.py work on Windows and with svn 1.7.
bungeman@google.com [Mon, 7 Oct 2013 19:57:35 +0000 (19:57 +0000)]
Make svndiff.py work on Windows and with svn 1.7.

R=epoger@google.com

Review URL: https://codereview.chromium.org/25447003

git-svn-id: http://skia.googlecode.com/svn/trunk@11642 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix ambiguity in API if no matching system language is found
commit-bot@chromium.org [Mon, 7 Oct 2013 19:49:13 +0000 (19:49 +0000)]
Fix ambiguity in API if no matching system language is found

R=reed@google.com, wangxianzhu@chromium.org

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/26325003

git-svn-id: http://skia.googlecode.com/svn/trunk@11641 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoIgnore any pdf-poppler GM failures
epoger@google.com [Mon, 7 Oct 2013 19:06:40 +0000 (19:06 +0000)]
Ignore any pdf-poppler GM failures
BUG=skia:1657
R=edisonn@google.com

Review URL: https://codereview.chromium.org/26318002

git-svn-id: http://skia.googlecode.com/svn/trunk@11640 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoGM: Allow ignored-tests.txt to list configs as well as tests (and combinations too)
epoger@google.com [Mon, 7 Oct 2013 18:55:09 +0000 (18:55 +0000)]
GM: Allow ignored-tests.txt to list configs as well as tests (and combinations too)
BUG=skia:1657

This will allow us to ignore poppler failures until bug 1657 is resolved
(but this CL doesn't actually make that change to ignored-tests.txt yet)

R=scroggo@google.com

Review URL: https://codereview.chromium.org/26294004

git-svn-id: http://skia.googlecode.com/svn/trunk@11639 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoIgnore failure for images known to not work.
scroggo@google.com [Mon, 7 Oct 2013 18:29:38 +0000 (18:29 +0000)]
Ignore failure for images known to not work.

BUG=skia:1282

Review URL: https://codereview.chromium.org/26315002

git-svn-id: http://skia.googlecode.com/svn/trunk@11638 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix for blinking/corrupted text in Canvas 2D.
commit-bot@chromium.org [Mon, 7 Oct 2013 18:20:27 +0000 (18:20 +0000)]
Fix for blinking/corrupted text in Canvas 2D.

Ensure that we update the drawToken for a glyph's plot every time it is
used, not just when the glyph is first added.

BUG=303803
R=junov@chromium.org, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/26253003

git-svn-id: http://skia.googlecode.com/svn/trunk@11637 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoLuminance-to-alpha color filter (SkLumaColorFilter).
commit-bot@chromium.org [Mon, 7 Oct 2013 18:00:17 +0000 (18:00 +0000)]
Luminance-to-alpha color filter (SkLumaColorFilter).

Adding a color filter luma implementation. The plan is to convert
existing clients and then deprecate SkLumaXfermode.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/25453004

git-svn-id: http://skia.googlecode.com/svn/trunk@11636 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agostyle nit for myself retroactively: throwOnFailure -> throw_on_failure
commit-bot@chromium.org [Mon, 7 Oct 2013 17:59:04 +0000 (17:59 +0000)]
style nit for myself retroactively: throwOnFailure -> throw_on_failure

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26298002

git-svn-id: http://skia.googlecode.com/svn/trunk@11635 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake all gradient benchs use the same repeat count.
commit-bot@chromium.org [Mon, 7 Oct 2013 17:18:21 +0000 (17:18 +0000)]
Make all gradient benchs use the same repeat count.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/25306003

git-svn-id: http://skia.googlecode.com/svn/trunk@11634 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoIn skimage, copy to 8888 if encoding fails.
scroggo@google.com [Mon, 7 Oct 2013 16:56:01 +0000 (16:56 +0000)]
In skimage, copy to 8888 if encoding fails.

When writing the bitmap for visual comparison, rather than special
casing A8, depend on the fact that the encoder will fail, and try
copying to 8888 and encoding that if so.

R=reed@google.com

Review URL: https://codereview.chromium.org/25964003

git-svn-id: http://skia.googlecode.com/svn/trunk@11633 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRebaseline test due to improvements in r11577
djsollen@google.com [Mon, 7 Oct 2013 16:48:08 +0000 (16:48 +0000)]
Rebaseline test due to improvements in r11577

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/26114003

git-svn-id: http://skia.googlecode.com/svn/trunk@11632 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix unparsable expectations files.
scroggo@google.com [Mon, 7 Oct 2013 16:43:16 +0000 (16:43 +0000)]
Fix unparsable expectations files.

Should fix build.

Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@11631 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake skia almost compile again with clang.
commit-bot@chromium.org [Mon, 7 Oct 2013 15:52:15 +0000 (15:52 +0000)]
Make skia almost compile again with clang.

clang is reporting many unused functions and variables.

R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/26167002

git-svn-id: http://skia.googlecode.com/svn/trunk@11630 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agopdf report files
edisonn@google.com [Mon, 7 Oct 2013 15:40:21 +0000 (15:40 +0000)]
pdf report files

Review URL: https://codereview.chromium.org/26271002

git-svn-id: http://skia.googlecode.com/svn/trunk@11629 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agorevert unintentional checkin of svndiff.py
djsollen@google.com [Mon, 7 Oct 2013 14:02:58 +0000 (14:02 +0000)]
revert unintentional checkin of svndiff.py

Review URL: https://codereview.chromium.org/26162004

git-svn-id: http://skia.googlecode.com/svn/trunk@11628 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRebaseline Android Xoom and Nexus10
djsollen@google.com [Mon, 7 Oct 2013 13:50:45 +0000 (13:50 +0000)]
Rebaseline Android Xoom and Nexus10

Review URL: https://codereview.chromium.org/26257002

git-svn-id: http://skia.googlecode.com/svn/trunk@11627 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agopdf: drawPath should pass the computed matrix, instead of default matrix stored in...
edisonn@google.com [Mon, 7 Oct 2013 13:22:21 +0000 (13:22 +0000)]
pdf: drawPath should pass the computed matrix, instead of default matrix stored in draw.

moved cl https://codereview.chromium.org/24265006/ in git repository so I can run the trybots

R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/25675011

git-svn-id: http://skia.googlecode.com/svn/trunk@11626 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSanitizing source files in Housekeeper-Nightly
skia.committer@gmail.com [Sat, 5 Oct 2013 07:01:34 +0000 (07:01 +0000)]
Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11625 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd perspective support to SkMatrix44 initializers.
commit-bot@chromium.org [Sat, 5 Oct 2013 01:16:30 +0000 (01:16 +0000)]
Add perspective support to SkMatrix44 initializers.

I noticed SkMatrix <-> SkMatrix44 conversions were dropping the
perspective values on the floor.  As we use SkMatrix44 heavily in
Chromium, I'm concerned this missing code will cause a bug eventually.
It should be correct to simply use the bottom row of the 4x4 matrix
excluding the third column.

Previously committed and reverted, second attempt with fix for
incorrect use of SkMScalar/SkScalar.

BUG=
R=reed@google.com, caryclark@google.com

Author: aelias@chromium.org

Review URL: https://codereview.chromium.org/25484006

git-svn-id: http://skia.googlecode.com/svn/trunk@11624 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRevert "Add perspective support to SkMatrix44 initializers."
aelias@chromium.org [Fri, 4 Oct 2013 22:26:28 +0000 (22:26 +0000)]
Revert "Add perspective support to SkMatrix44 initializers."

This reverts commit 93db1bcae0863feed8d00a61ae2cf72a90a0083c.

git-svn-id: http://skia.googlecode.com/svn/trunk@11623 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd perspective support to SkMatrix44 initializers.
commit-bot@chromium.org [Fri, 4 Oct 2013 20:38:08 +0000 (20:38 +0000)]
Add perspective support to SkMatrix44 initializers.

I noticed SkMatrix <-> SkMatrix44 conversions were dropping the
perspective values on the floor.  As we use SkMatrix44 heavily in
Chromium, I'm concerned this missing code will cause a bug eventually.
It should be correct to simply use the bottom row of the 4x4 matrix
excluding the third column.

BUG=
R=reed@google.com

Author: aelias@chromium.org

Review URL: https://codereview.chromium.org/25484006

git-svn-id: http://skia.googlecode.com/svn/trunk@11622 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUse vertexless shaders when NVpr is available
commit-bot@chromium.org [Fri, 4 Oct 2013 20:02:53 +0000 (20:02 +0000)]
Use vertexless shaders when NVpr is available

Adds support for vertexless shaders and enables them when
NV_path_rendering is available. This takes a
GrGLFragmentOnlyShaderBuilder class, a GrGLTexGenEffectArray class,
support for setting TexGen and the projection matrix in GrGpuGL, and
code for setting the GL fixed function state where necessary.

R=bsalomon@google.com, kkinnunen@nvidia.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25846002

git-svn-id: http://skia.googlecode.com/svn/trunk@11620 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agorebaseline angle gradient changes
bsalomon@google.com [Fri, 4 Oct 2013 19:22:03 +0000 (19:22 +0000)]
rebaseline angle gradient changes

Review URL: https://codereview.chromium.org/25666017

git-svn-id: http://skia.googlecode.com/svn/trunk@11618 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMutex protect SkFontMgr_DirectWrite cache.
bungeman@google.com [Fri, 4 Oct 2013 17:00:35 +0000 (17:00 +0000)]
Mutex protect SkFontMgr_DirectWrite cache.

SkFontMgr_DirectWrite is constant, except for its typeface cache.
Protect this cache in the face of multiple threads.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/26023002

git-svn-id: http://skia.googlecode.com/svn/trunk@11615 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agocommit to xfermode objects being immutable
commit-bot@chromium.org [Fri, 4 Oct 2013 16:52:55 +0000 (16:52 +0000)]
commit to xfermode objects being immutable

BUG=
R=djsollen@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/25968004

git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoWhen cache is full delay flush until GrContext draw is finished
commit-bot@chromium.org [Fri, 4 Oct 2013 16:23:58 +0000 (16:23 +0000)]
When cache is full delay flush until GrContext draw is finished

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/25673004

git-svn-id: http://skia.googlecode.com/svn/trunk@11613 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMove VertexBuilder to a GrGLFullShaderBuilder subclass
commit-bot@chromium.org [Fri, 4 Oct 2013 15:42:56 +0000 (15:42 +0000)]
Move VertexBuilder to a GrGLFullShaderBuilder subclass

Removes the VertexBuilder nested class from GrGLShaderBuilder in favor
of a new GrGLFullShaderBuilder subclass, and adds an optional emitCode
overload to GrGLEffect that takes a GrGLFullShaderBuilder. Makes
setData virtual in GrGLEffectArray and adds a GrGLVertexEffectArray
subclass that gets built using a GrGLFullShaderBuilder. Also adds a
new GrGLVertexEffect subclass that makes the GrGLFullShaderBuilder
overload required for emitCode, and updates GrGLEffects to inherit
from GrGLVertexEffect where needed.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25474006

git-svn-id: http://skia.googlecode.com/svn/trunk@11612 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoWhitespace change to trigger build after several buildbot-side changes
borenet@google.com [Fri, 4 Oct 2013 15:32:45 +0000 (15:32 +0000)]
Whitespace change to trigger build after several buildbot-side changes

https://codereview.chromium.org/25437010/ (Skip WritePixels test on Xoom)
https://codereview.chromium.org/25820003/ (Use --resetGpuContext flag when running GM on Xoom)
https://codereview.chromium.org/25666016/ (Remove --nopdf flag from GM on Android)
https://codereview.chromium.org/26005002/ (Increase Compile timeout)

Review URL: https://codereview.chromium.org/25421004

git-svn-id: http://skia.googlecode.com/svn/trunk@11611 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoDon't access RT when disabling scissor.
commit-bot@chromium.org [Fri, 4 Oct 2013 15:28:18 +0000 (15:28 +0000)]
Don't access RT when disabling scissor.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/25446004

git-svn-id: http://skia.googlecode.com/svn/trunk@11608 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd GM option to allow the GPU context to be reset prior to each GM being run
djsollen@google.com [Fri, 4 Oct 2013 14:57:00 +0000 (14:57 +0000)]
Add GM option to allow the GPU context to be reset prior to each GM being run

BUG=skia:1434
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/26010002

git-svn-id: http://skia.googlecode.com/svn/trunk@11605 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix SkScalar conversion warning error.
halcanary@google.com [Fri, 4 Oct 2013 14:35:38 +0000 (14:35 +0000)]
Fix SkScalar conversion warning error.

This was causing probems on the Win build.

R=caryclark@google.com

Review URL: https://codereview.chromium.org/26011002

git-svn-id: http://skia.googlecode.com/svn/trunk@11604 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRemove rebaselined tests from ignored-tests.txt
bsalomon@google.com [Fri, 4 Oct 2013 14:26:58 +0000 (14:26 +0000)]
Remove rebaselined tests from ignored-tests.txt

Review URL: https://codereview.chromium.org/26014002

git-svn-id: http://skia.googlecode.com/svn/trunk@11603 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMark images with busted concial gradients as ignore failure on N10, N4, and RHB
bsalomon@google.com [Fri, 4 Oct 2013 14:24:28 +0000 (14:24 +0000)]
Mark images with busted concial gradients as ignore failure on N10, N4, and RHB

Review URL: https://codereview.chromium.org/25968005

git-svn-id: http://skia.googlecode.com/svn/trunk@11602 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRebaseline gradient gpu tests
bsalomon@google.com [Fri, 4 Oct 2013 14:06:44 +0000 (14:06 +0000)]
Rebaseline gradient gpu tests

Review URL: https://codereview.chromium.org/25757010

git-svn-id: http://skia.googlecode.com/svn/trunk@11601 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix iOS build of test_image_decoder
halcanary@google.com [Fri, 4 Oct 2013 13:37:24 +0000 (13:37 +0000)]
Fix iOS build of test_image_decoder

Use tool_main() function.

Review URL: https://codereview.chromium.org/26008002

git-svn-id: http://skia.googlecode.com/svn/trunk@11600 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix narrowing warning error
halcanary@google.com [Fri, 4 Oct 2013 13:24:59 +0000 (13:24 +0000)]
Fix narrowing warning error

I was breaking build, by having a char instead of unsigned char.

Review URL: https://codereview.chromium.org/25683012

git-svn-id: http://skia.googlecode.com/svn/trunk@11599 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake image decoding more fault resistant, less verbose.
halcanary@google.com [Fri, 4 Oct 2013 12:46:45 +0000 (12:46 +0000)]
Make image decoding more fault resistant, less verbose.

This change address what happens when a jpeg is partially downloaded
before failing.  Many browsers will render it anyway: we want Skia to
do the same.  The JpegTest takes a perfectly cromulent jpeg file and
only passes into the ImageDecoder the first half of the image.  We
then verify that the image decoder returns a valid bitmap of the
correct dimensions.

We also fixed some png library errors, including issue 1691.

Also, suppressed the majority of warnings from using libpng and
libjpeg.  By default, most warnings are *not* suppressed in debug mode.
If you have a debug binary and wish to suppress warnings, set the
following environment variables to true
    skia_images_png_suppressDecoderWarnings
    skia_images_jpeg_suppressDecoderWarnings
or from within a program that links to Skia:
    #if defined(SK_DEBUG)
    #include "SkRTConf.h"
    SK_CONF_SET("images.jpeg.suppressDecoderWarnings", true);
    SK_CONF_SET("images.png.suppressDecoderWarnings", true);
    #endif

I tested this, before (control) and after these changes (test), on
364,295 skps from the cluster telemetry.
-   number of errors+warnings in control = 2804
-   number of errors+warnings fixed = 2283
-   number of PNG verbosity fixed =  2152
-   number of PNG error fixed = 4
-   number of PNG segfault fixed = 3
-   number of PNG errors changed to warnings = 62
-   number of JPG verbosity fixed =  26
-   number of JPG error fixed = 91
Not all errors and warning have been fixed.

These numbers were generated using the find_bad_images_in_skps.py
program.  This program may be useful going forward for testing
image-decoding libraries on skp files from the cluster telemetry.
find_bad_images_in_skps.py depends on the test_image_decoder program,
which simply executes the SkImageDecoder::DecodeFile function and uses
its exit status to report success or failure.

BUG=skia:1649
BUG=skia:1691
BUG=skia:1680
R=scroggo@google.com

Review URL: https://codereview.chromium.org/24449003

git-svn-id: http://skia.googlecode.com/svn/trunk@11597 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSanitizing source files in Housekeeper-Nightly
skia.committer@gmail.com [Fri, 4 Oct 2013 07:01:38 +0000 (07:01 +0000)]
Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11596 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAllow gradient optimization with perspective
commit-bot@chromium.org [Fri, 4 Oct 2013 01:20:09 +0000 (01:20 +0000)]
Allow gradient optimization with perspective

Before, gradients would only interpolate the linear portion of the
quadratic equation if there was no perspective. This updates them to
do so even in the case that there is perspective. The rearrangement
of math causes noise differences in the following gm tests:

gradients_no_texture_gpu
gradients_view_perspective_gpu
gradients_local_perspective_gpu
gradients_gpu

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25645006

git-svn-id: http://skia.googlecode.com/svn/trunk@11595 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRebaseline for 11592.
bungeman@google.com [Fri, 4 Oct 2013 00:03:39 +0000 (00:03 +0000)]
Rebaseline for 11592.

git-svn-id: http://skia.googlecode.com/svn/trunk@11594 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoIgnore the failure of this flaky PDF test.
scroggo@google.com [Thu, 3 Oct 2013 20:23:53 +0000 (20:23 +0000)]
Ignore the failure of this flaky PDF test.

The Mac 10.6 seems to have a race condition that changes the output.
Disable the test to avoid seeing this failure.

R=edisonn@google.com

Review URL: https://codereview.chromium.org/25887005

git-svn-id: http://skia.googlecode.com/svn/trunk@11593 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSnap GDI matrix when snapping height.
bungeman@google.com [Thu, 3 Oct 2013 20:17:51 +0000 (20:17 +0000)]
Snap GDI matrix when snapping height.

When using GDI to render, ensure that the GDI matrix does not attempt to
add subpixel height. This ensures that rotated text is always the same
height as axis aligned text and prevents subpixel drift metrics when they
are unwanted.

R=reed@google.com

Review URL: https://codereview.chromium.org/25739002

git-svn-id: http://skia.googlecode.com/svn/trunk@11592 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUse SkPicture::ExtractBitmap callback in pdf too, there is no need for a specialized...
commit-bot@chromium.org [Thu, 3 Oct 2013 19:29:21 +0000 (19:29 +0000)]
Use SkPicture::ExtractBitmap callback in pdf too, there is no need for a specialized function pointer for pdf only only to pass a rectangle, when we can use subseted bitmaps.

R=scroggo@google.com, reed@google.com, vandebo@chromium.org, bsalomon@google.com

Author: edisonn@google.com

Review URL: https://codereview.chromium.org/25054002

git-svn-id: http://skia.googlecode.com/svn/trunk@11591 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoupdate GM to use #ifdef instead of just #if
djsollen@google.com [Thu, 3 Oct 2013 17:38:50 +0000 (17:38 +0000)]
update GM to use #ifdef instead of just #if

Review URL: https://codereview.chromium.org/25749003

git-svn-id: http://skia.googlecode.com/svn/trunk@11590 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFixes for decoding to A8.
commit-bot@chromium.org [Thu, 3 Oct 2013 17:13:38 +0000 (17:13 +0000)]
Fixes for decoding to A8.

src/images/SkImageDecoder_libpng.cpp:
A8 images are not opaque, so do not set the opaque flag.
This fixes a bug where copyTo does not work as expected (when
copying an A8 decoded image to ARGB_8888), leading to
a bitmap hash that does not represent the image correctly
(in skimage).

tools/skimage_main.cpp:
In write_bitmap, which is creating the image for visual comparison,
copy A8 to 8888, since A8 cannot be encoded.

In the section that tests reencoding, do not test reencoding A8,
which is known to not work.

R=mtklein@google.com, djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/25726004

git-svn-id: http://skia.googlecode.com/svn/trunk@11589 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoRepurpose GrGLCoordTransform as GrGLProgramEffects
commit-bot@chromium.org [Thu, 3 Oct 2013 15:17:58 +0000 (15:17 +0000)]
Repurpose GrGLCoordTransform as GrGLProgramEffects

Creates a GrGLProgramEffects class that the GrGLProgram uses to manage
an array of effects. This gives us enough abstraction for the program
to cleanly handle different types of coord transforms.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25605008

git-svn-id: http://skia.googlecode.com/svn/trunk@11588 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMark shifty hairmodes on N10 as ignore-failure
bsalomon@google.com [Thu, 3 Oct 2013 15:05:16 +0000 (15:05 +0000)]
Mark shifty hairmodes on N10 as ignore-failure

BUG=skia:1655

Review URL: https://codereview.chromium.org/25524003

git-svn-id: http://skia.googlecode.com/svn/trunk@11587 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUpdate PDF backend to support fallback fonts on Android.
djsollen@google.com [Thu, 3 Oct 2013 14:42:24 +0000 (14:42 +0000)]
Update PDF backend to support fallback fonts on Android.

R=edisonn@google.com, reed@google.com, vandebo@chromium.org

Review URL: https://codereview.chromium.org/24364008

git-svn-id: http://skia.googlecode.com/svn/trunk@11586 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSanitizing source files in Housekeeper-Nightly
skia.committer@gmail.com [Thu, 3 Oct 2013 07:01:37 +0000 (07:01 +0000)]
Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11585 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix font GMs
jvanverth@google.com [Wed, 2 Oct 2013 19:49:26 +0000 (19:49 +0000)]
Fix font GMs

Disables font cache dump for now

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/25605007

git-svn-id: http://skia.googlecode.com/svn/trunk@11584 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoHTTP GM baseline viewer: server should serve files from gm/rebaseline_server dir
epoger@google.com [Wed, 2 Oct 2013 19:27:35 +0000 (19:27 +0000)]
HTTP GM baseline viewer: server should serve files from gm/rebaseline_server dir
(SkipBuildbotRuns)

R=jcgregorio@google.com

Review URL: https://codereview.chromium.org/25774002

git-svn-id: http://skia.googlecode.com/svn/trunk@11583 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMore improvements to HTTP baseline viewer (for GM results)
epoger@google.com [Wed, 2 Oct 2013 18:57:48 +0000 (18:57 +0000)]
More improvements to HTTP baseline viewer (for GM results)
(SkipBuildbotRuns)

R=borenet@google.com, bsalomon@google.com

Review URL: https://codereview.chromium.org/25555003

git-svn-id: http://skia.googlecode.com/svn/trunk@11581 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdded missing SK_API
sugoi@google.com [Wed, 2 Oct 2013 18:27:43 +0000 (18:27 +0000)]
Added missing SK_API

BUG=
R=senorblanco@chromium.org

Review URL: https://codereview.chromium.org/25770002

git-svn-id: http://skia.googlecode.com/svn/trunk@11580 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd support to dump font cache texture for debug purposes
commit-bot@chromium.org [Wed, 2 Oct 2013 18:19:17 +0000 (18:19 +0000)]
Add support to dump font cache texture for debug purposes

R=robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/25736002

git-svn-id: http://skia.googlecode.com/svn/trunk@11579 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMove makeSpace and resetToSize from SkPathRef.cpp to .h
robertphillips@google.com [Wed, 2 Oct 2013 17:49:50 +0000 (17:49 +0000)]
Move makeSpace and resetToSize from SkPathRef.cpp to .h

https://codereview.chromium.org/25754002/

git-svn-id: http://skia.googlecode.com/svn/trunk@11578 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd new skyline Rectanizer
commit-bot@chromium.org [Wed, 2 Oct 2013 17:37:59 +0000 (17:37 +0000)]
Add new skyline Rectanizer

The skyline Rectanizer tracks the leading silhouette of the
currently packed rects and tries to fit the next rectangle
on top of that. This gives slightly better packing behavior
than the current log2 scheme.

Also shrank the size of the plots, which increases their
number from 18 to 32 and gives better cache behavior (fewer
purges and uploads).

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/25584002

git-svn-id: http://skia.googlecode.com/svn/trunk@11577 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoThreads can race to be the first one to calculate the empty path ref's bounds.
commit-bot@chromium.org [Wed, 2 Oct 2013 16:42:58 +0000 (16:42 +0000)]
Threads can race to be the first one to calculate the empty path ref's bounds.
To dodge the problem, call computeBounds when creating the global empty path
ref.

There's still another race here, which is that we can race to create the empty
path ref in the first place.  As written we can conceivably allocate an
arbitrary number of empty path refs, one of which ends up pointed to by the
global variable at the end.

I've punted on fixing this for now because 1) tsan has not complained yet; 2) I
think it can be fixed by the same approach as we can fix the memsets in
25415003, so I want to wait to see how that review goes
first.

BUG=
R=reed@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25745003

git-svn-id: http://skia.googlecode.com/svn/trunk@11576 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake it explicit that some validate methods are debug only
robertphillips@google.com [Wed, 2 Oct 2013 16:42:21 +0000 (16:42 +0000)]
Make it explicit that some validate methods are debug only

https://codereview.chromium.org/25716003/

git-svn-id: http://skia.googlecode.com/svn/trunk@11575 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoSadly TSAN still reports this as a race, even when we're obviously writing the
commit-bot@chromium.org [Wed, 2 Oct 2013 16:15:44 +0000 (16:15 +0000)]
Sadly TSAN still reports this as a race, even when we're obviously writing the
same values.  Initializing with the declaration should quiet it down.

BUG=
R=caryclark@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25713004

git-svn-id: http://skia.googlecode.com/svn/trunk@11574 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoDo not convert non gray PNG to A8.
scroggo@google.com [Wed, 2 Oct 2013 15:50:19 +0000 (15:50 +0000)]
Do not convert non gray PNG to A8.

If the user requested A8, but the source is not gray, switch to
ARGB8888.

BUG=https://b.corp.google.com/issue?id=9189955
R=reed@google.com

Review URL: https://codereview.chromium.org/24882002

git-svn-id: http://skia.googlecode.com/svn/trunk@11573 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agofix 10.6
caryclark@google.com [Wed, 2 Oct 2013 15:07:52 +0000 (15:07 +0000)]
fix 10.6

git-svn-id: http://skia.googlecode.com/svn/trunk@11572 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix gpu.gypi missing file issue
bsalomon@google.com [Wed, 2 Oct 2013 15:02:55 +0000 (15:02 +0000)]
Fix gpu.gypi missing file issue

git-svn-id: http://skia.googlecode.com/svn/trunk@11571 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agopath ops work in progress
caryclark@google.com [Wed, 2 Oct 2013 14:49:34 +0000 (14:49 +0000)]
path ops work in progress

make more skps work

remove edit files

BUG=

Review URL: https://codereview.chromium.org/23542056

git-svn-id: http://skia.googlecode.com/svn/trunk@11570 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMake GPU coord transforms automatic
bsalomon@google.com [Wed, 2 Oct 2013 13:04:56 +0000 (13:04 +0000)]
Make GPU coord transforms automatic

Adds a GrCoordTransform class and updates the framework to handle
coord transforms similar to how it handles textures with
GrTextureAccess. Renames GrGLEffectMatrix to GrGLCoordTransform and
slightly repurposes it to be used by the framework instead of effects.

R=bsalomon@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/24853002

git-svn-id: http://skia.googlecode.com/svn/trunk@11569 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoWhitespace change to test CQ emails.
commit-bot@chromium.org [Wed, 2 Oct 2013 12:16:25 +0000 (12:16 +0000)]
Whitespace change to test CQ emails.

BUG=
NOTRY=True
R=borenet@google.com
TBR=borenet@google.com

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/25712003

git-svn-id: http://skia.googlecode.com/svn/trunk@11567 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoEmpty implementations for SkImageDecoder.
scroggo@google.com [Tue, 1 Oct 2013 19:54:42 +0000 (19:54 +0000)]
Empty implementations for SkImageDecoder.

Add constructor and destructor, so SkScaledBitmapSampler's
DummyDecoder has no unresolved symbols in Chrome.

Fixes our Chrome canary.

Unreviewed.

Review URL: https://codereview.chromium.org/25536004

git-svn-id: http://skia.googlecode.com/svn/trunk@11566 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix race between ~SkThreadPool and SkThreadPool::Loop on fDone.
commit-bot@chromium.org [Tue, 1 Oct 2013 18:44:18 +0000 (18:44 +0000)]
Fix race between ~SkThreadPool and SkThreadPool::Loop on fDone.

We're writing fDone without holding the mutex.  Bad form, says tsan.

In practice this is fairly innocuous, as fDone only ever goes from false to
true and only once.  Though, I wouldn't be surprised if there were some way
this could leak a thread that never got the signal to die.

BUG=
R=scroggo@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25371003

git-svn-id: http://skia.googlecode.com/svn/trunk@11563 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoWriting to testName and reading its size isn't thread safe, TSAN reminds us.
commit-bot@chromium.org [Tue, 1 Oct 2013 18:44:04 +0000 (18:44 +0000)]
Writing to testName and reading its size isn't thread safe, TSAN reminds us.

Guarding it into a no-op makes it safe.  Looks like this is only used for debugging, presumably singlethreaded?

BUG=
R=caryclark@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25366002

git-svn-id: http://skia.googlecode.com/svn/trunk@11562 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoIn skia_test.cc, atomics -> mutex.
commit-bot@chromium.org [Tue, 1 Oct 2013 18:43:50 +0000 (18:43 +0000)]
In skia_test.cc, atomics -> mutex.

These guys are not heavily contended nor speed critical.  No need for atomics,
plus this makes tsan stop complaining (correctly) about reading fNextIndex
unsafely in onEnd.

I took a look at failCount/fFailCount, which I think is safely atomic and quite
conveniently so:  It's never read until all the threads which could possibly
increment it have terminated (except for the one where it was created,
obviously).  We could guard it with a mutex too, but maybe we can let this one
slide.

BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25357002

git-svn-id: http://skia.googlecode.com/svn/trunk@11561 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoUse explicitly-sized enums in GrGLProgramDesc::KeyHeader
commit-bot@chromium.org [Tue, 1 Oct 2013 18:43:29 +0000 (18:43 +0000)]
Use explicitly-sized enums in GrGLProgramDesc::KeyHeader

Uses enums explicitly sized to 8 bits in GrGLProgramDesc::KeyHeader,
instead of storing them as uint8_t values. This avoids the need to
static_cast them.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/23875048

git-svn-id: http://skia.googlecode.com/svn/trunk@11560 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix build.
scroggo@google.com [Tue, 1 Oct 2013 17:46:35 +0000 (17:46 +0000)]
Fix build.

Predeclare a function.

Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@11559 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAdd an option on SkImageDecoder to skip writing 0s.
scroggo@google.com [Tue, 1 Oct 2013 17:27:15 +0000 (17:27 +0000)]
Add an option on SkImageDecoder to skip writing 0s.

Only implemented for PNG.

Add a getter and setter, and sets the default to false in the
constructor. Also copies the setting in copyFieldsToOther.

Fix an indpendent bug where fDitherImage was not being copied in
copyFieldsToOther.

In SkScaledBitmapSampler::begin, consolidate the settings passed in
by passing a const reference to the decoder. The decoder can be
referenced for its settings of dither, unpremultiplied, and now
skipping writing zeroes. Update callers to use the new API. In png
decoder, rather than passing around a pointer to an initial
read of getDitherImage, and potentially changing it, look at the
field on the decoder itself, and modify it directly. This is a
change in behavior - now if that same decoder is used to decode
a different image, the dither setting has changed. I think this is
okay because A) the typical use case is to use a new decoder for
each decode, B) we do not make any promises that a decode does not
change the decoder and C) it makes the code in SkScaledBitmapSampler
much cleaner.

In SkScaledBitmapScampler, add new row procs for skipping zeroes. Now
that choosing the row proc has five dimensions (src config, dst config,
dither, skip writing zeroes, unpremultiplied), use a new method: each
src/dst combination has a function for choosing the right proc depending
on the decoder.

SkScaledBitmapScampler::RowProc is now public for convenience.

Remove Sample_Gray_D8888_Unpremul, which is effectively no different
from Sample_Gray_D8888.

In cases where unpremultiplied was trivial, such as 565 and when
sampling from gray, decoding may now succeed.

Add a benchmark (currently disabled) for comparing the speed of skipping
writing zeroes versus not skipping. For this particular image, which is
mostly transparent pixels, normal decoding took about 3.6 milliseconds,
while skipping zeroes in the decode took only about 2.5 milliseconds
(this is on a Nexus 4). Presumably it would be slower on an image
with a small amount of transparency, but there will be no slowdown
for an image which reports that it has no transparency.

In SkImageRef_ashmem, always skip writing zeroes, since ashmem
memory is guaranteed to be initialized to 0.

Add a flag to skip writing zeroes in skimage.

Add a regression test for choosing the rowproc to ensure I did not
change any behavior accidentally.

BUG=skia:1661
R=reed@google.com

Review URL: https://codereview.chromium.org/24269006

git-svn-id: http://skia.googlecode.com/svn/trunk@11558 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoFix ninja build on Android
djsollen@google.com [Tue, 1 Oct 2013 15:31:54 +0000 (15:31 +0000)]
Fix ninja build on Android

R=mtklein@google.com

Review URL: https://codereview.chromium.org/25535002

git-svn-id: http://skia.googlecode.com/svn/trunk@11555 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoAllow creating a picture from skp to fail.
scroggo@google.com [Tue, 1 Oct 2013 15:30:46 +0000 (15:30 +0000)]
Allow creating a picture from skp to fail.

Replace the current constructor for creating an
SkPicturePlayback to a factory. In the factory,
check for incorrect data that would result in an invalid
playback. If the playback is invalid, return NULL, and
return NULL from SkPicture's factory as well.

Update SkTimedPicture(Playback) as well.

BUG=skia:1672
R=caryclark@google.com

Review URL: https://codereview.chromium.org/24826002

git-svn-id: http://skia.googlecode.com/svn/trunk@11554 2bbb7eff-a529-9590-31e7-b0007b416f81

10 years agoMinor changes to XPS device.
bungeman@google.com [Tue, 1 Oct 2013 15:03:18 +0000 (15:03 +0000)]
Minor changes to XPS device.

git-svn-id: http://skia.googlecode.com/svn/trunk@11552 2bbb7eff-a529-9590-31e7-b0007b416f81