scroggo [Thu, 2 Jun 2016 19:59:59 +0000 (12:59 -0700)]
Check libpng directly into third_party/
With this change, the CMake build, which does not use DEPS to sync
external projects, is able to build and use the same version of libpng
that is used in other builds.
This will allow all platforms (including Google3 CMake build) to test on
the same version of libpng, so we do not need to make SkPngCodec support
all versions of libpng.
- Update CMakeLists.txt to use the checked in libpng.
- Check in libpng version 1.6.22rc01
- Update README.google
- Replace our old LICENSE file with the latest one from libpng
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2033063003
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot
Review-Url: https://codereview.chromium.org/
2033063003
halcanary [Thu, 2 Jun 2016 19:41:14 +0000 (12:41 -0700)]
SkMultiPictureDocument & SkMultiPictureDocumentReader
also, a new DM::Src.
motivation: To be used to test the printing pipeline in Chromium.
BUG=skia:5370
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023593002
Review-Url: https://codereview.chromium.org/
2023593002
reed [Thu, 2 Jun 2016 19:40:22 +0000 (12:40 -0700)]
add MakeS32 helper to SkImageInfo, fix named-gamma constructor bug
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2035813003
Review-Url: https://codereview.chromium.org/
2035813003
liyuqian [Thu, 2 Jun 2016 19:16:25 +0000 (12:16 -0700)]
Implement OpenGL backend in Android viewer app
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2032623002
Review-Url: https://codereview.chromium.org/
2032623002
brianosman [Thu, 2 Jun 2016 18:44:06 +0000 (11:44 -0700)]
Fix argument parsing in android app launcher script
Makes the argument match the error message that gets printed (and users'
expectations).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2030123002
Review-Url: https://codereview.chromium.org/
2030123002
senorblanco [Thu, 2 Jun 2016 18:36:48 +0000 (11:36 -0700)]
Tessellator: stop copying vertices into Polys and Monotones.
The vertices which are produced by stage 5 of the
tesselator are copied into the Polys and MonotonePolys it
produces. This is necessary because each vertex may have an
arbitrary valence, since it may participate in an arbitrary
number of Polys, so we can't use the vertex's prev/next
pointers to represent all the Monotones of which this
vertex may be a member.
However, each Edge can only be a member of two Polys (one
on each side of the edge). So by adding two prev/next
pointer pairs to each Edge, we can represent each Monotone
as a list of edges instead. Then we no longer need to copy
the vertices.
One wrinkle is that the ear-clipping stage (6) of the
tessellator does require prev/next pointers, in order to
remove vertices as their ears are clipped. So we convert
the edge list into a vertex list during Monotone::emit(),
using the prev/next pointers temporarily for that monotone.
This change improves performance by 7-20% on a non-caching
version of the tessellator, and reduces memory use.
Other notes:
1) Polys are initially constructed empty (no edges), but
with the top vertex, which is needed for splitting
Polys. Edges are added to Polys only after their bottom
vertex is seen.
2) MonotonePolys are always constructed with one edge, so
we always know their handedness (left/right).
MonotonePoly::addEdge() no longer detects when a monotone
is "done" (edge of opposite handedness); this is handled
by Poly::addEdge(), so MonotonePoly::addEdge() has no
return value.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2029243002
Review-Url: https://codereview.chromium.org/
2029243002
robertphillips [Thu, 2 Jun 2016 17:57:59 +0000 (10:57 -0700)]
Adjust tolerance for when Ganesh stroked-line-as-rect optimization kicks in
Some GPUs results look worse for the < 1.0f tolerance (i.e., iPad)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2035843002
Review-Url: https://codereview.chromium.org/
2035843002
bungeman [Thu, 2 Jun 2016 17:47:19 +0000 (10:47 -0700)]
Remove SK_SUPPORT_LEGACY_TYPEFACE_MAKE_FROM_NAME.
The define SK_SUPPORT_LEGACY_TYPEFACE_MAKE_FROM_NAME is no longer used
by any clients and the code it guards can now be removed as well.
TBR=reed
This just removes dead code.
Review-Url: https://codereview.chromium.org/
2030983002
brianosman [Thu, 2 Jun 2016 17:19:10 +0000 (10:19 -0700)]
Exclude Mali devices from manual mip-mapping.
With manual mip-mapping, the Nexus 10 is failing the sRGB mip-map test. That suggests a failure in the sRGB implementation (decode after bilerp, possibly?). Using the driver's mip-mapper resolves the unit test issue, at least.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2036763002
Review-Url: https://codereview.chromium.org/
2036763002
cblume [Thu, 2 Jun 2016 16:01:48 +0000 (09:01 -0700)]
Add getting the size of a given mipmap level.
When allocating memory for mipmaps, it would be very handy to know the
dimensions of a given mipmap level.
R=bsalomon@google.com
BUG=578304
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2018283002
Review-Url: https://codereview.chromium.org/
2018283002
brianosman [Thu, 2 Jun 2016 15:59:34 +0000 (08:59 -0700)]
Add a caps bit to enable/disable the new manual mip-mapper
Turn it off on Adreno3xx devices, because the small-render-target bug on
those devices leads to empty mipmaps for the smallest mips.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2026393004
Review-Url: https://codereview.chromium.org/
2026393004
brianosman [Thu, 2 Jun 2016 13:50:40 +0000 (06:50 -0700)]
Fix incorrect parameter in new benchmark.
An old value for one of the dimensions slipped in with the original CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2033713003
Review-Url: https://codereview.chromium.org/
2033713003
brianosman [Thu, 2 Jun 2016 12:49:21 +0000 (05:49 -0700)]
Manually generated sRGB mipmaps, with successively smaller draws.
Dirty GL-generated mipmaps whenever an sRGB texture is used with a new
value for TEXTURE_SRGB_DECODE. Add a new test rectangle to the gamma GM
that tests that textures are correctly converted to linear before
filtering when generating mipmaps.
Added a new unit test that alternates how a texture is interpreted (sRGB
or not), to verify that we rebuild mipmaps when needed, and that we get
the correct results out in both modes.
This test originally failed on four of our bots producing incorrect mips
in three different ways. I'm not real surprised, but it looks like
we can't rely on glGenerateMipmap to do the right thing, in conjunction
with TEXTURE_SRGB_DECODE.
Instead, actually create mip-chains using a series of draw calls.
(My first attempt used glBlitFramebuffer, and that still had bugs on
several bots). This approach appears to work correctly on any device
that fully supports sRGB.
Because the mipmap draws are fairly destructive to state, I had to
hoist them out of bindTexture. That means adding a second pass over
the texture accesses in the processor, at the very beginning of flush.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1840473002
Review-Url: https://codereview.chromium.org/
2007973002
robertphillips [Thu, 2 Jun 2016 12:21:34 +0000 (05:21 -0700)]
Handle stroked single line special case in Ganesh
This CL roughly halves the time spent on the captured stroked lines skp.
On my Linux desktop it boosts the external benchmark from 2618 to 5007.
This is a companion to: https://codereview.chromium.org/
2019193002/ (Add new GM to exercise stroked line special case)
The idea is to land the GM first so any regressions are visible.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023693002
Review-Url: https://codereview.chromium.org/
2023693002
mbarbella [Wed, 1 Jun 2016 22:39:47 +0000 (15:39 -0700)]
Add a test to ensure that a case where SkCubicClipper::ChopMonoAtY returns false is handled properly.
Also fixes a style issue in the fix for the issue being tested.
BUG=chromium:613918
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2021343004
Review-Url: https://codereview.chromium.org/
2021343004
msarett [Wed, 1 Jun 2016 21:47:18 +0000 (14:47 -0700)]
Create SkColorSpaceXform to handle color conversions
Also adds testing of qcms color correction, so we can compare
SkColorSpaceXform outputs to qcms outputs.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1952063002
Committed: https://skia.googlesource.com/skia/+/
740cc88ee3d63c75e52d31238f2a32600cc57a8c
Review-Url: https://codereview.chromium.org/
1952063002
msarett [Wed, 1 Jun 2016 21:43:36 +0000 (14:43 -0700)]
Recognize common parametric gamma
5% of images with ICC profiles (in my test set of 10k)
have this exact gamma representation, which is very close
to 2.2f.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2027413002
Review-Url: https://codereview.chromium.org/
2027413002
brianosman [Wed, 1 Jun 2016 20:49:27 +0000 (13:49 -0700)]
Release surface between runs to avoid seg fault
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2032693002
Review-Url: https://codereview.chromium.org/
2032693002
Brian Salomon [Wed, 1 Jun 2016 20:02:17 +0000 (16:02 -0400)]
Fix uninit warning on valgrind bot in SkPathPriv:IsSimpleClosedRect
TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2030713002
Review URL: https://codereview.chromium.org/
2030713002 .
brianosman [Wed, 1 Jun 2016 19:40:15 +0000 (12:40 -0700)]
New benchmark to measure GPU mip-mapping performance
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2030673002
Review-Url: https://codereview.chromium.org/
2030673002
scroggo [Wed, 1 Jun 2016 19:08:23 +0000 (12:08 -0700)]
Revert of Make SkPngCodec decode progressively. (patchset #24 id:480001 of https://codereview.chromium.org/
1997703003/ )
Reason for revert:
Still breaking Google3 e.g.:
https://sponge.corp.google.com/target?id=
9261d31b-34fc-4f0f-981e-
f92f7c5cea2c&target=//third_party/skia/HEAD:dm#shard=1|run=1|attempt=1|page=-1
https://test.corp.google.com/ui#cl=
123773095&flags=CAMQBQ==&id=OCL:
123773095:BASE:
123773415:
1464804876959:
b0ea9b1c&t=//third_party/skia/HEAD:dm
Original issue's description:
> Make SkPngCodec decode progressively.
>
> This is a step towards using SkCodec in Chromium, where progressive
> decoding is necessary.
>
> Switch from using png_read_row (which expects all the data to be
> available) to png_process_data, which uses callbacks when rows are
> available.
>
> Create a new API for SkCodec, which supports progressive decoding and
> scanline decoding. Future changes will switch the other clients off of
> startScanlineDecode and get/skip-Scanlines to the new API.
>
> Remove SkCodec::kNone_ScanlineOrder, which was only used for interlaced
> PNG images. In the new API, interlaced PNG fits kTopDown. Also remove
> updateCurrScanline(), which was only used by the old implementation for
> interlaced PNG.
>
> DMSrcSink:
> - In CodecSrc::kScanline_Mode, use the new method for scanline decoding
> for the supported formats (just PNG and PNG-in-ICO for now).
>
> fuzz.cpp:
> - Remove reference to kNone_ScanlineOrder
>
> SkCodec:
> - Add new APIs:
> - startIncrementalDecode
> - incrementalDecode
> - Remove kNone_SkScanlineOrder and updateCurrScanline()
>
> SkPngCodec:
> - Implement new APIs
> - Switch from sk_read_fn/png_read_row etc to png_process_data
> - Expand AutoCleanPng's role to decode the header and create the
> SkPngCodec
> - Make the interlaced PNG decoder report how many lines were
> initialized during an incomplete decode
> - Make initializeSwizzler return a bool instead of an SkCodec::Result
> (It only returned kSuccess or kInvalidInput anyway)
>
> SkIcoCodec:
> - Implement the new APIs; supported for PNG in ICO
>
> SkSampledCodec:
> - Call the new method for decoding scanlines, and fall back to the old
> method if the new version is unimplemented
> - Remove references to kNone_SkScanlineOrder
>
> tests/CodecPartial:
> - Add a test which decodes part of an image, then finishes the decode,
> and compares it to the straightforward method
>
> tests/CodecTest:
> - Add a test which decodes all scanlines using the new method
> - Repurpose the Codec_stripes test to decode using the new method in
> sections rather than all at once
> - In the method check(), add a parameter for whether the image supports
> the new method of scanline decoding, and be explicit about whether an
> image supports incomplete
> - Test incomplete PNG decodes. We should have been doing it anyway for
> non-interlaced (except for an image that is too small - one row), but
> the new method supports interlaced incomplete as well
> - Make test_invalid_parameters test the new method
> - Add a test to ensure that it's safe to fall back to scanline decoding without
> rewinding
>
> BUG=skia:4211
>
> The new version was generally faster than the old version (but not significantly so).
>
> Some raw performance differences can be found at https://docs.google.com/a/google.com/spreadsheets/d/1Gis3aRCEa72qBNDRMgGDg3jD-pMgO-FXldlNF9ejo4o/
>
> Design doc can be found at https://docs.google.com/a/google.com/document/d/11Mn8-ePDKwVEMCjs3nWwSjxcSpJ_Cu8DF57KNtUmgLM/
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1997703003
>
> Committed: https://skia.googlesource.com/skia/+/
a4b09a117d4d1ba5dda372e6a2323e653766539e
>
> Committed: https://skia.googlesource.com/skia/+/
30e78c9737ff4861dc4e3fa1e4cd010680ed6965
TBR=reed@google.com,msarett@google.com,scroggo@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4211
Review-Url: https://codereview.chromium.org/
2026383002
bsalomon [Wed, 1 Jun 2016 16:42:31 +0000 (09:42 -0700)]
Add SkPathPriv::IsSimpleClosedRect
This function looks for "simple" rect paths. Simple here means begins and ends at a corner and is closed (either manually or with a close verb). Unlike SkPath::isRect this returns the starting point index (using the same start indexing scheme as SkPath::addRect).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2017313002
Review-Url: https://codereview.chromium.org/
2017313002
jvanverth [Wed, 1 Jun 2016 16:39:15 +0000 (09:39 -0700)]
Add offset to memory allocations
This is setting up for suballocations within one large
allocation
BUG=skia:5031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2018933004
TBR=bsalomon@google.com
Review-Url: https://codereview.chromium.org/
2018933004
msarett [Wed, 1 Jun 2016 16:16:04 +0000 (09:16 -0700)]
Revert of Create SkColorSpaceXform to handle color conversions (patchset #10 id:260001 of https://codereview.chromium.org/
1952063002/ )
Reason for revert:
Google3 can't find qcms
Original issue's description:
> Create SkColorSpaceXform to handle color conversions
>
> Also adds testing of qcms color correction, so we can compare
> SkColorSpaceXform outputs to qcms outputs.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1952063002
>
> Committed: https://skia.googlesource.com/skia/+/
740cc88ee3d63c75e52d31238f2a32600cc57a8c
TBR=reed@google.com,scroggo@google.com,mtklein@google.com,herb@google.com,brianosman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/
2023093004
kulshin [Wed, 1 Jun 2016 15:31:28 +0000 (08:31 -0700)]
Implement support for rendering color emoji on Windows
This change adds support to the DirectWrite scaler context
for detection of color fonts. If it detects a color font and
the glyph is a color glyph, it will use DirectWrite's
TranslateColorGlyphRun API and generate an image of the
glyph that can then be rendered.
Chromium tests: https://codereview.chromium.org/
2003853002
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1984943002
Review-Url: https://codereview.chromium.org/
1984943002
msarett [Wed, 1 Jun 2016 14:55:30 +0000 (07:55 -0700)]
Create SkColorSpaceXform to handle color conversions
Also adds testing of qcms color correction, so we can compare
SkColorSpaceXform outputs to qcms outputs.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1952063002
Review-Url: https://codereview.chromium.org/
1952063002
scroggo [Wed, 1 Jun 2016 14:31:28 +0000 (07:31 -0700)]
Make SkPngCodec decode progressively.
This is a step towards using SkCodec in Chromium, where progressive
decoding is necessary.
Switch from using png_read_row (which expects all the data to be
available) to png_process_data, which uses callbacks when rows are
available.
Create a new API for SkCodec, which supports progressive decoding and
scanline decoding. Future changes will switch the other clients off of
startScanlineDecode and get/skip-Scanlines to the new API.
Remove SkCodec::kNone_ScanlineOrder, which was only used for interlaced
PNG images. In the new API, interlaced PNG fits kTopDown. Also remove
updateCurrScanline(), which was only used by the old implementation for
interlaced PNG.
DMSrcSink:
- In CodecSrc::kScanline_Mode, use the new method for scanline decoding
for the supported formats (just PNG and PNG-in-ICO for now).
fuzz.cpp:
- Remove reference to kNone_ScanlineOrder
SkCodec:
- Add new APIs:
- startIncrementalDecode
- incrementalDecode
- Remove kNone_SkScanlineOrder and updateCurrScanline()
SkPngCodec:
- Implement new APIs
- Switch from sk_read_fn/png_read_row etc to png_process_data
- Expand AutoCleanPng's role to decode the header and create the
SkPngCodec
- Make the interlaced PNG decoder report how many lines were
initialized during an incomplete decode
- Make initializeSwizzler return a bool instead of an SkCodec::Result
(It only returned kSuccess or kInvalidInput anyway)
SkIcoCodec:
- Implement the new APIs; supported for PNG in ICO
SkSampledCodec:
- Call the new method for decoding scanlines, and fall back to the old
method if the new version is unimplemented
- Remove references to kNone_SkScanlineOrder
tests/CodecPartial:
- Add a test which decodes part of an image, then finishes the decode,
and compares it to the straightforward method
tests/CodecTest:
- Add a test which decodes all scanlines using the new method
- Repurpose the Codec_stripes test to decode using the new method in
sections rather than all at once
- In the method check(), add a parameter for whether the image supports
the new method of scanline decoding, and be explicit about whether an
image supports incomplete
- Test incomplete PNG decodes. We should have been doing it anyway for
non-interlaced (except for an image that is too small - one row), but
the new method supports interlaced incomplete as well
- Make test_invalid_parameters test the new method
- Add a test to ensure that it's safe to fall back to scanline decoding without
rewinding
BUG=skia:4211
The new version was generally faster than the old version (but not significantly so).
Some raw performance differences can be found at https://docs.google.com/a/google.com/spreadsheets/d/1Gis3aRCEa72qBNDRMgGDg3jD-pMgO-FXldlNF9ejo4o/
Design doc can be found at https://docs.google.com/a/google.com/document/d/11Mn8-ePDKwVEMCjs3nWwSjxcSpJ_Cu8DF57KNtUmgLM/
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1997703003
Committed: https://skia.googlesource.com/skia/+/
a4b09a117d4d1ba5dda372e6a2323e653766539e
Review-Url: https://codereview.chromium.org/
1997703003
sdefresne [Wed, 1 Jun 2016 14:08:56 +0000 (07:08 -0700)]
[GN] Add support for disabling opts via SK_BUILD_NO_OPTS define.
When targetting iOS and using gyp to generate the build files, it is not
possible to select files to build depending on the architecture. Due to
that, the skia code was disabling all optimisation when SK_BUILD_FOR_IOS
was defined.
Since it is possible to select the correct optimised version when using
gn, this pessimisation is hurting the build. Introduce a new define to
disable the optimisation SK_BUILD_NO_OPTS. It will be used by Chromium
when building skia for iOS with gyp but not gn.
Define SK_BUILD_NO_OPTS along-side SK_BUILD_FOR_IOS for all files that
look like build configuration (Xcode projects, gyp configuration files,
public.bzl) in order to avoid introducing breakage on those builds.
BUG=607933
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2002423002
Review-Url: https://codereview.chromium.org/
2002423002
caryclark [Wed, 1 Jun 2016 11:42:02 +0000 (04:42 -0700)]
always compute a cubic tangent
If the inflection of a cubic is also the cusp, the tangent
is degenerate at that t when computed directly. Rather than
giving up, subdivide the curve there and use the computed
control points to compute the tangent.
This strategy also removes the error paths where the tangent
formerly could not be computed.
R=reed@google.com
BUG=615686
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2020293002
Review-Url: https://codereview.chromium.org/
2020293002
mbarbella [Tue, 31 May 2016 21:44:01 +0000 (14:44 -0700)]
Check results from calls to SkCubicClipper::ChopMonoAtY.
BUG=613918
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2006143009
Review-Url: https://codereview.chromium.org/
2006143009
scroggo [Tue, 31 May 2016 20:52:47 +0000 (13:52 -0700)]
Revert of Make SkPngCodec decode progressively. (patchset #18 id:340001 of https://codereview.chromium.org/
1997703003/ )
Reason for revert:
This is failing tests and then crashing on Google3 [1]. The crashes are fixed by crrev.com/
2026873002, but to fix the builder we'll need to upgrade its version of libpng.
[1] https://sponge.corp.google.com/target?id=
e545ef55-4da4-4931-9524-
1ac92acb61b1&target=//third_party/skia/HEAD:dm#shard=1|run=1|attempt=1|page=-1
Original issue's description:
> Make SkPngCodec decode progressively.
>
> This is a step towards using SkCodec in Chromium, where progressive
> decoding is necessary.
>
> Switch from using png_read_row (which expects all the data to be
> available) to png_process_data, which uses callbacks when rows are
> available.
>
> Create a new API for SkCodec, which supports progressive decoding and
> scanline decoding. Future changes will switch the other clients off of
> startScanlineDecode and get/skip-Scanlines to the new API.
>
> Remove SkCodec::kNone_ScanlineOrder, which was only used for interlaced
> PNG images. In the new API, interlaced PNG fits kTopDown. Also remove
> updateCurrScanline(), which was only used by the old implementation for
> interlaced PNG.
>
> DMSrcSink:
> - In CodecSrc::kScanline_Mode, use the new method for scanline decoding
> for the supported formats (just PNG and PNG-in-ICO for now).
>
> fuzz.cpp:
> - Remove reference to kNone_ScanlineOrder
>
> SkCodec:
> - Add new APIs:
> - startIncrementalDecode
> - incrementalDecode
> - Remove kNone_SkScanlineOrder and updateCurrScanline()
>
> SkPngCodec:
> - Implement new APIs
> - Switch from sk_read_fn/png_read_row etc to png_process_data
> - Expand AutoCleanPng's role to decode the header and create the
> SkPngCodec
> - Make the interlaced PNG decoder report how many lines were
> initialized during an incomplete decode
> - Make initializeSwizzler return a bool instead of an SkCodec::Result
> (It only returned kSuccess or kInvalidInput anyway)
>
> SkIcoCodec:
> - Implement the new APIs; supported for PNG in ICO
>
> SkSampledCodec:
> - Call the new method for decoding scanlines, and fall back to the old
> method if the new version is unimplemented
> - Remove references to kNone_SkScanlineOrder
>
> tests/CodecPartial:
> - Add a test which decodes part of an image, then finishes the decode,
> and compares it to the straightforward method
>
> tests/CodecTest:
> - Add a test which decodes all scanlines using the new method
> - Repurpose the Codec_stripes test to decode using the new method in
> sections rather than all at once
> - In the method check(), add a parameter for whether the image supports
> the new method of scanline decoding, and be explicit about whether an
> image supports incomplete
> - Test incomplete PNG decodes. We should have been doing it anyway for
> non-interlaced (except for an image that is too small - one row), but
> the new method supports interlaced incomplete as well
> - Make test_invalid_parameters test the new method
> - Add a test to ensure that it's safe to fall back to scanline decoding without
> rewinding
>
> BUG=skia:4211
>
> The new version was generally faster than the old version (but not significantly so).
>
> Some raw performance differences can be found at https://docs.google.com/a/google.com/spreadsheets/d/1Gis3aRCEa72qBNDRMgGDg3jD-pMgO-FXldlNF9ejo4o/
>
> Design doc can be found at https://docs.google.com/a/google.com/document/d/11Mn8-ePDKwVEMCjs3nWwSjxcSpJ_Cu8DF57KNtUmgLM/
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1997703003
>
> Committed: https://skia.googlesource.com/skia/+/
a4b09a117d4d1ba5dda372e6a2323e653766539e
TBR=reed@google.com,msarett@google.com,scroggo@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4211
Review-Url: https://codereview.chromium.org/
2023103002
jcgregorio [Tue, 31 May 2016 19:51:31 +0000 (12:51 -0700)]
skiaserve: Add /quitquitquit handler. Will be used in the hosted debugger.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023023002
TBR=ethannicholas
Review-Url: https://codereview.chromium.org/
2023023002
robertphillips [Tue, 31 May 2016 19:08:25 +0000 (12:08 -0700)]
Make use of new SkLights class
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2026763002
Review-Url: https://codereview.chromium.org/
2026763002
scroggo [Tue, 31 May 2016 18:47:39 +0000 (11:47 -0700)]
Fix build error
TBR=herb@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2021393002
Review-Url: https://codereview.chromium.org/
2021393002
mboc [Tue, 31 May 2016 18:42:36 +0000 (11:42 -0700)]
SkTypeface::MakeFromName to take SkFontStyle.
SkTypeface::MakeFromName currently takes SkTypeface::Style,
which is quite limited. This starts the transition to this
function taking SkFontStyle instead.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1818043002
TBR=reed
He said it sounded like a good idea.
Review-Url: https://codereview.chromium.org/
1818043002
halcanary [Tue, 31 May 2016 18:23:42 +0000 (11:23 -0700)]
SkXPS: clean up SkConstexprMath
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2000853003
Review-Url: https://codereview.chromium.org/
2000853003
halcanary [Tue, 31 May 2016 17:57:36 +0000 (10:57 -0700)]
SkEncodedInfo: simplify
No public API change.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2025713003
Review-Url: https://codereview.chromium.org/
2025713003
bsalomon [Tue, 31 May 2016 17:42:16 +0000 (10:42 -0700)]
Fix bug where SkPath will convert an arc to an oval and change the starting point.
Adds unit tests to test the behavior of addArc to oval conversions.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2017743002
Review-Url: https://codereview.chromium.org/
2017743002
herb [Tue, 31 May 2016 17:04:24 +0000 (10:04 -0700)]
Use special case for 0x00 and 0xFF alpha to go faster.
Base Exp Ratio Name
3916010 3077544 0.785888 top25desk_amazon_com.skp_1
3462512 2776580 0.801898 top25desk_google_com_calendar_.skp_1
3446330 3134187 0.909427 top25desk_ebay_com.skp_1
590474 546375 0.925316 top25desk_techcrunch_com.skp_1
3804991 3544162 0.931451 top25desk_google_com__hl_en_q_b.skp_1
996037 939960 0.9437 top25desk_blogger.skp_1
973264 922677 0.948023 top25desk_wikipedia__1_tab_.skp_1
4514050 4295660 0.95162 top25desk_docs___1_open_documen.skp_1
4255383 4110057 0.965849 top25desk_linkedin.skp_1
8408717 8191843 0.974208 top25desk_booking_com.skp_1
2878529 2806501 0.974977 top25desk_plus_google_com_11003.skp_1
11509894 11254486 0.97781 top25desk_pinterest.skp_1
9132514 9010635 0.986654 top25desk_weather_com.skp_1
6504720 6419592 0.986913 top25desk_sports_yahoo_com_.skp_1
9136774 9033870 0.988737 top25desk_answers_yahoo_com.skp_1
4836199 4799784 0.99247 top25desk_news_yahoo_com.skp_1
1393650 1384065 0.993122 top25desk_games_yahoo_com.skp_1
6779678 6735278 0.993451 top25desk_youtube_com.skp_1
10926943 10882308 0.995915 top25desk_espn.skp_1
4259514 4245489 0.996707 top25desk_facebook.skp_1
10955293 10947657 0.999303 top25desk_google_com_search_q_c.skp_1
9153575 9207386 1.00588 top25desk_twitter.skp_1
3865942 3906345 1.01045 top25desk_wordpress.skp_1
4180009 4305530 1.03003 top25desk_mail_google_com_mail_.skp_1
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2020463003
Review-Url: https://codereview.chromium.org/
2020463003
cblume [Tue, 31 May 2016 16:55:08 +0000 (09:55 -0700)]
Add mip support to *DeferredTextureImageData functions.
As a first step, I want to add the ability to store multiple mip levels
in the opaque object.
I will follow this with using SkMipMap to generate and store the mip
levels and generating the texture from those stored mip levels.
R=bsalomon@chromium.org
CC=ericrk@chromium.org
BUG=578304
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023573002
Review-Url: https://codereview.chromium.org/
2023573002
lsalzman [Tue, 31 May 2016 16:46:00 +0000 (09:46 -0700)]
Filter out degenerate contours in GrConvexPolyEffect
As noticed in a downstream Firefox bug report https://bugzilla.mozilla.org/show_bug.cgi?id=1255062
If a path such as (moveTo, moveTo, lineTo, lineTo, close) is supplied,
and if the non-degenerate contour is convex, the convexity test will
pass, and GrConvexPolyEffect will be used.
However, the path's raw points are used to build the edge list, which
does not filter out degenerate contours. This may cause the polygon to
fail to draw.
This patch ensures that the degenerate contours are filtered out by
using an iterator as the path convexity test does.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2018613003
Review-Url: https://codereview.chromium.org/
2018613003
jvanverth [Tue, 31 May 2016 16:39:20 +0000 (09:39 -0700)]
Add missing files for GL unix viewer.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023943004
Review-Url: https://codereview.chromium.org/
2023943004
msarett [Tue, 31 May 2016 16:13:04 +0000 (09:13 -0700)]
Fix integer overflow in SkColorSpace
BUG=skia:5361
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2020303002
Review-Url: https://codereview.chromium.org/
2020303002
robertphillips [Tue, 31 May 2016 13:59:18 +0000 (06:59 -0700)]
Add new GM to exercise stroked line special case
This is a companion to: https://codereview.chromium.org/
2023693002/ (Handle stroked single line special case in Ganesh)
The idea is to land this CL first so any regressions are visible.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2019193002
Review-Url: https://codereview.chromium.org/
2019193002
robertphillips [Tue, 31 May 2016 13:56:28 +0000 (06:56 -0700)]
Add SkLights class
The SkLights class is intended to be passed to the drawLitAtlas call (and then on to SkLightingShader).
This CL is calved off of https://codereview.chromium.org/
1261433009/ (Add SkCanvas::drawLitAtlas call).
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1255133004
Review-Url: https://codereview.chromium.org/
1255133004
fmalita [Tue, 31 May 2016 13:32:57 +0000 (06:32 -0700)]
Remove unused SkPictureGpuAnalyzer::analyze()
After https://crrev.com/
c64bd21780da13051846ae45b54a1e6c6bf6ac52,
Chromium no longer uses analyze().
R=mtklein@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2014983002
Review-Url: https://codereview.chromium.org/
2014983002
scroggo [Tue, 31 May 2016 13:30:14 +0000 (06:30 -0700)]
Make SkPngCodec decode progressively.
This is a step towards using SkCodec in Chromium, where progressive
decoding is necessary.
Switch from using png_read_row (which expects all the data to be
available) to png_process_data, which uses callbacks when rows are
available.
Create a new API for SkCodec, which supports progressive decoding and
scanline decoding. Future changes will switch the other clients off of
startScanlineDecode and get/skip-Scanlines to the new API.
Remove SkCodec::kNone_ScanlineOrder, which was only used for interlaced
PNG images. In the new API, interlaced PNG fits kTopDown. Also remove
updateCurrScanline(), which was only used by the old implementation for
interlaced PNG.
DMSrcSink:
- In CodecSrc::kScanline_Mode, use the new method for scanline decoding
for the supported formats (just PNG and PNG-in-ICO for now).
fuzz.cpp:
- Remove reference to kNone_ScanlineOrder
SkCodec:
- Add new APIs:
- startIncrementalDecode
- incrementalDecode
- Remove kNone_SkScanlineOrder and updateCurrScanline()
SkPngCodec:
- Implement new APIs
- Switch from sk_read_fn/png_read_row etc to png_process_data
- Expand AutoCleanPng's role to decode the header and create the
SkPngCodec
- Make the interlaced PNG decoder report how many lines were
initialized during an incomplete decode
- Make initializeSwizzler return a bool instead of an SkCodec::Result
(It only returned kSuccess or kInvalidInput anyway)
SkIcoCodec:
- Implement the new APIs; supported for PNG in ICO
SkSampledCodec:
- Call the new method for decoding scanlines, and fall back to the old
method if the new version is unimplemented
- Remove references to kNone_SkScanlineOrder
tests/CodecPartial:
- Add a test which decodes part of an image, then finishes the decode,
and compares it to the straightforward method
tests/CodecTest:
- Add a test which decodes all scanlines using the new method
- Repurpose the Codec_stripes test to decode using the new method in
sections rather than all at once
- In the method check(), add a parameter for whether the image supports
the new method of scanline decoding, and be explicit about whether an
image supports incomplete
- Test incomplete PNG decodes. We should have been doing it anyway for
non-interlaced (except for an image that is too small - one row), but
the new method supports interlaced incomplete as well
- Make test_invalid_parameters test the new method
- Add a test to ensure that it's safe to fall back to scanline decoding without
rewinding
BUG=skia:4211
The new version was generally faster than the old version (but not significantly so).
Some raw performance differences can be found at https://docs.google.com/a/google.com/spreadsheets/d/1Gis3aRCEa72qBNDRMgGDg3jD-pMgO-FXldlNF9ejo4o/
Design doc can be found at https://docs.google.com/a/google.com/document/d/11Mn8-ePDKwVEMCjs3nWwSjxcSpJ_Cu8DF57KNtUmgLM/
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1997703003
Review-Url: https://codereview.chromium.org/
1997703003
kkinnunen [Tue, 31 May 2016 05:30:24 +0000 (22:30 -0700)]
Fix incorrect sampler locations when using CHROMIUM_bind_uniform_location
Fix incorrect sampler locations when using
CHROMIUM_bind_uniform_location.
The extension is not used at the moment, though.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2023783002
Review-Url: https://codereview.chromium.org/
2023783002
update-skps [Sun, 29 May 2016 08:00:14 +0000 (01:00 -0700)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2024513002
Review-Url: https://codereview.chromium.org/
2024513002
robertphillips [Sat, 28 May 2016 15:51:06 +0000 (08:51 -0700)]
Change parameters to GrPipelineBuilder's ctor
This is just plumbing prep to remove the GrRenderTarget from the GrPipelineBuilder.
Split out of: https://codereview.chromium.org/
1988923002/ (Declassify GrClipMaskManager and Remove GrRenderTarget and GrDrawTarget from GrPipelineBuilder)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2015333002
Review-Url: https://codereview.chromium.org/
2015333002
msarett [Fri, 27 May 2016 21:01:02 +0000 (14:01 -0700)]
Add interesting features to visualize_color_gamut
(1) Draw triangles onto a D50 color gamut so they are
actually in the correct place.
(2) Add options to display canonical sRGB and Adobe RGB
gamuts.
(3) Label the R, G, and B points of the color gamut.
(4) Decode and reencode the input image without color
correction, so we can compare to the corrected version.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2017153002
Review-Url: https://codereview.chromium.org/
2017153002
bungeman [Fri, 27 May 2016 19:27:33 +0000 (12:27 -0700)]
Update VC++ version in Windows quick start.
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=
2019093002
Review-Url: https://codereview.chromium.org/
2019093002
msarett [Fri, 27 May 2016 18:31:55 +0000 (11:31 -0700)]
Rewrite assignment operator on SkBitmap, fix asan
TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2020683002
Review-Url: https://codereview.chromium.org/
2020683002
borenet [Fri, 27 May 2016 18:11:22 +0000 (11:11 -0700)]
isolate_android_sdk: Find or download isolate binary, fix infra path
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2016353003
Review-Url: https://codereview.chromium.org/
2016353003
herb [Fri, 27 May 2016 17:57:58 +0000 (10:57 -0700)]
Move forceSRGB to SkCommonFlags.
This fixes a duplicate symbol problem with the iOS build.
Add common forceSRGB flag.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2019073002
Review-Url: https://codereview.chromium.org/
2019073002
mtklein [Fri, 27 May 2016 17:47:31 +0000 (10:47 -0700)]
Clean up SkFloatBits
- remove dead code
- rewrite float -> int converters
The strategy for the new converters is:
- convert input to double
- floor/ceil/round in double space
- pin that double to [SK_MinS32, SK_MaxS32]
- truncate that double to int32_t
This simpler strategy does not work:
- floor/ceil/round in float space
- pin that float to [SK_MinS32, SK_MaxS32]
- truncate that float to int32_t
SK_MinS32 and SK_MaxS32 are not representable as floats:
they round to the nearest float, ±2^31, which makes the
pin insufficient for floats near SK_MinS32 (-2^31+1) or
SK_MaxS32 (+2^31-1).
float only has 24 bits of precision, and we need 31.
double can represent all integers up to 50-something bits.
An alternative is to pin in float to ±
2147483520, the last
exactly representable float before SK_MaxS32 (127 too small).
Our tests test that we round as floor(x+0.5), which can
return different numbers than round(x) for negative x.
So this CL explicitly uses floor(x+0.5).
I've updated the tests with ±inf and ±NaN, and tried to
make them a little clearer, especially using SK_MinS32
instead of -SK_MaxS32.
I have not timed anything here. I have never seen any of these
methods in a profile.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2012333003
Review-Url: https://codereview.chromium.org/
2012333003
bsalomon [Fri, 27 May 2016 16:17:04 +0000 (09:17 -0700)]
Make SkPath::isOval() and SkPath::isRRect return the orientation and starting index.
These are tracked in SkPathRef.
Unit tests are updated to test that the returned values are correct.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2012233002
Review-Url: https://codereview.chromium.org/
2012233002
liyuqian [Fri, 27 May 2016 15:52:52 +0000 (08:52 -0700)]
Now we can use drawer to view the state information of the native app, and set its state using the spinner.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2004633002
Committed: https://skia.googlesource.com/skia/+/
4e4e30823fba0047b93a56bfcf05c04ca57e82ec
Review-Url: https://codereview.chromium.org/
2004633002
herb [Fri, 27 May 2016 15:15:05 +0000 (08:15 -0700)]
Add forceSRGB flag to dm.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2011333002
Review-Url: https://codereview.chromium.org/
2011333002
liyuqian [Fri, 27 May 2016 15:08:34 +0000 (08:08 -0700)]
Update Android SDK
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2016363002
Review-Url: https://codereview.chromium.org/
2016363002
msarett [Fri, 27 May 2016 14:39:02 +0000 (07:39 -0700)]
Add SkColorSpace to SkImageInfo
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
2000713003
Review-Url: https://codereview.chromium.org/
2000713003
jvanverth [Fri, 27 May 2016 13:47:08 +0000 (06:47 -0700)]
Add OpenGL support to Linux viewer
Also adds a command line option (--vulkan) to choose between
Vulkan and OpenGL.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2011473003
Committed: https://skia.googlesource.com/skia/+/
10b3815a11c39b154ec7b74a2af43e019b50d48c
Review-Url: https://codereview.chromium.org/
2011473003
kjlubick [Fri, 27 May 2016 13:22:01 +0000 (06:22 -0700)]
Revert of Add drawer with state information (patchset #8 id:140001 of https://codereview.chromium.org/
2004633002/ )
Reason for revert:
Broke Build-Ubuntu-GCC-Arm7-Debug-Android_Vulkan. See https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_Vulkan/builds/134/steps/compile_skia%20on%20Ubuntu/logs/stdio.
Original issue's description:
> Now we can use drawer to view the state information of the native app, and set its state using the spinner.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2004633002
>
> Committed: https://skia.googlesource.com/skia/+/
4e4e30823fba0047b93a56bfcf05c04ca57e82ec
TBR=djsollen@google.com,jvanverth@google.com,liyuqian@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/
2016343002
kjlubick [Fri, 27 May 2016 13:20:10 +0000 (06:20 -0700)]
Revert of Add OpenGL support to Linux viewer (patchset #5 id:80001 of https://codereview.chromium.org/
2011473003/ )
Reason for revert:
Build-Ubuntu-GCC-Arm7-Debug-Android_Vulkan is broken and this patch prevents the revert of the culprit
Original issue's description:
> Add OpenGL support to Linux viewer
>
> Also adds a command line option (--vulkan) to choose between
> Vulkan and OpenGL.
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2011473003
>
> Committed: https://skia.googlesource.com/skia/+/
10b3815a11c39b154ec7b74a2af43e019b50d48c
TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com,jvanverth@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/
2015213002
jvanverth [Fri, 27 May 2016 12:47:00 +0000 (05:47 -0700)]
Add OpenGL support to Linux viewer
Also adds a command line option (--vulkan) to choose between
Vulkan and OpenGL.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2011473003
Review-Url: https://codereview.chromium.org/
2011473003
djsollen [Fri, 27 May 2016 12:39:29 +0000 (05:39 -0700)]
Remove VisualBench and its Android implementation.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2018603003
Review-Url: https://codereview.chromium.org/
2018603003
caryclark [Fri, 27 May 2016 12:24:37 +0000 (05:24 -0700)]
pin before calling acos
Adobe reports some user crashes in acos(). While the cause is
unknown, it's safe and may help stability to pin the input
in case the arguments drifted slightly outside [-1, 1].
R=reed@google.com
BUG=skia:5222
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2006653006
Review-Url: https://codereview.chromium.org/
2006653006
caryclark [Fri, 27 May 2016 12:13:26 +0000 (05:13 -0700)]
toy to play with antialias raytracing
Here's the ray tracer I wrote.
I've commented out the calls to experimental
stroking -- enough of it remains working
to help visualize what you've been talking
to me about.
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2014993002
Review-Url: https://codereview.chromium.org/
2014993002
fmalita [Fri, 27 May 2016 01:10:24 +0000 (18:10 -0700)]
Silence ASAN int32 overflow warning
It's fine to overflow SK_MaxS32 by one, the subsequent cast ensures
correct clamping. But we need to cast earlier in order to make ASAN
happy.
TBR=mtklein@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2013243002
Review-Url: https://codereview.chromium.org/
2013243002
reed [Thu, 26 May 2016 21:06:43 +0000 (14:06 -0700)]
add --forceSRGB option to nanobench, to get all src images to be SRGB
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2008333002
Review-Url: https://codereview.chromium.org/
2008333002
liyuqian [Thu, 26 May 2016 19:43:43 +0000 (12:43 -0700)]
Now we can use drawer to view the state information of the native app, and set its state using the spinner.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2004633002
Review-Url: https://codereview.chromium.org/
2004633002
reed [Thu, 26 May 2016 19:13:26 +0000 (12:13 -0700)]
add more SK_WARN_UNUSED_RESULT attributes to functions that ignore out-params if they fail
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2012943003
TBR=
Review-Url: https://codereview.chromium.org/
2012943003
borenet [Thu, 26 May 2016 18:21:02 +0000 (11:21 -0700)]
Temporarily change GalaxyS3 product.board
Swarming detects this as "m0" for some reason. Change our requested
dimension until this is fixed.
BUG=skia:5185
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
2018513004
Review-Url: https://codereview.chromium.org/
2018513004
fmalita [Thu, 26 May 2016 18:13:52 +0000 (11:13 -0700)]
Fix int32 overflow in LinearGradientContext::shade4_dx_clamp
The unconditional increment in shade4_dx_clamp can overflow int32
=> n == SK_MinS32
=> count ~= SK_MinS32
=> we skip the main shader loop 'cause count < 0
R=reed@google.com,mtklein@google.com
BUG=chromium:599458
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2010843002
Review-Url: https://codereview.chromium.org/
2010843002
msarett [Thu, 26 May 2016 18:05:37 +0000 (11:05 -0700)]
Add exact version of qcms used by Chrome for testing and comparison
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2014023003
Review-Url: https://codereview.chromium.org/
2014023003
herb [Thu, 26 May 2016 17:56:17 +0000 (10:56 -0700)]
Srcover for sprite blitters.
In order for this code to run, the gDefaultProfileIsSRGB flag needs to be true.
min base min exp percent name
5601856 4689911 0.837207 top25desk_espn.skp_1
3491515 3202806 0.917311 top25desk_facebook.skp_1
5110247 4865740 0.952154 top25desk_weather_com.skp_1
605445 585520 0.96709 top25desk_techcrunch_com.skp_1
1007151 986193 0.979191 top25desk_wikipedia__1_tab_.skp_1
5951286 5889979 0.989699 top25desk_sports_yahoo_com_.skp_1
2825583 2804853 0.992663 top25desk_plus_google_com_11003.skp_1
8839265 8823249 0.998188 top25desk_twitter.skp_1
4169125 4168882 0.999942 top25desk_docs___1_open_documen.skp_1
6615327 6620663 1.00081 top25desk_youtube_com.skp_1
4613903 4647583 1.0073 top25desk_wordpress.skp_1
2532280 2554154 1.00864 top25desk_ebay_com.skp_1
4015689 4063584 1.01193 top25desk_google_com__hl_en_q_b.skp_1
9427478 9579203 1.01609 top25desk_answers_yahoo_com.skp_1
7403901 7542770 1.01876 top25desk_booking_com.skp_1
12249953 12528353 1.02273 top25desk_google_com_search_q_c.skp_1
1078648 1111050 1.03004 top25desk_games_yahoo_com.skp_1
7232627 7481555 1.03442 top25desk_pinterest.skp_1
2996819 3112091 1.03846 top25desk_google_com_calendar_.skp_1
2181531 2271677 1.04132 top25desk_amazon_com.skp_1
925245 987545 1.06733 top25desk_blogger.skp_1
4143359 4442607 1.07222 top25desk_linkedin.skp_1
4370962 4744580 1.08548 top25desk_news_yahoo_com.skp_1
4284025 4735094 1.10529 top25desk_mail_google_com_mail_.skp_1
[mtklein] We measured the noise here to be [-5%, +8%], so most of these changes fall within the noise. We manually confirmed the two above that noise window (yahoo and mail) are also noise... srcover_srgb_srgb() did not figure prominently in their profiles. The espn and facebook improvements look real.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1996683003
Review-Url: https://codereview.chromium.org/
1996683003
caryclark [Thu, 26 May 2016 16:01:47 +0000 (09:01 -0700)]
fix security bug
This fix is a tradeoff. It changes intersection to
treat a case where one coincident run is intersected at one point
and the other edge is not as continuing to be a span.
The old code tried to treat this as a single point.
The old code is probably right, but this change alone
made the data structures inconsistent. Later, extending
the coincident runs would fail by incorrectly discarding
the single point intersection.
As a result, this fixes the security test and one other, but
makes a different test fail. Isolating the failure uncovered
a reduced case that fails with and without the change, so
there are more serious problems here. Those problems are
addressed in a separate CL.
Many of the test edits below remove ill-thought out debugging
messaging that fire off global state, which isn't usable
in a multi-threaded test environment.
In the end, with this fix, all existing tests (modulo one
new failure and one new non-failure) pass in debug and
in the extended release test suites.
TBR=reed@google.com
BUG=614248
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2018513003
Review-Url: https://codereview.chromium.org/
2018513003
halcanary [Thu, 26 May 2016 15:31:06 +0000 (08:31 -0700)]
SkPDF/SkColorSpace: use writeToICC
.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2012133003
Review-Url: https://codereview.chromium.org/
2012133003
fmalita [Wed, 25 May 2016 18:31:04 +0000 (11:31 -0700)]
Complex clipPath accounting
Add a clipPath heuristic to SkPathCounter, and extend
SkPictureGpuAnalyzer to support external clipPath() op accounting.
BUG=skia:5347
R=reed@google.com,mtklein@google.com,senorblanco@chromium.org,bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2000423005
Review-Url: https://codereview.chromium.org/
2000423005
msarett [Wed, 25 May 2016 17:13:53 +0000 (10:13 -0700)]
Assign sRGB color space to unmarked jpegs and pngs
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2009813003
Review-Url: https://codereview.chromium.org/
2009813003
msarett [Wed, 25 May 2016 15:53:40 +0000 (08:53 -0700)]
Write ICC profiles from SkColorSpace object
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2001203003
Review-Url: https://codereview.chromium.org/
2001203003
robertphillips [Tue, 24 May 2016 21:17:12 +0000 (14:17 -0700)]
Don't store resources with a unique key in GrResourceCache's fScratchMap
The reasoning here is that resources with a unique key are never selected from fScratchMap and just clog up the search for an available resource.
This knocks a 200x loop over the SVGbouncingrects case from 264ms down to 164ms.
BUG=603969
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2008083002
Review-Url: https://codereview.chromium.org/
2008083002
bsalomon [Tue, 24 May 2016 20:23:56 +0000 (13:23 -0700)]
Make Sk32ToBool inline again to silence compiler warning.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2007753003
Review-Url: https://codereview.chromium.org/
2007753003
halcanary [Tue, 24 May 2016 18:23:23 +0000 (11:23 -0700)]
CMake: skia_link_arguments.txt repects BUILD_SHARED_LIBS
.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2007093002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot
Review-Url: https://codereview.chromium.org/
2007093002
msarett [Tue, 24 May 2016 17:16:53 +0000 (10:16 -0700)]
SkColorSpace tweaks
***Move includes to the correct file
***Add "const"
***Use std::move for more efficient refs and unrefs
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2005263002
Review-Url: https://codereview.chromium.org/
2005263002
mtklein [Tue, 24 May 2016 16:44:05 +0000 (09:44 -0700)]
CMake: control static/shared the normal CMake way.
This flips the default build mode to create a static libskia.
To create a shared libskia, pass -DBUILD_SHARED_LIBS=1 when running cmake.
BUG=skia:5341
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2009503002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot
Review-Url: https://codereview.chromium.org/
2009503002
bungeman [Tue, 24 May 2016 15:08:20 +0000 (08:08 -0700)]
Use nullptr instead of 0 in call to FontConfig.
Review-Url: https://codereview.chromium.org/
2000253005
mtklein [Tue, 24 May 2016 14:01:48 +0000 (07:01 -0700)]
pthread_once -> SkOnce
one fewer sync primitive...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2003163004
Review-Url: https://codereview.chromium.org/
2003163004
scroggo [Tue, 24 May 2016 13:23:47 +0000 (06:23 -0700)]
Remove extra DNG images and use smaller HTC.dng
Update SK_IMAGE_VERSION to 7. This removes the following files from
dm testing:
lg_g4_iso_800.dng
Fuji_X20.dng
These DNG images are very large, and cause us to use a lot of memory in
testing. Moreover, they do not test anything that is not covered by
HTC.dng
In addition, use the smaller version of HTC.dng (which is already in
use in dm) in nanobench.
BUG=skia:5307
BUG=skia:5283
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2007033002
Review-Url: https://codereview.chromium.org/
2007033002
brianosman [Tue, 24 May 2016 13:18:48 +0000 (06:18 -0700)]
Remove sRGB overrides on GrTextureParams. Use GrPaint flags instead.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2002253002
Review-Url: https://codereview.chromium.org/
2002253002
halcanary [Tue, 24 May 2016 12:23:52 +0000 (05:23 -0700)]
gyp: supress more warnings for zlib
TBR=
Review-Url: https://codereview.chromium.org/
2008763003
scroggo [Mon, 23 May 2016 21:35:52 +0000 (14:35 -0700)]
Revert of Blacklist HTC.dng on 32-bit Win CPU bots (patchset #1 id:1 of https://codereview.chromium.org/
1995703002/ )
Reason for revert:
We think we have independently fixed this problem by using a smaller image for HTC.dng
Original issue's description:
> Blacklist HTC.dng on 32-bit Win CPU bots
>
> BUG=skia:5318
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1995703002
>
> Committed: https://skia.googlesource.com/skia/+/
62efdbde9987df3422f677a1a7c8f355791c1ae4
TBR=msarett@google.com,borenet@google.com,borenet@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:5318
Review-Url: https://codereview.chromium.org/
2004203002
halcanary [Mon, 23 May 2016 21:02:54 +0000 (14:02 -0700)]
gyp: clean up warnings with clang-3.8
Also: update zlib DEPS.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2002233002
Review-Url: https://codereview.chromium.org/
2002233002
fmenozzi [Mon, 23 May 2016 20:54:22 +0000 (13:54 -0700)]
Add bubbles GM for drawing/blending 50 circles.
Positions, radii, and colors are determined pseudo-randomly.
R=tomhudson@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2004173002
Review-Url: https://codereview.chromium.org/
2004173002
herb [Mon, 23 May 2016 20:50:12 +0000 (13:50 -0700)]
I have found a more efficient way of detecting 1 and 0 alpha in SSE2. In addition, I found a stall on an execution unit for the lea instruction and rearranged to code to avoid that.
Before
1,362.01 LinearSrcOvericonstrip.pngVSkOptsSSE41
2,132.54 LinearSrcOvericonstrip.pngVSkOptsDefault
1,717.77 LinearSrcOvericonstrip.pngVSkOptsNonSimdCore
3,525.14 LinearSrcOvericonstrip.pngVSkOptsTrivial
11,181.78 LinearSrcOvericonstrip.pngVSkOptsBruteForce
644.77 LinearSrcOvermandrill_512.pngVSkOptsSSE41
682.51 LinearSrcOvermandrill_512.pngVSkOptsDefault
1,169.65 LinearSrcOvermandrill_512.pngVSkOptsNonSimdCore
2,486.45 LinearSrcOvermandrill_512.pngVSkOptsTrivial
11,635.94 LinearSrcOvermandrill_512.pngVSkOptsBruteForce
217.76 LinearSrcOverplane.pngVSkOptsSSE41
437.09 LinearSrcOverplane.pngVSkOptsDefault
275.91 LinearSrcOverplane.pngVSkOptsNonSimdCore
481.70 LinearSrcOverplane.pngVSkOptsTrivial
1,504.66 LinearSrcOverplane.pngVSkOptsBruteForce
323.90 LinearSrcOverbaby_tux.pngVSkOptsSSE41
497.49 LinearSrcOverbaby_tux.pngVSkOptsDefault
456.08 LinearSrcOverbaby_tux.pngVSkOptsNonSimdCore
786.46 LinearSrcOverbaby_tux.pngVSkOptsTrivial
2,554.65 LinearSrcOverbaby_tux.pngVSkOptsBruteForce
484.83 LinearSrcOveryellow_rose.pngVSkOptsSSE41
821.86 LinearSrcOveryellow_rose.pngVSkOptsDefault
655.37 LinearSrcOveryellow_rose.pngVSkOptsNonSimdCore
1,323.80 LinearSrcOveryellow_rose.pngVSkOptsTrivial
5,802.61 LinearSrcOveryellow_rose.pngVSkOptsBruteForce
After changes to sse2 and sse4.1
1,343.12 LinearSrcOvericonstrip.pngVSkOptsSSE41
1,441.17 LinearSrcOvericonstrip.pngVSkOptsDefault
1,679.97 LinearSrcOvericonstrip.pngVSkOptsNonSimdCore
3,481.05 LinearSrcOvericonstrip.pngVSkOptsTrivial
10,979.99 LinearSrcOvericonstrip.pngVSkOptsBruteForce
574.17 LinearSrcOvermandrill_512.pngVSkOptsSSE41
641.40 LinearSrcOvermandrill_512.pngVSkOptsDefault
1,169.44 LinearSrcOvermandrill_512.pngVSkOptsNonSimdCore
2,359.84 LinearSrcOvermandrill_512.pngVSkOptsTrivial
12,106.02 LinearSrcOvermandrill_512.pngVSkOptsBruteForce
209.95 LinearSrcOverplane.pngVSkOptsSSE41
249.12 LinearSrcOverplane.pngVSkOptsDefault
270.36 LinearSrcOverplane.pngVSkOptsNonSimdCore
466.30 LinearSrcOverplane.pngVSkOptsTrivial
1,431.14 LinearSrcOverplane.pngVSkOptsBruteForce
309.70 LinearSrcOverbaby_tux.pngVSkOptsSSE41
354.86 LinearSrcOverbaby_tux.pngVSkOptsDefault
442.69 LinearSrcOverbaby_tux.pngVSkOptsNonSimdCore
764.12 LinearSrcOverbaby_tux.pngVSkOptsTrivial
2,756.16 LinearSrcOverbaby_tux.pngVSkOptsBruteForce
457.70 LinearSrcOveryellow_rose.pngVSkOptsSSE41
500.50 LinearSrcOveryellow_rose.pngVSkOptsDefault
677.84 LinearSrcOveryellow_rose.pngVSkOptsNonSimdCore
1,301.50 LinearSrcOveryellow_rose.pngVSkOptsTrivial
5,786.40 LinearSrcOveryellow_rose.pngVSkOptsBruteForce
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1998373002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/
1998373002
jvanverth [Mon, 23 May 2016 20:13:36 +0000 (13:13 -0700)]
Add Xlib support to viewer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
1999213002
Review-Url: https://codereview.chromium.org/
1999213002
egdaniel [Mon, 23 May 2016 19:34:38 +0000 (12:34 -0700)]
Enable stencil wrap ops on vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2002213002
Review-Url: https://codereview.chromium.org/
2002213002
liyuqian [Mon, 23 May 2016 17:52:34 +0000 (10:52 -0700)]
Move inval dedup to Window for wider usages.
It turns out that the inval dedup is not just useful for Android. Hence
we move it up to the Window level so more OSes such as Linux, Windows
can also use it.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2001153002
Review-Url: https://codereview.chromium.org/
2001153002
msarett [Mon, 23 May 2016 17:21:17 +0000 (10:21 -0700)]
Test color correction in DM
This will allow me to test and visualize some assumptions
on parsing and applying color profiles. Also, it should
help me find and fix bugs.
This is certainly not an optimized implementation, and, as
far as I know, it doesn't take any shortcuts to improve
performance. We'll probably want to do both of these
once we know where it fits in the pipeline.
Right now this test is only run on an arbitrary set of ~100
images from the top 10k skps. I'll continue to add more
"interesting" images and probably tweak the code as
necessary.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1995233003
Review-Url: https://codereview.chromium.org/
1995233003
msarett [Mon, 23 May 2016 17:19:26 +0000 (10:19 -0700)]
Update image testing to version 6
This replaces the old HTC.dng test image (~40 MB) with a much smaller
HTC.dng (~125 kb).
This should limit OOM errors on our bots and improve the speed of the
tests suite.
BUG=skia:5283
BUG=skia:5307
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2004113002
Review-Url: https://codereview.chromium.org/
2004113002