Jim Van Verth [Wed, 26 Oct 2016 13:45:23 +0000 (09:45 -0400)]
Fix some Windows warnings
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3980
Change-Id: Icfc5dfb985b966c625d9bc81f61719ac5549085e
Reviewed-on: https://skia-review.googlesource.com/3980
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Robert Phillips [Tue, 25 Oct 2016 18:20:06 +0000 (14:20 -0400)]
Add GrOpList and rename GrDrawTarget to GrRenderTargetOpList
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3910
Change-Id: I026aa26ecc61a0d002e98892dca728536259e8b1
Reviewed-on: https://skia-review.googlesource.com/3910
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Brian Osman [Tue, 25 Oct 2016 14:51:28 +0000 (10:51 -0400)]
GrConstColorProcessor uses 4f colors in the destination space
Many places that construct one are explicitly specifying opaque white or
transparent black, which we can assume (based on the semantics of the
operation) should remain (0,0,0,0) or (1,1,1,1), so that's simple.
In other cases, we convert our source color to destination space.
One wrinkle is tht SkColorFilter now needs to know the destination color
space, due to SkModeColorFilter.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3903
Change-Id: I4969c0260588f4021300733f601b47dc606adf79
Reviewed-on: https://skia-review.googlesource.com/3903
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Ben Wagner [Tue, 25 Oct 2016 14:44:02 +0000 (10:44 -0400)]
Remove SK_IGNORE_GL_TEXTURE_TARGET.
This code was added with "Use a struct for client GL texture handles"
https://codereview.chromium.org/
1429863009. This define no longer
appears to be set anywhere, so it and the code it guards can be removed.
Change-Id: I80bb2a77b1f076143851c1d112937221eff2111a
Reviewed-on: https://skia-review.googlesource.com/3902
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Matt Sarett [Tue, 25 Oct 2016 18:24:50 +0000 (14:24 -0400)]
SkGifCodec: do not write off the end of memory when repeatCount > 1
BUG=skia:5887
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3940
Change-Id: I9e3ed6153a73277896ac067ef73918a41a0546b8
Reviewed-on: https://skia-review.googlesource.com/3940
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
scroggo [Tue, 25 Oct 2016 20:08:40 +0000 (13:08 -0700)]
GIF: Fill the frame if we have a dummy color table
Since we will not draw anything later, we need to fill the frame with
the fill color.
NOTREECHECKS=true
BUG=skia:5883
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2450943002
Review-Url: https://codereview.chromium.org/
2450943002
scroggo [Tue, 25 Oct 2016 19:53:59 +0000 (12:53 -0700)]
SK_FIX_BUILD
NOTRY=true
NOTREECHECKS=true
TBR=mtklein@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2447223002
Review-Url: https://codereview.chromium.org/
2447223002
scroggo [Tue, 25 Oct 2016 19:48:25 +0000 (12:48 -0700)]
Always use a color table with 256 colors
Speculative fix for skbug.com/5883
We are hitting an assert (which I have not been able to repro - still
need to get the skp that triggers it) because we are trying to read
beyond the end of the color table. We use 8-bit indices, so 256 should
be enough to prevent going beyond the end. There is only one case when
we use a smaller color table - when it is a dummy. Make the dummy full
size.
NOTREECHECKS=true
BUG=skia:5883
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2452673002
Review-Url: https://codereview.chromium.org/
2452673002
scroggo [Tue, 25 Oct 2016 19:43:50 +0000 (12:43 -0700)]
Do not exclude Gif on iOS
We no longer depend on an external library, so there is no reason to
exclude it.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2447973004
NOTREECHECKS=true
Review-Url: https://codereview.chromium.org/
2447973004
scroggo [Tue, 25 Oct 2016 19:43:21 +0000 (12:43 -0700)]
Fix more namespace conflicts in SkGifImageReader
To fix Google3
TBR=benjaminwagner@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2450753003
NOTREECHECKS=true
Review-Url: https://codereview.chromium.org/
2450753003
Mike Klein [Tue, 25 Oct 2016 17:31:21 +0000 (13:31 -0400)]
SkRasterPipeline::compile().
I'm not yet caching these in the blitter, and speed is essentially unchanged in the bench where I am now building and compiling the pipeline only once. This may not be able to stay a simple std::function after I figure out caching, but for now it's a nice fit.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3911
Change-Id: I9545af589f73baf9f17cb4e6ace9a814c2478fe9
Reviewed-on: https://skia-review.googlesource.com/3911
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Tue, 25 Oct 2016 14:27:33 +0000 (10:27 -0400)]
Move SkRasterPipeline further into SkOpts.
The portable code now becomes entirely focused on enum+ptr descriptions, leaving the concrete implementation of the pipeline to SkOpts::run_pipeline().
As implemented, the concrete implementation is basically the same, with a little more type safety.
Speed is essentially unchanged on my laptop, and that's having run_pipeline() rebuild its concrete state every call. There's room for improvement there if we split this into a compile_pipeline() / run_pipeline() sort of thing, which is my next planned CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3920
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: Ie4c554f51040426de7c5c144afa5d9d9d8938012
Reviewed-on: https://skia-review.googlesource.com/3920
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Brian Osman [Tue, 25 Oct 2016 15:45:14 +0000 (11:45 -0400)]
Fix dimensions and color-spin in color4shader GM
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3907
Change-Id: I0f263d98f942eda07eec4dabfec484461f77f83d
Reviewed-on: https://skia-review.googlesource.com/3907
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Mike Klein [Tue, 25 Oct 2016 15:39:12 +0000 (11:39 -0400)]
Mac GN doc.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3906
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=3906
Change-Id: I1ad13dd5b7df3d76f99f11e02f04169c5b37ce95
Reviewed-on: https://skia-review.googlesource.com/3906
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Hal Canary [Tue, 25 Oct 2016 15:04:57 +0000 (11:04 -0400)]
bin/sync: call fetch-gn when DEPS changes
Change-Id: Ifb2a364df1a8817152a2c1e79748d14534a9e523
Reviewed-on: https://skia-review.googlesource.com/3904
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
caryclark [Tue, 25 Oct 2016 15:58:26 +0000 (08:58 -0700)]
fix fuzz
Abort early if fuzz data
breaks intersection.
R=kjlubick@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2444333002
Review-Url: https://codereview.chromium.org/
2444333002
Brian Osman [Tue, 25 Oct 2016 15:10:45 +0000 (11:10 -0400)]
Fix GPU sRGB mode in viewer
Need to attach the sRGB color space to the surface to get past validation.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3905
Change-Id: Icce1c8cf35c31023c116cbcddf8848c4c92cd212
Reviewed-on: https://skia-review.googlesource.com/3905
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Hal Canary [Tue, 25 Oct 2016 14:33:27 +0000 (10:33 -0400)]
DM: JSON Debug Sink
Currently, the following GMs crash the debug canvas:
~dont_clip_to_layer
~imageblur
~imagefilterscropped
~pictureimagefilter
~savelayer_lcdtext
~textfilter_image
// TODO(halcanary): fix this.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3742
Change-Id: Ieed3502119cd639fe345f3a41d436d5e39f3bdf1
Reviewed-on: https://skia-review.googlesource.com/3742
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
Mike Reed [Tue, 25 Oct 2016 13:57:13 +0000 (09:57 -0400)]
remove discardablepixelref
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3883
Change-Id: Ica284be78563a4ccd6e0cb07404064fb5511ba57
Reviewed-on: https://skia-review.googlesource.com/3883
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
joel.liang [Tue, 25 Oct 2016 14:09:29 +0000 (07:09 -0700)]
Generate Signed Distance Field directly from vector path
Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
1643143002
Committed: https://skia.googlesource.com/skia/+/
4de97a64e8829323a7070b623411d9f9ddb0cd0f
Committed: https://skia.googlesource.com/skia/+/
e8f0a7b986f1e5583c9bc162efcdd92fd6430549
Review-Url: https://codereview.chromium.org/
1643143002
kjlubick [Tue, 25 Oct 2016 13:11:05 +0000 (06:11 -0700)]
Fix memory leak in FuzzGradients
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2446643003
Review-Url: https://codereview.chromium.org/
2446643003
scroggo [Tue, 25 Oct 2016 13:11:01 +0000 (06:11 -0700)]
DM: Draw image frames in a grid
Instead of drawing a large vertical strip for CodecSrc::kAnimated_Mode,
draw a grid of images. Compute the grid based on the square root of the
frame count, so the grid will be roughly square.
BUG=skia:5881
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2445863002
Review-Url: https://codereview.chromium.org/
2445863002
borenet [Tue, 25 Oct 2016 12:26:14 +0000 (05:26 -0700)]
Change recipes to use bot_update
NOTREECHECKS=true
BUG=skia:5588
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2448973002
Review-Url: https://codereview.chromium.org/
2448973002
Matt Sarett [Mon, 24 Oct 2016 20:51:45 +0000 (16:51 -0400)]
Help msvs compile SkColorSpaceXform faster
Allowing MSVS to choose to not inline color_xform_RGBA
will prevent the complexity from exploding.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3884
Change-Id: I31ab0754c6cc375d6d0e71ceb16afef1927bb4e3
Reviewed-on: https://skia-review.googlesource.com/3884
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
scroggo [Mon, 24 Oct 2016 20:58:28 +0000 (13:58 -0700)]
Move third_party/gif's license into its own file
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2448573002
Review-Url: https://codereview.chromium.org/
2448573002
scroggo [Mon, 24 Oct 2016 20:48:49 +0000 (13:48 -0700)]
Differentiate animated image results
Prior to this CL, a kAnimated_Mode CodecSrc (which draws a strip of
all frames in an image) has the same name as a non-animated one. This
means that Gold compares the two. Someone triaging will see two very
different images (a strip versus a single image) and think one of them
is wrong.
With this change, the two will have different names so they will not
be compared with one another.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2446543003
Review-Url: https://codereview.chromium.org/
2446543003
Brian Osman [Mon, 24 Oct 2016 18:53:08 +0000 (14:53 -0400)]
Populate ALL copies of a command line flag during parsing
Now that we're declaring flags statically per-tool, we were only
setting the value on one of them (randomly) in the linked list.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3881
Change-Id: I448cb7f42ee01a16daa65986b14aee9f1a2a3588
Reviewed-on: https://skia-review.googlesource.com/3881
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
scroggo [Mon, 24 Oct 2016 19:28:30 +0000 (12:28 -0700)]
Rename GIFImageReader to SkGifImageReader
The former could violate One Definition Rule in Google3, since other
projects that are based on Chrome/webkit also have GIFImageReader.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2445653004
Review-Url: https://codereview.chromium.org/
2445653004
Ben Wagner [Mon, 24 Oct 2016 18:11:12 +0000 (14:11 -0400)]
Add gif sources to public.bzl.
This also removes SK_HAS_GIF_LIBRARY since it does not appear in the
code.
Change-Id: I6e4d6ed560eb2877e6db61edf15f6be832166b44
Reviewed-on: https://skia-review.googlesource.com/3752
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
kjlubick [Mon, 24 Oct 2016 18:53:35 +0000 (11:53 -0700)]
Fix fuzzer's bools to be 0 or 1 only
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2447823002
Review-Url: https://codereview.chromium.org/
2447823002
Matt Sarett [Mon, 24 Oct 2016 15:38:08 +0000 (11:38 -0400)]
Use SK_ALWAYS_INLINE in SkColorSpaceXform
Two reasons for this:
(1) We care about the performance of this code, and Windows isn't
very good at inlining. Let's make sure we isntruct the compiler
to inline.
(2) Since landing uses of this in Chrome, we're seeing flaky
LayoutTests that appear to be timing related. I'm (very
optimistically) hoping that this will help.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3744
Change-Id: Ibb6d9c4252c0b8ce62203fe65c7dd296248982c8
Reviewed-on: https://skia-review.googlesource.com/3744
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
scroggo [Mon, 24 Oct 2016 16:59:53 +0000 (09:59 -0700)]
Clear background to white in animatedGif GM
White looks the same in 565, reducing the number of differences in gold
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2447793002
Review-Url: https://codereview.chromium.org/
2447793002
scroggo [Mon, 24 Oct 2016 16:56:40 +0000 (09:56 -0700)]
Include "SkBitmap.h" in CodecAnimTest.cpp
Fixes build
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2449513002
Review-Url: https://codereview.chromium.org/
2449513002
raftias [Mon, 24 Oct 2016 16:52:26 +0000 (09:52 -0700)]
Refactored SkColorSpace_A2B to allow arbitrary ordering of elements
This is essential for representing non-lutAtoBType A2B tags such as
lut16Type, lut8Type, mpet. Parsing of A2B0 tags was also moved ahead
of the TRC/XYZ-matrix parsing, as profiles examined with both tags
either had the TRC/XYZ tags as a fall-back or were incorrectly displayed
if only the TRC/XYZ tags were used.
This was submitted alone to reduce CL size. Tests that will use these changes will be introduced in the subsequent CLs that add on lut8/16Type A2B0 parsing. We already have lut16Type test images and these have been tested locally, but require additional code not submitted yet for lut16Type ICC profile parsing and A2B colorspace xforms.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2444553002
Review-Url: https://codereview.chromium.org/
2444553002
Mike Klein [Mon, 24 Oct 2016 15:39:43 +0000 (11:39 -0400)]
Print what crashed DM on Android too.
This doesn't print a backtrace, but it's better than nothing.
By preserving the original signal handler and calling into that, we keep the Android system stack trace, visible in logcat, the "dump log" step on bots.
Tested locally on Mac and Android by making an arbitrary GM segfault.
BUG=skia:5876
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3860
Change-Id: Ia7a962ca50e09d370423a6106033e34c47d7643d
Reviewed-on: https://skia-review.googlesource.com/3860
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Ben Wagner [Mon, 24 Oct 2016 15:36:21 +0000 (11:36 -0400)]
SkShader* refAs... to sk_sp<SkShader> makeAs...
There appear to be no existing overriders of the refAs.. method outside
Skia.
Change-Id: Iab174e83023093b4d7fc0bd8907666b66ddb1eea
Reviewed-on: https://skia-review.googlesource.com/3746
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Ben Wagner [Mon, 24 Oct 2016 15:27:30 +0000 (11:27 -0400)]
Update trooper doc with chrome-infra chat.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3745
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=3745
Change-Id: Icc9b52a7b4bc90f4ef8d8b952d49663f74104ba9
Reviewed-on: https://skia-review.googlesource.com/3745
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
scroggo [Mon, 24 Oct 2016 16:03:26 +0000 (09:03 -0700)]
Add support for multiple frames in SkCodec
Add an interface to decode frames beyond the first in SkCodec, and
add an implementation for SkGifCodec.
Add getFrameData to SkCodec. This method reads ahead in the stream
to return a vector containing meta data about each frame in the image.
This is not required in order to decode frames beyond the first, but
it allows a client to learn extra information:
- how long the frame should be displayed
- whether a frame should be blended with a prior frame, allowing the
client to provide the prior frame to speed up decoding
Add a new fields to SkCodec::Options:
- fFrameIndex
- fHasPriorFrame
The API is designed so that SkCodec never caches frames. If a
client wants a frame beyond the first, they specify the frame in
Options.fFrameIndex. If the client does not have the
frame's required frame (the frame that this frame must be blended on
top of) cached, they pass false for
Options.fHasPriorFrame. Unless the frame is
independent, the codec will then recursively decode all frames
necessary to decode fFrameIndex. If the client has the required frame
cached, they can put it in the dst they pass to the codec, and the
codec will only draw fFrameIndex onto it.
Replace SkGifCodec's scanline decoding support with progressive
decoding, and update the tests accordingly.
Implement new APIs in SkGifCodec. Instead of using gif_lib, use
GIFImageReader, imported from Chromium (along with its copyright
headers) with the following changes:
- SkGifCodec is now the client
- Replace blink types
- Combine GIFColorMap::buildTable and ::getTable into a method that
creates and returns an SkColorTable
- Input comes from an SkStream, instead of a SegmentReader. Add
SkStreamBuffer, which buffers the (potentially partial) stream in
order to decode progressively.
(FIXME: This requires copying data that previously was read directly
from the SegmentReader. Does this hurt performance? If so, can we
fix it?)
- Remove UMA code
- Instead of reporting screen width and height to the client, allow the
client to query for it
- Fail earlier if the first frame AND screen have size of zero
- Compute required previous frame when adding a new one
- Move GIFParseQuery from GIFImageDecoder to GIFImageReader
- Allow parsing up to a specific frame (to skip parsing the rest of the
stream if a client only wants the first frame)
- Compute whether the first frame has alpha and supports index 8, to
create the SkImageInfo. This happens before reporting that the size
has been decoded.
Add GIFImageDecoder::haveDecodedRow to SkGifCodec, imported from
Chromium (along with its copyright header), with the following changes:
- Add support for sampling
- Use the swizzler
- Keep track of the rows decoded
- Do *not* keep track of whether we've seen alpha
Remove SkCodec::kOutOfOrder_SkScanlineOrder, which was only used by GIF
scanline decoding.
Call onRewind even if there is no stream (SkGifCodec needs to clear its
decoded state so it will decode from the beginning).
Add a method to SkSwizzler to access the offset into the dst, taking
subsetting into account.
Add a GM that animates a GIF.
Add tests for the new APIs.
*** Behavior changes:
* Previously, we reported that an image with a subset frame and no transparent
index was opaque and used the background index (if present) to fill the
background. This is necessary in order to support index 8, but it does not
match viewers/browsers I have seen. Examples:
- Chromium and Gimp render the background transparent
- Firefox, Safari, Linux Image Viewer, Safari Preview clip to the frame (for
a single frame image)
This CL matches Chromium's behavior and renders the background transparent.
This allows us to have consistent behavior across products and simplifies
the code (relative to what we would have to do to continue the old behavior
on Android). It also means that we will no longer support index 8 for some
GIFs.
* Stop checking for GIFSTAMP - all GIFs should be either 89a or 87a.
This matches Chromium. I suspect that bugs would have been reported if valid
GIFs started with "GIFVER" instead of "GIF89a" or "GIF87a" (but did not decode
in Chromium).
*** Future work not included in this CL:
* Move some checks out of haveDecodedRow, since they are the same for the
entire frame e.g.
- intersecting the frameRect with the full image size
- whether there is a color table
* Change when we write transparent pixels
- In some cases, Chromium deemed this unnecessary, but I suspect it is slower
than the fallback case. There will continue to be cases where we should
*not* write them, but for e.g. the first pass where we have already
cleared to transparent (which we may also be able to skip) writing the
transparent pixels will not make anything incorrect.
* Report color type and alpha type per frame
- Depending on alpha values, disposal methods, frame rects, etc, subsequent
frames may have different properties than the first.
* Skip copies of the encoded data
- We copy the encoded data in case the stream is one that cannot be rewound,
so we can parse and then decode (possibly not immediately). For some input
streams, this is unnecessary.
- I was concerned this cause a performance regression, but on average the
new code is faster than the old for the images I tested [1].
- It may cause a performance regression for Chromium, though, where we can
always move back in the stream, so this should be addressed.
Design doc:
https://docs.google.com/a/google.com/document/d/12Qhf9T92MWfdWujQwCIjhCO3sw6pTJB5pJBwDM1T7Kc/
[1] https://docs.google.com/a/google.com/spreadsheets/d/19V-t9BfbFw5eiwBTKA1qOBkZbchjlTC5EIz6HFy-6RI/
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=
2045293002
Review-Url: https://codereview.chromium.org/
2045293002
caryclark [Mon, 24 Oct 2016 15:41:45 +0000 (08:41 -0700)]
fix a few more fuzzes
Minor changes to fix some fuzz conditions.
A couple of ignored asserts when the data
is fuzzy, and one fail condition when the
underlying data has already been deleted.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2443243002
Review-Url: https://codereview.chromium.org/
2443243002
borenet [Mon, 24 Oct 2016 15:40:26 +0000 (08:40 -0700)]
Fix RecreateSKPs recipe to correctly fail when the upload fails
BUG=skia:5879
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2446633002
Review-Url: https://codereview.chromium.org/
2446633002
caryclark [Mon, 24 Oct 2016 15:19:06 +0000 (08:19 -0700)]
nc seal breaks simplify
This test has nearly coincident lines that are missorted.
The underlying bug is caused when a pair of curves
are coincident when reduced to line segments, but the
end points aren't detected.
The error was generated by running nanobench over all svg
sample data with the distance field patch installed.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2440043003
Review-Url: https://codereview.chromium.org/
2440043003
Brian Osman [Mon, 24 Oct 2016 13:24:02 +0000 (09:24 -0400)]
Rename all color space factories from New* to Make*
Matches our naming convention for all other types - factories that
return sk_sp (or any type that intelligently manages its own
lifetime) are named Make.
Previous factories are still around, assuming
SK_SUPPORT_LEGACY_COLOR_SPACE_FACTORIES is defined. Enable that
define for Android, etc.
See also: https://codereview.chromium.org/
2442053002/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3822
Change-Id: Iaea9376490736b494e8ffc820831f052bbe1478d
Reviewed-on: https://skia-review.googlesource.com/3822
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
borenet [Mon, 24 Oct 2016 13:36:30 +0000 (06:36 -0700)]
Add infra recipe module, use for updating Go DEPS
BUG=skia:5879
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2444883002
Review-Url: https://codereview.chromium.org/
2444883002
caryclark [Mon, 24 Oct 2016 12:10:14 +0000 (05:10 -0700)]
formalize host debugging
Pathops writes files, anticipating upcoming crashes,
and verifies the results against regions.
Formalize these debugging methods so that they
are more easily triggered by hosts outside of
skia unit tests.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2441763003
Review-Url: https://codereview.chromium.org/
2441763003
caryclark [Mon, 24 Oct 2016 11:53:22 +0000 (04:53 -0700)]
fix one more fuzzer
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2438333002
Review-Url: https://codereview.chromium.org/
2438333002
borenet [Mon, 24 Oct 2016 11:46:57 +0000 (04:46 -0700)]
Roll recipe DEPS
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2443133002
Review-Url: https://codereview.chromium.org/
2443133002
liyuqian [Fri, 21 Oct 2016 20:38:10 +0000 (13:38 -0700)]
Fall back from analytic to sampling earlier
This magically fixes some strange js unit tests in Chrome. Those tests
only fail in virtual/gpu which somehow interacts with my cpu rasterizer?
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2439973004
Review-Url: https://chromiumcodereview.appspot.com/
2439973004
Mike Reed [Fri, 21 Oct 2016 17:51:49 +0000 (13:51 -0400)]
use conservative-clip-bit in pipecanvas
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3821
Change-Id: I18bbcf0fa715c8136355812997766b0f7d8412b6
Reviewed-on: https://skia-review.googlesource.com/3821
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
borenet [Fri, 21 Oct 2016 19:01:12 +0000 (12:01 -0700)]
Roll common DEPS
BUG=skia:
NOTRY=true
NOTREECHECKS=true
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2435333002
Review-Url: https://chromiumcodereview.appspot.com/
2435333002
Brian Osman [Thu, 20 Oct 2016 20:53:45 +0000 (16:53 -0400)]
New helpers for converting SkColor to GrColor4f
These versions will eliminate lots of copy-pasting in various fragment
processor creation code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3787
Change-Id: I3ada2d4866e92cfc0507beeea11e05790d73757d
Reviewed-on: https://skia-review.googlesource.com/3787
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
liyuqian [Fri, 21 Oct 2016 16:07:41 +0000 (09:07 -0700)]
Another forgotten forceRLE
BUG=skia:
TBR=reed@google.com,caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2438163003
Review-Url: https://chromiumcodereview.appspot.com/
2438163003
Jim Van Verth [Fri, 21 Oct 2016 14:58:52 +0000 (10:58 -0400)]
Add Android viewer to GN
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3761
Change-Id: If971e275ed377cd733d01f62622d408479632465
Reviewed-on: https://skia-review.googlesource.com/3761
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Mike Reed [Fri, 21 Oct 2016 14:43:36 +0000 (10:43 -0400)]
add pipe to nanobench
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3801
Change-Id: Ia0b90b1e2947a7b9ae7cb340ef5cd5b3251bbd23
Reviewed-on: https://skia-review.googlesource.com/3801
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Matt Sarett [Fri, 21 Oct 2016 13:25:54 +0000 (09:25 -0400)]
Fix for Chrome MSAN
I believe that the complaints are occurring because the |a| vector
might be uninitialized where it is used here. It doesn't actually
matter because we won't use or store that value - it's just a
placeholder.
But we need to make the bot happy.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3800
Change-Id: I1891da9d1d2708008e4606daebf9bb6f96e92fc0
Reviewed-on: https://skia-review.googlesource.com/3800
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Robert Phillips [Thu, 20 Oct 2016 17:20:45 +0000 (13:20 -0400)]
Remove SkRRectsGaussianEdgeShader
This class is no longer used.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3734
Change-Id: I16634760df6b31c7e97c893b7e2b982cd7b1d1fd
Reviewed-on: https://skia-review.googlesource.com/3734
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
fmalita [Fri, 21 Oct 2016 13:02:22 +0000 (06:02 -0700)]
[Sk4fGradient] Use infinity floats for clamp-mode extreme positions
In clamp mode, we use a couple of synthetic edges that are supposed to
extend to +/- infinity (-inf .. P0 and Pn .. inf). Currently we use
SK_ScalarMin/Max, but these can be overrun with large/malicious inputs.
Use SK_ScalarInfinity/SK_ScalarNegativeInfinity instead, and tweak
compute_interval_props() to handle inf values gracefully.
BUG=skia:5835
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2441733002
Review-Url: https://chromiumcodereview.appspot.com/
2441733002
Mike Klein [Thu, 20 Oct 2016 22:30:11 +0000 (18:30 -0400)]
Zero tail stack buffers.
MSAN and the no-SIMD bots have noticed the top lanes of the tail vectors are not initialized.
As they were written it was faster to leave them unintialized, but as re-written here it's equal speed and now safe.
CQ_INCLUDE_TRYBOTS=master.client.skia:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3790
Change-Id: Icd41ba14ae6baf9947eb361a366f1ce19ad8aa67
Reviewed-on: https://skia-review.googlesource.com/3790
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Thu, 20 Oct 2016 22:05:23 +0000 (18:05 -0400)]
SkRasterPipeline_opts: split next() into next_body() and next_tail().
This may work around an Chrome/MSVC/PGO compiler crasher.
Even if not, it's harmless for performance, and arguably more readable.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3789
Change-Id: I0bf23f65d7832b9f43e275f85e7985fcd6b13b9f
Reviewed-on: https://skia-review.googlesource.com/3789
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
bungeman [Thu, 20 Oct 2016 20:06:52 +0000 (16:06 -0400)]
SkScalerContext to use smart pointers.
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot
Change-Id: I27a714388b8ded7dfc968e322b0a587205f575f1
Reviewed-on: https://skia-review.googlesource.com/3731
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Mike Klein [Thu, 20 Oct 2016 20:20:46 +0000 (16:20 -0400)]
SkRasterPipeline: memcpy-free tail code.
We don't call the tail code nearly as often as the body code, but when we do and call memcpy(), we first have to vzeroupper back into the non-AVX world. That does seem to slow things down considerably. You wouldn't think it, but this gives a nice speed up (tested on Windows).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3783
Change-Id: I40cbe1e529f2431825edec7638265601b64e7ec5
Reviewed-on: https://skia-review.googlesource.com/3783
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Reed [Thu, 20 Oct 2016 20:40:26 +0000 (16:40 -0400)]
remove 4 legacy flags (clients already updated)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3785
Change-Id: I187e50e09ed7a3316719fae51af770259928fdf9
Reviewed-on: https://skia-review.googlesource.com/3785
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
liyuqian [Thu, 20 Oct 2016 21:01:52 +0000 (14:01 -0700)]
Quickly fix the forgotten forceRLE
BUG=skia:
TBR=reed@google.com,caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2436593004
Review-Url: https://chromiumcodereview.appspot.com/
2436593004
Brian Osman [Thu, 20 Oct 2016 19:34:06 +0000 (15:34 -0400)]
Cache GrColorSpaceXforms
Even with a modest cache, we're going to get nearly 100% hit rate
for typical usage scenarios. I'm hoping to avoid the special case
caching of sRGB -> destination, and just rely on the more general
mechanism.
Yes, this is yet-another cache class. I wanted to use one of many
that are laying around, but couldn't find a good fit. On the plus
side, it's not much code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3726
Change-Id: I943be5c99f0d691a87ffe8c5bc3067a8eb491fc2
Reviewed-on: https://skia-review.googlesource.com/3726
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Brian Osman [Wed, 19 Oct 2016 18:56:07 +0000 (14:56 -0400)]
Hash the gamut of XYZ color spaces, to speed up comparison
Also going to use this to allow caching of GrColorSpaceXforms
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3670
Change-Id: I56ed2dcbdddc22046263f56d68f2d6aea55547c8
Reviewed-on: https://skia-review.googlesource.com/3670
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Mike Klein [Thu, 20 Oct 2016 19:45:02 +0000 (15:45 -0400)]
Turn off buffer security checking in Release builds.
I'm seeing /GS's _security_check_cookie() show up as a signficant piece of time when profiling. That's mostly just annoying noise. We generally use our Release builds for performance testing and Debug for correctness, so it seems like a fair thing to disable in Release builds... it's a sort of ASAN thing, which we only do in Debug on other platforms.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3782
Change-Id: I9b3cf4c5cf943fc2549f5bf91a1f6f7e41733e2c
Reviewed-on: https://skia-review.googlesource.com/3782
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
Mike Reed [Thu, 20 Oct 2016 19:37:41 +0000 (15:37 -0400)]
Add query to imagegenerator if it can efficiently generate a texture
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3780
Change-Id: If5fb6ee82e47f0d007b4ad7c46ac73574eccd8c5
Reviewed-on: https://skia-review.googlesource.com/3780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
caryclark [Thu, 20 Oct 2016 19:36:16 +0000 (12:36 -0700)]
fix more fuzz, carsvg
Fix a few kevin-generated fuzzers.
Remove an assert triggered by
carsvg when thrown through the
distance field stuff.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2427253005
Review-Url: https://chromiumcodereview.appspot.com/
2427253005
borenet [Thu, 20 Oct 2016 18:38:30 +0000 (11:38 -0700)]
Add retries to the InfraTests bot's "update go pkgs" step
BUG=skia:5874
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2437143002
Review-Url: https://chromiumcodereview.appspot.com/
2437143002
caryclark [Thu, 20 Oct 2016 18:34:10 +0000 (11:34 -0700)]
fix more chrome asan fuzzer failures
Small change to gracefully quit
when fuzzer values cause pathops
to fail.
TBR=reed@google.com
BUG=657411, 657559
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2426393004
Review-Url: https://chromiumcodereview.appspot.com/
2426393004
liyuqian [Thu, 20 Oct 2016 18:23:09 +0000 (11:23 -0700)]
Make SkFixedRound/Ceil/FloorToFixed as inline func
The macros that we were using will return unsigned int32 instead of
signed int32 because of the last 0xFFFF0000 mask. That may bring
problems if we right shift that result.
Special thanks to mtklein@google.com for helping me find out this issue.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2433233003
Review-Url: https://chromiumcodereview.appspot.com/
2433233003
Mike Klein [Thu, 20 Oct 2016 17:37:12 +0000 (13:37 -0400)]
Add missing sse41::run_pipeline.
In practice this doesn't matter (we'll use sse2::run_pipeline) but the UBSAN bot caught me.
TBR=herb@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3736
Change-Id: Ib40ee4a8ebf274bbc10a78a80e7b1ad06cf644e5
Reviewed-on: https://skia-review.googlesource.com/3736
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
liyuqian [Thu, 20 Oct 2016 18:04:39 +0000 (11:04 -0700)]
Use Analytic AA in SkAAClip.
This will fix some Chrome ref tests.
The main issue here is that the SkAAClip requires: (1) we blit in order, and (2) we must forceRLE.
Note that this still depends on the global gSkUseAnalyticAA to turn on the Analytic AA.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2430343003
Review-Url: https://chromiumcodereview.appspot.com/
2430343003
borenet [Thu, 20 Oct 2016 18:04:31 +0000 (11:04 -0700)]
gen_tasks.go: Use new helpers from specs package
BUG=skia:5626
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2438043002
Review-Url: https://chromiumcodereview.appspot.com/
2438043002
Mike Klein [Thu, 20 Oct 2016 17:52:38 +0000 (13:52 -0400)]
Turn on /OPT:REF and /OPT:ICF too.
These two together shave another 5MB off dm.exe, from 16MB -> 11MB.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3738
Change-Id: Id216867e0ad5bc115fbd4006095860dff9204947
Reviewed-on: https://skia-review.googlesource.com/3738
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
Mike Klein [Thu, 20 Oct 2016 17:34:18 +0000 (13:34 -0400)]
Compile for Windows with /Zc:inline.
By default, MSVC generates standalone versions of all functions, including static inline functions that are only inlined. Those standalone versions are dead code. This /Zc:inline flag makes MSVC behave like all the other compilers, omitting those standalone functions. Chrome builds with this flag.
This CL cuts dm.exe and nanobench.exe each down by about 3MB, 19->16MB for DM and 15MB->12MB for nanobench. This shouldn't affect runtime speed, and didn't signficantly change clean build time on my Z840 (~90s either way).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3735
Change-Id: Ibd2a80337fcefc3f4eaf4335ea4e95a80bb4fddb
Reviewed-on: https://skia-review.googlesource.com/3735
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
raftias [Thu, 20 Oct 2016 17:38:58 +0000 (10:38 -0700)]
Fixed potential read-out-of-bounds issue in ICC profile loading
For 8-bit precision color LUT in A2B0 ICC color space profiles
it was skipping every 2nd CLUT value and then reading past the end
of the CLUT data table. Now it properly increments through
8-bit precision color LUT tables in profiles.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2434563007
Review-Url: https://chromiumcodereview.appspot.com/
2434563007
Matt Sarett [Thu, 20 Oct 2016 16:35:23 +0000 (12:35 -0400)]
Safely handle unsupported color xforms in SkCodec
(1) The transformation code *should* support any src SkColorSpace
that we successfully parse. This is agreed upon internally and
by clients. The fact that we currently don't is just a bug...
(2) We cannot and will not support all SkColorSpaces as dsts.
So if we fail to make a SkColorSpaceXform, we should assume that
it was caused by a bad dst color space. The correct response in
this case is to return kInvalidConversion. I've rewritten the CL
to do this.
The fact that weird src spaces will sometimes trigger a
kInvalidConversion is just a bug that is being actively worked on.
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3661
Change-Id: Iac2b45120507ec71b1b3d555c61931f7348dad9e
Reviewed-on: https://skia-review.googlesource.com/3661
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Robert Aftias <raftias@google.com>
Mike Reed [Thu, 20 Oct 2016 16:51:44 +0000 (12:51 -0400)]
remove unneeded legacy flags
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3732
Change-Id: I24fc613defd6c9e1dc7df08f6e3c3f2874df56d2
Reviewed-on: https://skia-review.googlesource.com/3732
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Reed <reed@google.com>
caryclark [Thu, 20 Oct 2016 17:11:27 +0000 (10:11 -0700)]
fix debug version of cubicpair detected by asan
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2435063002
Review-Url: https://chromiumcodereview.appspot.com/
2435063002
Mike Reed [Wed, 19 Oct 2016 19:06:34 +0000 (15:06 -0400)]
remove some legacy flags for g3
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3672
Change-Id: Idc30ed9d367026352747619580bf12da7aa9ffe5
Reviewed-on: https://skia-review.googlesource.com/3672
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Mike Klein [Thu, 20 Oct 2016 02:24:10 +0000 (22:24 -0400)]
Compile Release builds with -momit-leaf-frame-pointer.
Unlike -fomit-frame-pointer, this doesn't make debugging or profiling any more difficult, as it only applies to leaves. It will make our code (negligibly) smaller and (negligibly) faster.
Mostly I just find it easier to read the disassembly without all the rbp gymnastics getting in the way.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3700
Change-Id: I4b96aee7619791d5980de7f46e82836ca08a6456
Reviewed-on: https://skia-review.googlesource.com/3700
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Thu, 20 Oct 2016 01:05:17 +0000 (21:05 -0400)]
SkRasterPipeline refactor
- Give body and tail functions separate types. This frees a register in body functions, especially important for Windows.
- Fill out default, SSE4.1, and HSW versions of all functions. This means we don't have to mess around with SkNf_abi... all functions come from the same compilation unit where SkNf is a single consistent type.
- Move Stage::next() into SkRasterPipeline_opts.h as a static inline function.
- Remove Stage::ctx() entirely... fCtx is literally the same thing.
This is a step along the way toward building the entire pipeline in src/opts, removing the need for all the stages to be functions living in SkOpts.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3680
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot
Change-Id: I7de78ffebc15b9bad4eda187c9f50369cd7e5e42
Reviewed-on: https://skia-review.googlesource.com/3680
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Robert Phillips [Thu, 20 Oct 2016 15:58:40 +0000 (11:58 -0400)]
Fix bug in raster implementation of SkRRectsGaussianEdgeMaskFilter
The bug was the raster version didn't correctly handle the CTM.
This CL also adds a way to test the behavior (by translating the
reveal GM around in SampleApp)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3729
Change-Id: Iaacc905167d20b453203307e5ef840f552fdbb38
Reviewed-on: https://skia-review.googlesource.com/3729
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
ethannicholas [Thu, 20 Oct 2016 16:54:00 +0000 (09:54 -0700)]
re-re-land of skslc now automatically turns on derivatives support
Only change from last attempt is putting the call to shaderDerivativeExtensionString behind a check for shaderDerivativeSupport to avoid a spurious assertion failure.
TBR=benjaminwagner@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2437063002
Review-Url: https://chromiumcodereview.appspot.com/
2437063002
Brian Salomon [Thu, 20 Oct 2016 14:14:45 +0000 (10:14 -0400)]
Run ANGLE in GL mode on test bots
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3724
Change-Id: Ic3d6efcb331ac3947026476e357e76214f2ccdf8
Reviewed-on: https://skia-review.googlesource.com/3724
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
caryclark [Thu, 20 Oct 2016 15:32:18 +0000 (08:32 -0700)]
fix fuzzers
Many old pathops-related fuzz failures have built up while
the codebase was under a state a flux. Now that the code
is stable, address these failures.
Most of the CL plumbs the debug global state to downstream
routines so that, if the data is not trusted (ala fuzzed)
the function can safely exit without asserting.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2426173002
Review-Url: https://chromiumcodereview.appspot.com/
2426173002
Mike Reed [Thu, 20 Oct 2016 14:39:22 +0000 (10:39 -0400)]
use 'real' SkImageDeserializer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3727
Change-Id: Ic07ea6bd2756f1be08e80075c236a70ce6c08a3b
TBR=mtklein
Reviewed-on: https://skia-review.googlesource.com/3727
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Thu, 20 Oct 2016 14:17:47 +0000 (10:17 -0400)]
Viewer on Mac.
- Support ObjC / ObjC++
- Build SDL on Mac.
- Build viewer on Mac.
Patched from Jim's CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3760
Change-Id: I12663f2ed2969e22f51aefed560fbc22b2524167
Reviewed-on: https://skia-review.googlesource.com/3760
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Thu, 20 Oct 2016 12:51:17 +0000 (08:51 -0400)]
Slim down builder CIPD packages.
The Android builders don't need the clang_linux asset.
I don't think anything needs the android_sdk asset.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3740
Change-Id: I3e61ba23ed661a998f9dc0eb4c46cc8eb1cf3226
Reviewed-on: https://skia-review.googlesource.com/3740
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Robert Phillips [Thu, 20 Oct 2016 13:40:55 +0000 (09:40 -0400)]
Add SkRRectsGaussianEdgeMaskFilter
SkRRectsGaussianEdgeShader will be removed once the usage of the
MaskFilter flavor has been propagated to Android
I will complete the raster implementation in a follow up CL.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3632
Change-Id: I42470b17308582b040a5db1a7283c3d717405345
Reviewed-on: https://skia-review.googlesource.com/3632
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Ben Wagner [Wed, 19 Oct 2016 21:15:44 +0000 (17:15 -0400)]
Class delete call unsized delete when size not known.
Some classes directly call global operator new to reserve space in
addition to the space the class will occupy. These clases must be
deleted with the unsized global operator new. If a build is configured
such that sized global operator new is called from a delete expression,
this must be overridden by such classes.
TBR=reed
Only affects private bits of SkData.
Change-Id: I797935db17a37aa8c2ca7b562a4ea65a7978a9f0
Reviewed-on: https://skia-review.googlesource.com/3678
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
reed [Wed, 19 Oct 2016 21:38:05 +0000 (14:38 -0700)]
Revert "Revert "remove unneeded flags for android""
This reverts commit
bbe17a66705aff6f34a22adc0c12883dcb6161b3.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2426343005
Review-Url: https://chromiumcodereview.appspot.com/
2426343005
Mike Klein [Wed, 19 Oct 2016 18:53:13 +0000 (14:53 -0400)]
More explicit body/tail function versioning.
MSVC was not picking up that tail==0 in the non-_tail versions of the kernel functions in SkRasterPipeline_opts.h. This passes through a template bool parameter to convey the same message.
This makes the body code a bit smaller and faster on MSVC now by removing the tail>0 check and code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3669
Change-Id: I8bf81717a83f216eb1eb28a75dac41779dc508c1
Reviewed-on: https://skia-review.googlesource.com/3669
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Wed, 19 Oct 2016 20:45:16 +0000 (16:45 -0400)]
Try again with SkOpts_hsw and 8x pipelines, attempt 2.
Originally reviewed: https://skia-review.googlesource.com/3667
This time around, don't forget swap_src_dst.
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3676
Change-Id: I127e7fb2bf9d3bfee61c3749fc1c334c9476cb4e
Reviewed-on: https://skia-review.googlesource.com/3676
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Mike Klein [Wed, 19 Oct 2016 20:42:14 +0000 (20:42 +0000)]
Revert "Try again with SkOpts_hsw and 8x pipelines."
This reverts commit
4f02ce7995554d899cdde2b7d82f600fc8017fcc.
Reason for revert: missed a stage
TBR=mtklein@chromium.org,msarett@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I1dc1229183d67fe72977e492977a97b19dc630d2
Reviewed-on: https://skia-review.googlesource.com/3675
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Mike Klein [Wed, 19 Oct 2016 18:15:15 +0000 (14:15 -0400)]
Try again with SkOpts_hsw and 8x pipelines.
All SkNx are now in anonymous namespaces and all their methods are force-inlined. We should not have any ODR problems.
This is still a near 2x speedup, more so for f16.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3667
Change-Id: I6db9a46f7164f49827ab4d7983e80bf8cea99995
Reviewed-on: https://skia-review.googlesource.com/3667
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
scroggo [Wed, 19 Oct 2016 19:56:46 +0000 (12:56 -0700)]
Subtract start_coord instead of adding it
crrev.com/
2420843003 (DIFFERENT ISSUE) introduced some changes in
sampled images. (I already corrected the problem for interlaced PNGs
in crrev.com/
2424353003.)
When deciding whether a row is needed, we need to subtract the starting
coordinate, similar to how we subtracted fFirstRow in SkPngCodec.
This should "fix" the remaining untriaged images in Gold (i.e. we will
go back to producing the original image).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2440563002
Review-Url: https://chromiumcodereview.appspot.com/
2440563002
borenet [Wed, 19 Oct 2016 19:56:43 +0000 (12:56 -0700)]
Recipe fix for buildbotless bots
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2435803003
Review-Url: https://chromiumcodereview.appspot.com/
2435803003
Mike Klein [Wed, 19 Oct 2016 17:39:13 +0000 (13:39 -0400)]
Define SK_CPU_SSE_LEVEL on Windows builds.
We check this define to know which intrinsics we can call safely. The -msse flags set it for us on non-MSVC, but MSVC has no such switch. We do this in GYP (and Chrome's GN) too. No need for any defines on :avx or :hsw targets... the /arch:AVX and /arch:AVX2 do set SK_CPU_SSE_LEVEL for us.
Most directly, this means things like Sk4f::thenElse() will now use blendps when compiled into SkOpts_sse41.cpp.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3666
Change-Id: Ie80a8b8e5544250b45cfe51c40604fade06b3ef9
Reviewed-on: https://skia-review.googlesource.com/3666
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Mike Klein [Wed, 19 Oct 2016 17:27:07 +0000 (13:27 -0400)]
Make monobench more usable on Windows.
All small stuff:
- printf doesn't go to the Visual Studio console, SkDebugf does;
- the Windows console can't show an ellipsis;
- overwriting the console line is a little different on Windows.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3664
Change-Id: I0175afd6d0147feaff8ff6edae2b35a7435c25f5
Reviewed-on: https://skia-review.googlesource.com/3664
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>