Commit Graph

13474 Commits

Author SHA1 Message Date
reed
e93393b311 don't specialize drawBitmapRect for minirecorder; no longer called by blink
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183193002

Review-Url: https://codereview.chromium.org/2183193002
2016-07-26 12:21:10 -07:00
bsalomon
d1bdd1fcbd Use Windowing system-specific WindowContext factories.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169543002

Review-Url: https://codereview.chromium.org/2169543002
2016-07-26 12:02:51 -07:00
robertphillips
7e92276554 Reduce usage of MakeRenderTargetDirect
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187573002

Review-Url: https://codereview.chromium.org/2187573002
2016-07-26 11:38:17 -07:00
brianosman
3a0dbde1cf Remove SkSurfaceProps gamma-correctness flag entirely.
This is no longer required - gamma-correctness is now just based on the
presence or absence of a color space.

Public API change is just removal of (unused) flag.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188463002
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2188463002
2016-07-26 11:36:05 -07:00
brianosman
9dc935fa11 Remove all usage of SkSurfaceProps::isGammaCorrect()
DrawContext's isGammaCorrect now just based on presence of color space.
Next change will remove the function and flag entirely, but I wanted to
land this separately. This alters a few GMs in srgb/f16 mode, generally
those that are creating off-screen surfaces in ways that were somewhat
lossy before. No unexplained changes.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186633002

Review-Url: https://codereview.chromium.org/2186633002
2016-07-26 10:21:55 -07:00
mtklein
a5e1e33d39 Fix alignment problems in NEON Sk4b.
As written at head, the compiler can assume these loads and stores are 4
byte aligned [1].  We want Sk4b to load from any 1-byte aligned address,
to prevent crashes like [2].

[1] https://llvm.org/bugs/show_bug.cgi?id=24421
[2] https://luci-milo.appspot.com/swarming/task/304079e125b1b910/steps/nanobench/0/stdout

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183133002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2183133002
2016-07-26 10:07:34 -07:00
caryclark
e25a4f6cbe fix fuzz bugs
Add ability for intersection template to detect that
the test contains bounded numbers so that extra
asserts can trigger.

Add some exit points for out of range numbers
in those templates.

TBR=reed@google.com
BUG=631383,631374,631360
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185703002

Review-Url: https://codereview.chromium.org/2185703002
2016-07-26 09:26:29 -07:00
brianosman
efded51cd8 Always supply a color space (sRGB for now) with F16
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177193004

Review-Url: https://codereview.chromium.org/2177193004
2016-07-26 08:11:50 -07:00
mtklein
f660b7cfcf Add Sk4h_load4 for loading F16.
Should feel very similar to Sk4h_store4:
NEON uses its native instruction, SSE unpacks manually.

Since we'll have our F16s in 4 Sk4h by the time we're done here,
this also extracts an Sk4h->Sk4f routine from the old uint64_t->Sk4f one.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184753002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2184753002
2016-07-26 08:01:20 -07:00
robertphillips
8c523e0f3f Move prepareForExternalIO from GrRenderTarget to GrDrawContext
This is part of the push to remove GrRenderTarget from SkGpuDevice

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182543003

Review-Url: https://codereview.chromium.org/2182543003
2016-07-26 07:41:01 -07:00
egdaniel
707bbd622b Reuse sampler descriptor set allocations in Vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2172873003

Review-Url: https://codereview.chromium.org/2172873003
2016-07-26 07:19:48 -07:00
reed
27efa2371e respect kFast_SrcRectConstraint by allowing shader access to entire bitmap
BUG=355305
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176193002

Review-Url: https://codereview.chromium.org/2176193002
2016-07-25 19:10:10 -07:00
msarett
a18c3b8306 Use sk_srgb_to_linear_trunc in SkColorXform_opts
This gives us a little more control over instruction order, allowing
us to pipeline the muls and get better performance.  Technically,
clang should be able to do this for us anyway...

Performance on HP z620 (201295.jpg):
toSRGB: 371us -> 356us

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175413002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2175413002
2016-07-25 18:58:11 -07:00
msarett
3418c0e797 Delete SkDefaultXform, handle edge cases in SkColorSpaceXform_Base
"Edge" cases include:
(1) Matrices with translation
(2) colorLUTs

Performance on HP z620:

201295.jpg
to2Dot2: 386us -> 414us
toSRGB:  346us -> 371us
toHalf:  282us -> 302us

strange0-translate.jpg
toSRGB:  1060us -> 244us

strange1-colorLUT.jpg
toSRGB:  2.74ms -> 2.00ms

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177173003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2177173003
2016-07-25 18:23:18 -07:00
brianosman
9ac6d8d9f1 Fix F16 raster text masks. We don't want fake gamma in that case.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184443002

Review-Url: https://codereview.chromium.org/2184443002
2016-07-25 17:41:44 -07:00
bungeman
b8113780c3 Update typeface serialization style.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2030683002

Committed: https://skia.googlesource.com/skia/+/7ae1c72e593823e6e300e4199558555765bcec17
Review-Url: https://codereview.chromium.org/2030683002
2016-07-25 16:54:59 -07:00
bungeman
6e45bda29e Add test for typeface style round trip.
This also fixes the CG and GDI ports so they pass the test.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2171163002

Review-Url: https://codereview.chromium.org/2171163002
2016-07-25 15:11:49 -07:00
mtklein
4e90e3eb5e Have SkRasterPipelineBlitter take over for F16 when it can.
3 minor diffs to a couple GMs from fixed transfermodes (arithmetic and plus).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2181033002

Review-Url: https://codereview.chromium.org/2181033002
2016-07-25 14:35:31 -07:00
reed
bd2bd5c56d lock special-raster while the caller's bitmap is in-scope
previous CL that removed the specialimage subclass that wrapped the original image: https://codereview.chromium.org/2164073004

BUG=skia:5574
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183483003

Review-Url: https://codereview.chromium.org/2183483003
2016-07-25 14:26:02 -07:00
halcanary
56586b6f3d SkPDF: re-work SkPDFUtils::FloatToDecimal
* do a lot less floating-point math by converting to
    an integer as early as possible [faster].
  * round rather than truncate.
  * use 8 significant digits rather than 9 when possible.
  * remove trailing zeros in fractions.

before:
      0.12 !    PDFScalar   nonrendering
after:
      0.07 !    PDFScalar   nonrendering

Accuracy guaranteed by existing unit test.

Example diffs:

    -/Shading <</Function <</C0 [.321568638 .333333343 .321568638]
    +/Shading <</Function <</C0 [.32156864 .33333334 .32156864]

    -/C1 [.258823543 .270588248 .258823543]
    +/C1 [.25882354 .27058825 .25882354]

    -1 0 0 -1 20 120.394500 Tm
    +1 0 0 -1 20 120.394501 Tm

    -1 0 0 -1 20 184.789001 Tm
    +1 0 0 -1 20 184.789 Tm

    -291.503997 0 l
    +291.504 0 l

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146103004

Review-Url: https://codereview.chromium.org/2146103004
2016-07-25 13:59:30 -07:00
mtklein
1ab9e59da0 Google3 <functional> has a global "using std::plus"...
... so we can't use the name plus().  -_-

TBR=tomhudson@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183453003

Review-Url: https://codereview.chromium.org/2183453003
2016-07-25 13:24:09 -07:00
brianosman
8fe485b793 Just pass the draw context to paint conversion
Concentrate on using draw context functionality to answer gamma and color
related queries in more places.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182603003

Review-Url: https://codereview.chromium.org/2182603003
2016-07-25 12:31:51 -07:00
mtklein
64665440ef stages for most xfermodes
also assumes the clamp from https://codereview.chromium.org/2178793002/ is present

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177103002

Review-Url: https://codereview.chromium.org/2177103002
2016-07-25 11:00:47 -07:00
ethannicholas
d598f7981f SkSL performance improvements (plus a couple of minor warning fixes)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131223002

Committed: https://skia.googlesource.com/skia/+/9fd67a1f53809f5eff1210dd107241b450c48acc
Review-Url: https://codereview.chromium.org/2131223002
2016-07-25 10:08:54 -07:00
reed
c7ec7c9cab remove/deprecate SkBitmap::getTexture, as it now always returns false
oh happy day

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175873002

Review-Url: https://codereview.chromium.org/2175873002
2016-07-25 08:29:10 -07:00
reed
2c9e20055b remove fClipStack and attach/deattach-from-canvas
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180793002

Review-Url: https://codereview.chromium.org/2180793002
2016-07-25 08:05:23 -07:00
mtklein
b5acf6e702 Add a clamp stage to SkRasterPipelineBlitter.
This clamps to [0,1] premul just before every store to memory.

By making the clamp a stage itself, this design makes it easy to move the clamp
around, to replace it with a debug-only assert-we're-clamped stage for certain
formats, clamp in more places, programatically not clamp, etc. etc.

Before this change, clamping was a little haphazard: store_srgb clamped
R, G and B to [0,1], but not A, and didn't clamp the colors to A.  565
didn't clamp at all.

6 GMs draw subtly differently in sRGB, I think because we've started clamping
colors to alpha to enforce premultiplication better.  No changes for 565.

My hope is that now no other stage need ever concern itself with clamping.

So we don't double-clamp, I've added a _noclamp version of sk_linear_to_srgb()
that simply asserts a clamp isn't necessary.  This happens to expose the Sk4f
_needs_trunc version that might be useful for power users (*cough* Matt *cough*).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2178793002

Review-Url: https://codereview.chromium.org/2178793002
2016-07-25 06:13:47 -07:00
caryclark
8bc90e2db6 fix fuzz
Extreme inputs trigger asserts intended for in range data.
Return an error without asserting unless the test signals
otherwise.

TBR=reed@google.com
BUG=630736
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2178923002

Review-Url: https://codereview.chromium.org/2178923002
2016-07-25 06:05:08 -07:00
mtklein
05e3c39d93 Arithmetic xfermode stage.
565 is identical, and as usual the old sRGB path was broken.  :)
It was unimplemented, so the default missing Sk4f implementation was mimicking Src.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175133002

Review-Url: https://codereview.chromium.org/2175133002
2016-07-25 05:56:16 -07:00
brianosman
1638c0deea Add destination color space to AsFPArgs. Eliminates last XFORMTODO.
This is going to be needed in many more places as I finish connecting the
dots. Even better - I'd like to switch to a world where SkColorSpace !=
nullptr is the only signal we use for gamma-correct rendering, so I can
eliminate SkSourceGammaTreatment and SkSurfaceProps::isGammaCorrect.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180503002

Review-Url: https://codereview.chromium.org/2180503002
2016-07-25 05:12:53 -07:00
reed
b560b5c8c0 lockPixelsAreWritable is deprecated
BUG=skia:4328
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177063002

TBR=

Review-Url: https://codereview.chromium.org/2177063002
2016-07-24 12:30:34 -07:00
bsalomon
057ae8a15d Fix misdetection of rectangles in SkPath::IsSimpleClosedRect.
BUG=chromium:630369
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175923002

Review-Url: https://codereview.chromium.org/2175923002
2016-07-24 05:37:26 -07:00
egdaniel
0e72e9ee3b Remove asserts on scissor size in Vulkan
These are asserts are firing from a recent change to our scissor code.
Since these asserts were added, the Vulkan spec has been updated to no
longer require the scissor is insides the bounds of the image, just that
x + width does not overflow.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2171283004

Review-Url: https://codereview.chromium.org/2171283004
2016-07-22 14:41:30 -07:00
mtklein
8e4373f40b Have SkRasterPipelineBlitter take over for 565 when it can.
This is an experiment / demo to have our 565 backend fold into
SkRasterPipelineBlitter as it grows more powerful.  I plan to follow up with
the same for the other 8888 format.

Blur mask filters look significantly different (better) after this change.
We keep the full 13-14-13 bits of precision for mask blits, where the old code
uses 11-11-10 bit intermediates.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2172343002

Review-Url: https://codereview.chromium.org/2172343002
2016-07-22 14:20:28 -07:00
msarett
554479527c Convert XYZ values from PNGs to D50
Previously, we were storing whatever values we got out of the file
and pretending they were D50.  Brian has demonstrated that this
doesn't really work.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180483003

Review-Url: https://codereview.chromium.org/2180483003
2016-07-22 14:07:23 -07:00
herb
86a6c6d8bd In the current code, tiling and bilerp sampling are strongly tied together. They can be separated by taking advantage of observation that translating a sample point into filter points in the bilerp stage the filter points will be at most 0.5 outside the tile. This allows simplified repositioning for the various tiling modes; clamp and mirror use min and max while repeat has max -> 0 and 0-> max. This allows bilerp to simply treat the filter points that fall off the tile. This allows tiling and bilerp sampling to be totally separate.
This CL has several parts that are intertwined:
* move pin/wrap functionality into BilerpSampler.
* remove the nearest neighbor and bilerp tilers
* create a simplified general tiler
* remove the pipeline virtual calls bilerpEdge and bilerpSpan because everything works of sample points now.
* redo all the bilerp sampling to use the new local to methods to wrap/pin.
* introduce a new medium rate sample that handles spans with 1 < |dx| < 2.

This change improves the performance as displayed below:
Most of top 25 desktop improves or are the same. A few are worse, but close to the noise floor. In addition, this change has about 3% smaller code.

old time     new time   new/old
13274693  8414645  0.633886  top25desk_google_com_search_q_c.skp_1
4946466   3258018  0.658656  top25desk_wordpress.skp_1
6977187   5737584  0.822335  top25desk_youtube_com.skp_1
3770021   3296831  0.874486  top25desk_google_com__hl_en_q_b.skp_1
8890813   8600143  0.967307  top25desk_answers_yahoo_com.skp_1
3178974   3094300  0.973364  top25desk_facebook.skp_1
8871835   8711260  0.981901  top25desk_twitter.skp_1
838509    829290   0.989005  top25desk_blogger.skp_1
2821870   2801111  0.992644  top25desk_plus_google_com_11003.skp_1
511978    509530   0.995219  top25desk_techcrunch_com.skp_1
2408588   2397435  0.995369  top25desk_ebay_com.skp_1
4446919   4448004  1.00024   top25desk_espn.skp_1
2863241   2875696  1.00435   top25desk_google_com_calendar_.skp_1
7170086   7208447  1.00535   top25desk_booking_com.skp_1
7356109   7417776  1.00838   top25desk_pinterest.skp_1
5265591   5340392  1.01421   top25desk_weather_com.skp_1
5675244   5774144  1.01743   top25desk_sports_yahoo_com_.skp_1
1048531   1067663  1.01825   top25desk_games_yahoo_com.skp_1
2075501   2115131  1.01909   top25desk_amazon_com.skp_1
4262170   4370441  1.0254    top25desk_news_yahoo_com.skp_1
3789319   3897996  1.02868   top25desk_docs___1_open_documen.skp_1
919336    949979   1.03333   top25desk_wikipedia__1_tab_.skp_1
4274454   4489369  1.05028   top25desk_mail_google_com_mail_.skp_1
4149326   4376556  1.05476   top25desk_linkedin.skp_1

BUG=skia:5566
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2134893002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Committed: https://skia.googlesource.com/skia/+/8602ede5fdfa721dcad4dcb11db028c1c24265f1
Review-Url: https://codereview.chromium.org/2134893002
2016-07-22 14:06:27 -07:00
bungeman
f149169352 Correct advances for 'monospace' fonts in PDF.
FT_IS_FIXED_WIDTH, kCTFontMonoSpaceTrait, and TMPF_FIXED_PITCH
are style bits, they do not imply that all advances are the same.

BUG=skia:5537
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162023002

Review-Url: https://codereview.chromium.org/2162023002
2016-07-22 11:19:24 -07:00
mtklein
9a5c47f4ef Add SkRasterPipeline blitter.
This is now pixel-exact with the existing sRGB SW impl as far as I've tested.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146413002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

Committed: https://skia.googlesource.com/skia/+/3011e337693a9786f62d8de9ac4b239ad6dbdaca
Review-Url: https://codereview.chromium.org/2146413002
2016-07-22 11:05:04 -07:00
brianosman
839345d634 Bundle SkShader::asFragmentProcessor arguments in a struct
The signature of this thing keeps changing (and is about to change again).
This just makes maintenance much easier.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175563003

Review-Url: https://codereview.chromium.org/2175563003
2016-07-22 11:04:53 -07:00
caryclark
8a8accbcd1 limit number of searched roots
Extreme numbers can generate more than
three found cubic roots when the roots
are found through a binary search.

Fail in this case.

TBR=reed@google.com
BUG=630649
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176733002

Review-Url: https://codereview.chromium.org/2176733002
2016-07-22 10:56:26 -07:00
jvanverth
4c6e47a8a8 Recycle small uniform buffers.
BUG=skia:5031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2159333002

Review-Url: https://codereview.chromium.org/2159333002
2016-07-22 10:34:52 -07:00
brianosman
500bb3e3e4 Connect dst color space in a few places (removing TODOs)
There is one more XFORMTODO left, but it requires more plumbing.
With this change, certain drawing paths do gamut conversion with
no special hacking required.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2174843002

Review-Url: https://codereview.chromium.org/2174843002
2016-07-22 10:33:07 -07:00
mtklein
aa29b27329 Revert of Add SkRasterPipeline blitter. (patchset #18 id:340001 of https://codereview.chromium.org/2146413002/ )
Reason for revert:
Leaking the blitter

https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/7908/steps/test_skia%20on%20Ubuntu/logs/stdio

Original issue's description:
> Add SkRasterPipeline blitter.
>
> This is now pixel-exact with the existing sRGB SW impl as far as I've tested.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146413002
> CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/3011e337693a9786f62d8de9ac4b239ad6dbdaca

TBR=reed@google.com,mtklein@chromium.org
# 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/2178523002
2016-07-22 10:20:52 -07:00
vjiaoblack
5bfee98c8c Creating framework for drawShadowedPicture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003

Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a
Committed: https://skia.googlesource.com/skia/+/95302da19d8b0a3bcd9d9be0e79f486760787f09
Review-Url: https://codereview.chromium.org/2146073003
2016-07-22 10:04:15 -07:00
csmartdalton
cbecb082d1 Allow GrReducedClip to take non-integer query bounds
Fixes places where AA bloat was being conflated with geometric
boundaries and updates GrReducedClip to work with non-integer query
bounds. This allows for better clip reduction with AA shared edges.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2160093002

Review-Url: https://codereview.chromium.org/2160093002
2016-07-22 08:59:08 -07:00
mtklein
3011e33769 Add SkRasterPipeline blitter.
This is now pixel-exact with the existing sRGB SW impl as far as I've tested.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146413002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2146413002
2016-07-22 08:53:26 -07:00
csmartdalton
d50e240178 Fix SkClipStack bug with inverse-filled difference elements
Previously, SkClipStack would call "setEmpty" on itself when an
inverse-filled difference element made the stack empty. This was
a problem because setEmpty would forget the element had an inverse
fill, yet leave the op as "difference". This change modifies it to
manually update the clip bounds and set the gen-ID to kEmptyGenID,
rather than calling setEmpty.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175493002

Review-Url: https://codereview.chromium.org/2175493002
2016-07-22 08:39:06 -07:00
mtklein
aec570e2d7 Don't ask GLX for EGL procs.
Seems to fix my woes.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168293003

Review-Url: https://codereview.chromium.org/2168293003
2016-07-22 08:35:27 -07:00
mtklein
d01a8f470f Fix SW sRGB dst + LCD coverage bug.
We're using the linear procs for sRGB destintations
and the sRGB procs for linear destinations.  Fix that.

C.f. State32::getLCDProc(), which flags |= kDstIsSRGB_LCDFlag.
kDistIsSRGB is (1<<2) == 4, so the sRGB procs must be 4-7, not 0-3.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177493002

Review-Url: https://codereview.chromium.org/2177493002
2016-07-22 07:35:08 -07:00
bsalomon
bb24383abb Revert of Retract PipelineBuilder some more (patchset #9 id:160001 of https://codereview.chromium.org/2092893003/ )
Reason for revert:
skbug.com/5559

Original issue's description:
> Retract PipelineBuilder some more
>
> The main part of this CL is widening SkDrawContext::drawBatch's API to accept the userStencilSettings & drawFace
>
> There is some ancillary spookiness related to expanding the should_apply_coverage_aa & mustUseHWAA methods to encompass mixedSamples
>
> Calved off:
> https://codereview.chromium.org/2165283002/ (Remove DrawFace enum from GrPipelineBuilder)
> https://codereview.chromium.org/2167183002/ (Minor change to Ganesh path renderers)
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2092893003
>
> Committed: https://skia.googlesource.com/skia/+/2895eeb11a9f0d9c0018d49dd4bc45f6c6fc062c

TBR=robertphillips@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/2175573004
2016-07-22 07:10:20 -07:00
brianosman
396fcdba14 Cleanup of code that converts from GPU-backed resources to SkImageInfo
Functions like GrMakeInfoFromTexture encouraged incorrect code to be
written. Similarly, the ability to construct an info from any GrSurface
was never going to be correct. Luckily, the only client of that had all
of the correct parameters much higher on the stack (and dictated or
replaced most of the properties of the returned info anyway).

With this, I can finally remove the color space as an output of the
pixel config -> color type conversion, which was never going to be
correct.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2173513002

Review-Url: https://codereview.chromium.org/2173513002
2016-07-22 06:26:11 -07:00
msarett
a5ba329c81 Add clamp to sk_linear_to_srgb, reorder instructions
Improves performance for xforms toSRGB and to2Dot2.  Seems
more optimal to save clamping until the end.  That way we
don't stall the mul pipeline with a min/max.
toSRGB:  371us -> 346us
to2Dot2: 404us -> 387us

FWIW, it probably makes sense to clamp inside
sk_linear_to_srgb anyway.  If not, we should potentially
provide two versions (one that clamps and one that
doesn't).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2173803002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2173803002
2016-07-22 06:23:00 -07:00
jcgregorio
da626aadcc Revert of Redo Tiling (patchset #14 id:260001 of https://codereview.chromium.org/2134893002/ )
Reason for revert:
Crashing on Win with:

Caught exception 3221225477 EXCEPTION_ACCESS_VIOLATION, was running:
	unit test  GrShape
	srgb gm  shadertext2
	srgb gm  shallow_gradient_conical
	srgb gm  shallow_gradient_sweep
	srgb gm  shallow_gradient_linear_nodither
step returned non-zero exit code: -1073741819

https://status.skia.org/?commit_label=author&filter=search&search_value=Test-Win-MSVC-GCE-CPU-AVX2-x86-Release

Original issue's description:
> In the current code, tiling and bilerp sampling are strongly tied together. They can be separated by taking advantage of observation that translating a sample point into filter points in the bilerp stage the filter points will be at most 0.5 outside the tile. This allows simplified repositioning for the various tiling modes; clamp and mirror use min and max while repeat has max -> 0 and 0-> max. This allows bilerp to simply treat the filter points that fall off the tile. This allows tiling and bilerp sampling to be totally separate.
>
> This CL has several parts that are intertwined:
> * move pin/wrap functionality into BilerpSampler.
> * remove the nearest neighbor and bilerp tilers
> * create a simplified general tiler
> * remove the pipeline virtual calls bilerpEdge and bilerpSpan because everything works of sample points now.
> * redo all the bilerp sampling to use the new local to methods to wrap/pin.
> * introduce a new medium rate sample that handles spans with 1 < |dx| < 2.
>
> This change improves the performance as displayed below:
> Most of top 25 desktop improves or are the same. A few are worse, but close to the noise floor. In addition, this change has about 3% smaller code.
>
> old time     new time   new/old
> 13274693  8414645  0.633886  top25desk_google_com_search_q_c.skp_1
> 4946466   3258018  0.658656  top25desk_wordpress.skp_1
> 6977187   5737584  0.822335  top25desk_youtube_com.skp_1
> 3770021   3296831  0.874486  top25desk_google_com__hl_en_q_b.skp_1
> 8890813   8600143  0.967307  top25desk_answers_yahoo_com.skp_1
> 3178974   3094300  0.973364  top25desk_facebook.skp_1
> 8871835   8711260  0.981901  top25desk_twitter.skp_1
> 838509    829290   0.989005  top25desk_blogger.skp_1
> 2821870   2801111  0.992644  top25desk_plus_google_com_11003.skp_1
> 511978    509530   0.995219  top25desk_techcrunch_com.skp_1
> 2408588   2397435  0.995369  top25desk_ebay_com.skp_1
> 4446919   4448004  1.00024   top25desk_espn.skp_1
> 2863241   2875696  1.00435   top25desk_google_com_calendar_.skp_1
> 7170086   7208447  1.00535   top25desk_booking_com.skp_1
> 7356109   7417776  1.00838   top25desk_pinterest.skp_1
> 5265591   5340392  1.01421   top25desk_weather_com.skp_1
> 5675244   5774144  1.01743   top25desk_sports_yahoo_com_.skp_1
> 1048531   1067663  1.01825   top25desk_games_yahoo_com.skp_1
> 2075501   2115131  1.01909   top25desk_amazon_com.skp_1
> 4262170   4370441  1.0254    top25desk_news_yahoo_com.skp_1
> 3789319   3897996  1.02868   top25desk_docs___1_open_documen.skp_1
> 919336    949979   1.03333   top25desk_wikipedia__1_tab_.skp_1
> 4274454   4489369  1.05028   top25desk_mail_google_com_mail_.skp_1
> 4149326   4376556  1.05476   top25desk_linkedin.skp_1
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2134893002
> CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/8602ede5fdfa721dcad4dcb11db028c1c24265f1

TBR=mtklein@google.com,herb@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/2174793002
2016-07-22 05:40:58 -07:00
caryclark
cdeff81bdb conic fuzz fix
If no closest section is found in conic intersection
(which can happen if the numbers are out of range)
abort the intersection.

Also suppress assert fired in this case so it only
checks intersections with in-range values.

TBR=reed@google.com
BUG=630378
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166813006

Review-Url: https://codereview.chromium.org/2166813006
2016-07-22 03:34:19 -07:00
bungeman
5379051ee7 Fix SkScalerContext_FreeType::generateFontMetrics.
SkScalerContext::generateFontMetrics implementations should not attempt
to take into account skew. This implementation should correctly handle
bitmap fonts as well.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165323002

Review-Url: https://codereview.chromium.org/2165323002
2016-07-21 13:32:09 -07:00
brianosman
dfe4f2e4fe Add SkColorSpace to GrDrawContext
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164363002

Review-Url: https://codereview.chromium.org/2164363002
2016-07-21 13:28:36 -07:00
herb
8602ede5fd In the current code, tiling and bilerp sampling are strongly tied together. They can be separated by taking advantage of observation that translating a sample point into filter points in the bilerp stage the filter points will be at most 0.5 outside the tile. This allows simplified repositioning for the various tiling modes; clamp and mirror use min and max while repeat has max -> 0 and 0-> max. This allows bilerp to simply treat the filter points that fall off the tile. This allows tiling and bilerp sampling to be totally separate.
This CL has several parts that are intertwined:
* move pin/wrap functionality into BilerpSampler.
* remove the nearest neighbor and bilerp tilers
* create a simplified general tiler
* remove the pipeline virtual calls bilerpEdge and bilerpSpan because everything works of sample points now.
* redo all the bilerp sampling to use the new local to methods to wrap/pin.
* introduce a new medium rate sample that handles spans with 1 < |dx| < 2.

This change improves the performance as displayed below:
Most of top 25 desktop improves or are the same. A few are worse, but close to the noise floor. In addition, this change has about 3% smaller code.

old time     new time   new/old
13274693  8414645  0.633886  top25desk_google_com_search_q_c.skp_1
4946466   3258018  0.658656  top25desk_wordpress.skp_1
6977187   5737584  0.822335  top25desk_youtube_com.skp_1
3770021   3296831  0.874486  top25desk_google_com__hl_en_q_b.skp_1
8890813   8600143  0.967307  top25desk_answers_yahoo_com.skp_1
3178974   3094300  0.973364  top25desk_facebook.skp_1
8871835   8711260  0.981901  top25desk_twitter.skp_1
838509    829290   0.989005  top25desk_blogger.skp_1
2821870   2801111  0.992644  top25desk_plus_google_com_11003.skp_1
511978    509530   0.995219  top25desk_techcrunch_com.skp_1
2408588   2397435  0.995369  top25desk_ebay_com.skp_1
4446919   4448004  1.00024   top25desk_espn.skp_1
2863241   2875696  1.00435   top25desk_google_com_calendar_.skp_1
7170086   7208447  1.00535   top25desk_booking_com.skp_1
7356109   7417776  1.00838   top25desk_pinterest.skp_1
5265591   5340392  1.01421   top25desk_weather_com.skp_1
5675244   5774144  1.01743   top25desk_sports_yahoo_com_.skp_1
1048531   1067663  1.01825   top25desk_games_yahoo_com.skp_1
2075501   2115131  1.01909   top25desk_amazon_com.skp_1
4262170   4370441  1.0254    top25desk_news_yahoo_com.skp_1
3789319   3897996  1.02868   top25desk_docs___1_open_documen.skp_1
919336    949979   1.03333   top25desk_wikipedia__1_tab_.skp_1
4274454   4489369  1.05028   top25desk_mail_google_com_mail_.skp_1
4149326   4376556  1.05476   top25desk_linkedin.skp_1

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2134893002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2134893002
2016-07-21 13:22:04 -07:00
msarett
959d45b433 Miscellaneous color space refactors
(1) Use float matrix[16] everywhere (enables future code
    sharing).
(2) SkColorLookUpTable refactors
    *** Store in a single allocation (like SkGammas)
    *** Eliminate fOutputChannels (we always require 3,
        and probably always will)
(3) Change names of read_big_endian_* helpers

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166093003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2166093003
2016-07-21 13:19:04 -07:00
bsalomon
d7bae18c7b Reenable support for CHROMIUM_set_uniform_location
BUG=skia:5015
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167303002

Review-Url: https://codereview.chromium.org/2167303002
2016-07-21 12:49:30 -07:00
caryclark
a339bb0d95 let line/cubic intersect at four spots
With this, let's update the fuzzer.

R=kjlubick@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169983002

Review-Url: https://codereview.chromium.org/2169983002
2016-07-21 12:28:04 -07:00
robertphillips
2895eeb11a Retract PipelineBuilder some more
The main part of this CL is widening SkDrawContext::drawBatch's API to accept the userStencilSettings & drawFace

There is some ancillary spookiness related to expanding the should_apply_coverage_aa & mustUseHWAA methods to encompass mixedSamples

Calved off:
https://codereview.chromium.org/2165283002/ (Remove DrawFace enum from GrPipelineBuilder)
https://codereview.chromium.org/2167183002/ (Minor change to Ganesh path renderers)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2092893003

Review-Url: https://codereview.chromium.org/2092893003
2016-07-21 12:04:08 -07:00
msarett
f25bff95db Drop support for libjpeg-turbo < 1.2 in SkJpegCodec
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164283002

Review-Url: https://codereview.chromium.org/2164283002
2016-07-21 12:00:24 -07:00
msarett
530c844d25 Remove unnecessary getColorSpace() API from SkCodec
Not needed since now we can get it from the SkImageInfo.

TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2170793004

Review-Url: https://codereview.chromium.org/2170793004
2016-07-21 11:57:49 -07:00
egdaniel
a95220d3b8 Setup system in Vulkan to reuse VkDescriptorSet allocations.
This CL uses the new system for uniform buffers. In a follow up CL I will
add support for samplers.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163673002

Review-Url: https://codereview.chromium.org/2163673002
2016-07-21 11:50:37 -07:00
caryclark
81681949d3 allow curves on side of lines to be very small
Increase the precision of the 'all on one side' pathops
angle test to reduce the number of unorderable segments
found by the cubics_d3 test.

This allows pathsops_unittest release build with -v -V -x
to run without error.

TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168163002

Review-Url: https://codereview.chromium.org/2168163002
2016-07-21 10:44:07 -07:00
vjiaoblack
95302da19d Creating framework for drawShadowedPicture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003

Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a
Review-Url: https://codereview.chromium.org/2146073003
2016-07-21 10:25:54 -07:00
lsalzman
f41ae2f973 limit the number of points in SkDashPathEffect::asPoints
If the length of a line path is sufficiently long relative to the dash
interval, it is possible to cause SkDashPathEffect::asPoints to produce
so many points that it overflows the amount that can fit in an int type,
or otherwise produce non-finite values, i.e. path from (0,0) to (0,9e15)
with a dash interval of 1.

This fixes that by capping the amount of points to a sane limit - in this
case, 1mil, since that limit is also used in utils/SkDashPath.cpp and has
precedent.

Downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1287515

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165013002

Review-Url: https://codereview.chromium.org/2165013002
2016-07-21 09:37:59 -07:00
robertphillips
f292a0c862 Remove SkGrPixelRef
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167173002

Review-Url: https://codereview.chromium.org/2167173002
2016-07-21 09:35:07 -07:00
vjiaoblack
33d325890e Revert of Creating framework for drawShadowedPicture (patchset #14 id:260001 of https://codereview.chromium.org/2146073003/ )
Reason for revert:
Decided to re-wait for a final LGTM.

Already found a bug in variable naming to fix.

Original issue's description:
> Creating framework for drawShadowedPicture
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003
>
> Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a

TBR=reed@google.com,robertphillips@google.com,bsalomon@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/2167223002
2016-07-21 09:24:16 -07:00
robertphillips
5fa7f30331 Remove DrawFace enum from GrPipelineBuilder
This gets GrPipelineBuilder.h out of the headers

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165283002

Committed: https://skia.googlesource.com/skia/+/da152ebb032c61bb2561bbb3e9a78037ad174d34
Review-Url: https://codereview.chromium.org/2165283002
2016-07-21 09:21:04 -07:00
vjiaoblack
0ae097d116 Creating framework for drawShadowedPicture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003

Review-Url: https://codereview.chromium.org/2146073003
2016-07-21 09:10:23 -07:00
robertphillips
d2b6d6486e Minor change to Ganesh path renderers
In large part this is an attempt to get non-substantive changes out of https://codereview.chromium.org/2092893003/ (Retract PipelineBuilder some more)

All the other parameters extracted from DrawPathArgs are passed around by reference except for the userStencilSettings

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167183002

Review-Url: https://codereview.chromium.org/2167183002
2016-07-21 08:55:08 -07:00
caryclark
7b33bf1d2a fix builder fuzz
Fix ASAN_heap-use-after-free crash

R=kjlubick
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168963002

Review-Url: https://codereview.chromium.org/2168963002
2016-07-21 08:53:32 -07:00
robertphillips
5d1676c751 Revert of Remove DrawFace enum from GrPipelineBuilder (patchset #2 id:20001 of https://codereview.chromium.org/2165283002/ )
Reason for revert:
No Vulkan bot in CQ :(

Original issue's description:
> Remove DrawFace enum from GrPipelineBuilder
>
> This gets GrPipelineBuilder.h out of the headers
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165283002
>
> Committed: https://skia.googlesource.com/skia/+/da152ebb032c61bb2561bbb3e9a78037ad174d34

TBR=bsalomon@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/2167193002
2016-07-21 08:18:05 -07:00
robertphillips
da152ebb03 Remove DrawFace enum from GrPipelineBuilder
This gets GrPipelineBuilder.h out of the headers

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165283002

Review-Url: https://codereview.chromium.org/2165283002
2016-07-21 07:58:41 -07:00
robertphillips
1f3923e4e5 Deprecate SkDevice::accessBitmap method
Relies on https://codereview.chromium.org/2162423003/ (Add SK_SUPPORT_LEGACY_ACCESSBITMAP Skia guard) landing in Chromium first.

Calved off: https://codereview.chromium.org/2163323002/ (Add desired width & height to drawContext (as opposed to using the width & height of the RT))

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168483003

Review-Url: https://codereview.chromium.org/2168483003
2016-07-21 07:17:54 -07:00
brianosman
afbf71dd92 Adding color space to SkSpecialImage
Mostly means that GPU backed special images need to be supplied (and
store) a color space object.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163343002

Review-Url: https://codereview.chromium.org/2163343002
2016-07-21 07:15:37 -07:00
msarett
1b93bd1e6e Refactor parsing and storage of SkGammas
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
    save memory.

Non-Benefits:
(1) Not less complicated.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002

Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856
Review-Url: https://codereview.chromium.org/2117773002
2016-07-21 07:11:26 -07:00
caryclark
1597628fa3 fix fuzzer bug
Fix another fuzzer bug.

Some PathOps asserts only make sense if the incoming data is
well-behaved. Well-behaved tests set debugging state to
trigger these additional asserts.

Formalize this by creating macros similar to SkASSERT that
check to see if the assert should be skipped.

TBR=reed@google.com
BUG=629962
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169863002

Review-Url: https://codereview.chromium.org/2169863002
2016-07-21 05:48:44 -07:00
mtklein
0c902473d6 Correct sRGB <-> linear everywhere.
This trims the SkPM4fPriv methods down to just foolproof methods.
(Anything trying to build these itself is probably wrong.)

Things like Sk4f srgb_to_linear(Sk4f) can't really exist anymore,
at least not efficiently, so this refactor is somewhat more invasive
than you might think.  Generally this means things using to_4f() are
also making a misstep... that's gone too.

It also does not make sense to try to play games with linear floats
with 255 bias any more.  That hack can't work with real sRGB coding.

Rather than update them, I've removed a couple of L32 xfermode fast
paths.  I'd even rather drop it entirely...

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163683002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2163683002
2016-07-20 18:10:07 -07:00
msarett
456bf30d32 Revert of Refactor parsing and storage of SkGammas (patchset #8 id:280001 of https://codereview.chromium.org/2117773002/ )
Reason for revert:
Tests failing

Original issue's description:
> Refactor parsing and storage of SkGammas
>
> Benefits:
> (1) Parses and stores gamma tags in a single allocation.
> (2) Recognizes equal gamma tags to skip parsing work and
>     save memory.
>
> Non-Benefits:
> (1) Not less complicated.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
>
> Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
> Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856

TBR=reed@google.com,brianosman@google.com,mtklein@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/2171623002
2016-07-20 16:14:17 -07:00
reed
ad7604b4a7 Have MakeFromImage fission the SkImage into a raster or a texture (patchset #1 id:1 of https://codereview.chromium.org/2167813002/ )"
This reverts commit 3fb87201a1.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164073004

TBR=robertphilips@google.com

Review-Url: https://codereview.chromium.org/2164073004
2016-07-20 16:13:32 -07:00
reed
3fb87201a1 Revert of have MakeFromImage fission the SkImage into a raster or a texture (patchset #1 id:1 of https://codereview.chromium.org/2167813002/ )
Reason for revert:
broke ios build in chrome -- no_gpu?

Original issue's description:
> have MakeFromImage fission the SkImage into a raster or a texture
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167813002
>
> Committed: https://skia.googlesource.com/skia/+/a61bfc6292edb990eae0b948648016550ef739a9

TBR=robertphillips@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/2168643003
2016-07-20 15:38:15 -07:00
msarett
959ccc1f3f Refactor parsing and storage of SkGammas
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
    save memory.

Non-Benefits:
(1) Not less complicated.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002

Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
Review-Url: https://codereview.chromium.org/2117773002
2016-07-20 15:10:02 -07:00
reed
a61bfc6292 have MakeFromImage fission the SkImage into a raster or a texture
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167813002

Review-Url: https://codereview.chromium.org/2167813002
2016-07-20 14:22:37 -07:00
brianosman
dddbe380b0 Adding an SkColorSpace to SkImage_Gpu
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165703003

Review-Url: https://codereview.chromium.org/2165703003
2016-07-20 13:55:39 -07:00
caryclark
7d46f4af7d exclude unused functions when mac uses freetype (for pdf)
R=bungeman@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163833004

Review-Url: https://codereview.chromium.org/2163833004
2016-07-20 13:15:51 -07:00
msarett
2aec3ffe32 Revert of Refactor parsing and storage of SkGammas (patchset #7 id:220001 of https://codereview.chromium.org/2117773002/ )
Reason for revert:
Broken bots.

Original issue's description:
> Refactor parsing and storage of SkGammas
>
> Benefits:
> (1) Parses and stores gamma tags in a single allocation.
> (2) Recognizes equal gamma tags to skip parsing work and
>     save memory.
>
> Non-Benefits:
> (1) Not less complicated.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
>
> Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7

TBR=reed@google.com,brianosman@google.com,mtklein@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/2159253005
2016-07-20 12:58:52 -07:00
reed
cf5c846b41 remove dead methods now that we use specials exclusively for imagefilters
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164763003

Review-Url: https://codereview.chromium.org/2164763003
2016-07-20 12:28:40 -07:00
jvanverth
e499adf328 Use dFdx in Vulkan to address distance field issues.
On Nexus Player and occasionally Nexus 5x we get transparent boxes around
paths. This appears to be because the dFdy call is not as accurate as
dFdx, which is the opposite of Mali 400. As Mali 400 is not supported with
Vulkan, we can go back to using dFdx in this case.

BUG=skia:5523
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163213004

Review-Url: https://codereview.chromium.org/2163213004
2016-07-20 12:22:14 -07:00
mtklein
566ea9b9fc Tune linear->sRGB constants to round-trip all bytes.
I basically just ran a big 5-deep for-loop over the five constants here.
This is the first set of coefficients I found that round trips all bytes.
I suspect there are many such sets.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162063003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2162063003
2016-07-20 12:10:11 -07:00
msarett
2ea944c2b7 Refactor parsing and storage of SkGammas
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
    save memory.

Non-Benefits:
(1) Not less complicated.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002

Review-Url: https://codereview.chromium.org/2117773002
2016-07-20 11:44:42 -07:00
reed
de996a0df7 re-disable save/restore peephole optimization
BUG=skia:5548, 629408
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163283002

Review-Url: https://codereview.chromium.org/2163283002
2016-07-20 11:24:52 -07:00
dvonbeck
c526da94e4 SkLS now accepting nullptr for diffuse shader and normal source, now accurately handling alpha
This CL's base is the CL for taking in a diffuse shader into SkLS on the API side: https://codereview.chromium.org/2064153002

BUG=skia:5502,skia:5517
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132113002

Review-Url: https://codereview.chromium.org/2132113002
2016-07-20 11:20:30 -07:00
reed
158fabb071 re-chop if we fail on a big-bad-cubic
BUG=629455
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2159223005

Review-Url: https://codereview.chromium.org/2159223005
2016-07-20 10:06:59 -07:00
bungeman
1f790aaeef Improve assert reporting.
Make SkASSERTF output readable.
Ensure the assert predicate is stringified once.
Make the abort code consistent.

TBR=reed
This doesn't change any public API, most of this should be privatized.

Review-Url: https://codereview.chromium.org/2161103002
2016-07-20 09:49:10 -07:00
robertphillips
ea70c4bb22 Remove SkDevice::accessRenderTarget virtual
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002

Review-Url: https://codereview.chromium.org/2167723002
2016-07-20 08:54:31 -07:00
egdaniel
c1be9bc169 Add GrVkRecycledResource subclass
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167453003

Review-Url: https://codereview.chromium.org/2167453003
2016-07-20 08:33:00 -07:00
fmenozzi
35a98c733f Add integer array uniforms to GL and Vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163173005

Review-Url: https://codereview.chromium.org/2163173005
2016-07-20 08:26:12 -07:00
bsalomon
487f8d385b Consolidate special case shape transformation logic in GrShapeTest.
Enable all tests on all geometry types.

Add conversion of fill+miter-stroke->fill for rect geometries in GrShape.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157013003

Review-Url: https://codereview.chromium.org/2157013003
2016-07-20 07:15:44 -07:00
reed
a2217ef965 use special-image for imagefilters and save/restore layer
add special virtuals to device, in preparation for using them instead of bitmap for imagefilters

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155933002

patch from issue 2155933002 at patchset 20001 (http://crrev.com/2155933002#ps20001)

use specialimages instead of bitmaps for imagefiltering

Review-Url: https://codereview.chromium.org/2155063002
2016-07-20 06:04:34 -07:00
mtklein
53574b7236 Fix color order for 565,4444, and I8 samplers.
10 GMs fixed on Linux/Win!

Also, don't unpremul I8 colors.  It's inconsistent with the other formats.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166623002

Review-Url: https://codereview.chromium.org/2166623002
2016-07-20 05:23:31 -07:00
reed
e51c356ae4 pre-land special methods on device
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161233002

Review-Url: https://codereview.chromium.org/2161233002
2016-07-19 14:33:20 -07:00
brianosman
9ecaa1d9f0 Remove unused MakeFromTextureCopy API
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165803002

Review-Url: https://codereview.chromium.org/2165803002
2016-07-19 14:16:49 -07:00
robertphillips
ecbc15d46c Minor cleanup of GrStencilAndCoverTextContext
Split out of https://codereview.chromium.org/2163483002/ (Use SkFont in GrStencilAndCoverTextContext)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165673002

Review-Url: https://codereview.chromium.org/2165673002
2016-07-19 14:04:39 -07:00
mtklein
d1bd2082c5 Update rounding/clamping comments on sk_linear_to_srgb().
Rounding is enough.  No need for an explicit clamp if the inputs are in range.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161223002

Review-Url: https://codereview.chromium.org/2161223002
2016-07-19 13:36:03 -07:00
Ben Wagner
4bcb4c7a25 Make SkOTTable_name.cpp UTF-8.
When editing on Windows this file became iso-8859-1.
2016-07-19 16:10:56 -04:00
mtklein
35f255f0f7 Fix color order on LCD text when using sRGB software backend.
BUG=skia:5182
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166533002

Review-Url: https://codereview.chromium.org/2166533002
2016-07-19 12:59:35 -07:00
caryclark
1493b9772d fix fuzzer
Previous spans always have a valid next pointer. The final span does not.
Change the test for a valid link to take into consideration whether
the links are chased forwards or backwards.

TBR=reed@google.com
BUG=629454
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166543002

Review-Url: https://codereview.chromium.org/2166543002
2016-07-19 11:29:15 -07:00
fmenozzi
64e8e5dd0b Clarify GrGradientEffect key enum
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2158323003

Review-Url: https://codereview.chromium.org/2158323003
2016-07-19 10:45:57 -07:00
msarett
6bdbf4412b Improve naive SkColorXform to half floats
This should give us a good baseline to explore using SkRasterPipeline.

A particular colorxform to half float drops from 425us to 282us on my desktop.

Color Xform to Half Float (HP z620)
Original                              425us
Trans16 (not 32)                      355us
Vector Trans16                        378us
Trans16 + Keep Halfs in Vector        335us
Vector Trans16 + Keep Halfs in Vector 282us
Final                                 282us

Color Xform to Half Float (Nexus 5X)
Original                              556us
Final                                 472us

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2159993003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2159993003
2016-07-19 09:07:55 -07:00
bsalomon
49b264c217 Create DCs rather than textures in GrConfigConversionEffect
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162953002

Review-Url: https://codereview.chromium.org/2162953002
2016-07-19 08:38:09 -07:00
reed
7f3ff20843 remove unused MakeFromPixmap
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2158913004

TBR=robertphilips@google.com

Review-Url: https://codereview.chromium.org/2158913004
2016-07-19 08:26:09 -07:00
bsalomon
916e02a6d0 Start from DC rather than texture in GrTexutreParamsAdjuster copy code.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2158383002

Review-Url: https://codereview.chromium.org/2158383002
2016-07-19 08:12:30 -07:00
brianosman
c4459f6a33 Fix debugging code for tracing texture creation
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164623002

Review-Url: https://codereview.chromium.org/2164623002
2016-07-19 08:02:21 -07:00
robertphillips
e34f17d236 Make SkFont a bit more useable
Split out of https://codereview.chromium.org/2163483002/ (Use SkFont in GrStencilAndCoverTextContext)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163633002

Review-Url: https://codereview.chromium.org/2163633002
2016-07-19 07:59:22 -07:00
bsalomon
b117ff194f Convert readSurfacePixels to use a draw context instead of a texture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165523003

Review-Url: https://codereview.chromium.org/2165523003
2016-07-19 07:24:40 -07:00
bsalomon
23c4f1acbc Fix GrGLInterface::validate() to check for GL_OES_sample_shading on ES contexts
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2156343004

Review-Url: https://codereview.chromium.org/2156343004
2016-07-19 06:21:55 -07:00
fmalita
01c97230f8 Delete the legacy SVG parser
Unused.

R=reed@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154193003
CQ_INCLUDE_TRYBOTS=master.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/2154193003
2016-07-19 06:12:54 -07:00
fmalita
fd75dd4086 Delete SkXMLPullParser
Unused & not being built.

R=reed@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163463002

Review-Url: https://codereview.chromium.org/2163463002
2016-07-19 05:14:41 -07:00
robertphillips
5139e501c5 Rename variables in SkCanvas::internalSaveLayer
This is split out of https://codereview.chromium.org/2145343005/ (Recast draw_filter_into_device as drawDevice) to, hopefully, make it easier to integrate that CL

TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162883002

Review-Url: https://codereview.chromium.org/2162883002
2016-07-19 05:10:40 -07:00
kolczyk
718aab1e3f Fix the assert and clamping in SkMatrix::get*Scale[s]().
Follow-up after https://codereview.chromium.org/2143133005/.

BUG=skia:4718
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154123003

Review-Url: https://codereview.chromium.org/2154123003
2016-07-19 03:49:14 -07:00
msarett
2812f03d54 Fix rewinding bug in SkJpegCodec
Performing a sampled and/or subset decode will create some state
in SkJpegCodec.  If we fail to clean up this state properly,
subsequent decodes may try to reuse (and potentailly overflow)
the leftover memory.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161593003

Committed: https://skia.googlesource.com/skia/+/4ecb8ab556214c9337f56bc36d50e4d7c655ac7a
Review-Url: https://codereview.chromium.org/2161593003
2016-07-18 15:56:08 -07:00
bungeman
401ae2d2a0 Rotate bitmap strikes with FreeType.
BUG=skia:3490
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002

Committed: https://skia.googlesource.com/skia/+/31e0c1379e6d0ce48196183e295b929af51fa74e
Review-Url: https://codereview.chromium.org/2139703002
2016-07-18 15:46:28 -07:00
msarett
db00a2a9eb Revert of Fix rewinding bug in SkJpegCodec (patchset #1 id:1 of https://codereview.chromium.org/2161593003/ )
Reason for revert:
Breaking Google3 build.  Will reland corrected version.

Original issue's description:
> Fix rewinding bug in SkJpegCodec
>
> Performing a sampled and/or subset decode will create some state
> in SkJpegCodec.  If we fail to clean up this state properly,
> subsequent decodes may try to reuse (and potentailly overflow)
> the leftover memory.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161593003
>
> Committed: https://skia.googlesource.com/skia/+/4ecb8ab556214c9337f56bc36d50e4d7c655ac7a

TBR=djsollen@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/2155163004
2016-07-18 15:19:48 -07:00
bsalomon
7890b89418 Remove guards in GrGLInterface::validate() for functions that Chromium used to not provide.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2158983002

Review-Url: https://codereview.chromium.org/2158983002
2016-07-18 14:59:05 -07:00
robertphillips
640789d64b Push GrPipelineBuilder down to the drawBatch calls in the TextContext
This is split out of https://codereview.chromium.org/2092893003/ (Retract PipelineBuilder some more)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155983003

Review-Url: https://codereview.chromium.org/2155983003
2016-07-18 14:56:06 -07:00
fmalita
125845553b [SkXMLParser] Initial text node support
Also disable entity processing.

R=bungeman@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154853002

Review-Url: https://codereview.chromium.org/2154853002
2016-07-18 14:47:30 -07:00
reed
01a2ff8a32 check for culled-out paths inside SkDraw
BUG=629026
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155213002

Review-Url: https://codereview.chromium.org/2155213002
2016-07-18 13:22:55 -07:00
fmalita
a427cc4d6b Remove SkDOM::build(const char doc[], size_t len)
This flavor is unused, and we have the more general SkStream API.

R=stephana@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154733003

Review-Url: https://codereview.chromium.org/2154733003
2016-07-18 10:56:43 -07:00
brianosman
54f30c13fc Introduce GrColorSpaceXform, for gamut conversion on textures
GrTextureAccess optionally includes an instance, computed from the src
and dst color spaces. In all common cases (no color space for either src
or dst, or same color space for both), no object is allocated.

This change is orthogonal to my attempts to get color space attached to
render targets - regardless of how we choose to do that, this will give
us the source color space at all points where we are connecting src to
dst.

There are many dangling injection points where I've been inserting
nullptr, but I have a record of all of them. Additionally, there are now
three places (the most common simple paths for bitmap/image rendering)
where things are plumbed enough that I expect to have access to the dst
color space (all marked with XFORMTODO).

In addition to getting the dst color space, I need to inject shader code
and uniform uploading for appendTextureLookup and friends.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154753003

Review-Url: https://codereview.chromium.org/2154753003
2016-07-18 10:53:52 -07:00
msarett
4ecb8ab556 Fix rewinding bug in SkJpegCodec
Performing a sampled and/or subset decode will create some state
in SkJpegCodec.  If we fail to clean up this state properly,
subsequent decodes may try to reuse (and potentailly overflow)
the leftover memory.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161593003

Review-Url: https://codereview.chromium.org/2161593003
2016-07-18 10:28:41 -07:00
caryclark
55888e4417 pathops coincidence and security rewrite
Most changes stem from working on an examples bracketed
by #if DEBUG_UNDER_DEVELOPMENT  // tiger
These exposed many problems with coincident curves,
as well as errors throughout the code.

Fixing these errors also fixed a number of fuzzer-inspired
bug reports.

* Line/Curve Intersections
Check to see if the end of the line nearly intersects
the curve. This was a FIXME in the old code.

* Performance
Use a central chunk allocator.
Plumb the allocator into the global variable state
so that it can be shared. (Note that 'SkGlobalState'
is allocated on the stack and is visible to children
functions but not other threads.)

* Refactor
Let SkOpAngle grow up from a structure to a class.
Let SkCoincidentSpans grow up from a structure to a class.
Rename enum Alias to AliasMatch.

* Coincidence Rewrite
Add more debugging to coincidence detection.
Parallel debugging routines have read-only logic to report
the current coincidence state so that steps through the
logic can expose whether things got better or worse.

More functions can error-out and cause the pathops
engine to non-destructively exit.

* Accuracy
Remove code that adjusted point locations. Instead,
offset the curve part so that sorted curves all use
the same origin.
Reduce the size (and influence) of magic numbers.

* Testing
The debug suite with verify and the full release suite
./out/Debug/pathops_unittest -v -V
./out/Release/pathops_unittest -v -V -x
expose one error. That error is captured as cubics_d3.
This error exists in the checked in code as well.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128633003

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128633003

Review-Url: https://codereview.chromium.org/2128633003
2016-07-18 10:01:36 -07:00
robertphillips
6451a0cea6 Add makeSpecial calls to SkGpuDevice
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161533003

Review-Url: https://codereview.chromium.org/2161533003
2016-07-18 08:31:31 -07:00
jcgregorio
eb9a84aa57 Revert of remove unused TableMaskFilter (patchset #1 id:1 of https://codereview.chromium.org/2156463002/ )
Reason for revert:
Needed for Android:

frameworks/base/core/jni/android/graphics/MaskFilter.cpp:5:10: fatal error: 'SkTableMaskFilter.h' file not found

Original issue's description:
> remove unused TableMaskFilter
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2156463002
>
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/59779ae8ce316bf8b8082ec2df1683ccd38161f1

TBR=reed@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:

Review-Url: https://codereview.chromium.org/2156183002
2016-07-18 08:18:51 -07:00
bsalomon
0ae36a2ceb In GrShape detect that stroked axis-aligned lines are rrects.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151313002

Review-Url: https://codereview.chromium.org/2151313002
2016-07-18 07:31:13 -07:00
kolczyk
cea22ae234 Guard SkMatrix::get*Scale[s]() against negative nearly-zero values.
BUG=skia:4718
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2143133005

Review-Url: https://codereview.chromium.org/2143133005
2016-07-16 11:52:37 -07:00
bungeman
280d537e28 Revert of Rotate emoji with FreeType. (patchset #5 id:80001 of https://codereview.chromium.org/2139703002/ )
Reason for revert:
Causing roll to fail on telemetry_perf_unittests (bencharks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:search:taobao (and baidu)) and browser_tests (FindInPageControllerTest.FindInPageSpecialURLS).

This is due to triggering the assert in copyFTBitmap

SkASSERT(dstMask.fBounds.width() == static_cast<int>(srcFTBitmap.width));

when called from inside the block guarded by

if (bitmapTransform.isIdentity())

Original issue's description:
> Rotate bitmap strikes with FreeType.
>
> BUG=skia:3490
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002
>
> Committed: https://skia.googlesource.com/skia/+/31e0c1379e6d0ce48196183e295b929af51fa74e

TBR=mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3490

Review-Url: https://codereview.chromium.org/2149253005
2016-07-15 18:49:42 -07:00
abarth
6fc8ff024b Add support for Fuchsia
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2152273002

[mtklein edit from here down]
No public API changes.
TBR=reed@google.com

Review-Url: https://codereview.chromium.org/2152273002
2016-07-15 15:15:15 -07:00
bungeman
31e0c1379e Rotate bitmap strikes with FreeType.
BUG=skia:3490
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002

Review-Url: https://codereview.chromium.org/2139703002
2016-07-15 14:55:35 -07:00
reed
7503d60847 move responsibility for creating raster-device into pdf
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146333004

NOTRY=True
win failure seems unrelated

Review-Url: https://codereview.chromium.org/2146333004
2016-07-15 14:23:30 -07:00
msarett
9ce3a543c9 Add capability for SkColorXform to output half floats
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147763002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2147763002
2016-07-15 13:54:38 -07:00
egdaniel
7ac5da8534 Dont allocate a new image which already has mip levels, when regenerating vulkan mipmaps
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146063008

Review-Url: https://codereview.chromium.org/2146063008
2016-07-15 13:41:42 -07:00
halcanary
eb92cb3e84 SkPdf: smaller color serialization
SkPDFUtils now has a special function (SkPDFUtils::AppendColorComponent)
just for writing out (color/255) as a decimal with three digits of
precision.

SkPDFUnion now has a type to represent a color component.  It holds a
utint_8, but calls into AppendColorComponent to serialize.

Added a unit test that tests all possible input values.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151863003

Review-Url: https://codereview.chromium.org/2151863003
2016-07-15 13:41:28 -07:00
halcanary
f0c30f5566 SkPDF: Join Positioned Text
When N sequential positioned glyphs differ in positions by exactly the
advances of the first (N-1) glyphs, join the glyphs into a string
rather than changing the text matrix between each glyph draw.

Decreases PDF output size by about ~1.4%.  Potentially more on
text-heavy pages.

A single-typeface PDF of an 27kB ASCII document shaped with harfbuzz:
        before:  187743 Bytes
         after:  65513 Bytes
    difference:  -65.1%

Before:
    BT
    /F0 13 Tf
    1 0 0 -1 143.5 61 Tm
    <0029> Tj
    1 0 0 -1 150.634765 61 Tm
    <004C> Tj
    1 0 0 -1 154.602050 61 Tm
    <0055> Tj
    1 0 0 -1 160.245117 61 Tm
    <0048> Tj
    1 0 0 -1 167.925781 61 Tm
    <004B> Tj
    1 0 0 -1 176.469726 61 Tm
    <0052> Tj
    1 0 0 -1 184.518554 61 Tm
    <0056> Tj
    1 0 0 -1 190.980468 61 Tm
    <0048> Tj
    ET

After:
    BT
    /F0 13 Tf
    1 0 0 -1 0 0 Tm
    143.5 -61 Td <0029004C0055> Tj
    16.7451171 0 Td <0048004B005200560048> Tj
    ET

Also: update the Text matrix with the `Td` operator, instead of
overwriting it with the the `Tm` operator.  In the worst case, when
every glyph is positioned differently than it's advance, this still
makes the command stream smaller:

Before:
    ...
    1 0 0 -1 58.328125 660 Tm <0055> Tj
    1 0 0 -1 61.609375 660 Tm <004C> Tj
    1 0 0 -1 63.828125 660 Tm <0056> Tj
    ...

After:
    ...
    3.140625 0 Td <0055> Tj
    3.28125 0 Td <004C> Tj
    2.21875 0 Td <0056> Tj
    ...

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150393002

Review-Url: https://codereview.chromium.org/2150393002
2016-07-15 13:35:45 -07:00
halcanary
39f988eb41 SkPDF: Always give a default advance for glyphs.
Prior to this we assumed the default default was 0.  It is
actually 1000, according to the spec.

fixes BUG=skia:5321
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146403005

Review-Url: https://codereview.chromium.org/2146403005
2016-07-15 12:54:30 -07:00
robertphillips
04d62182fe Add copy (when needed) to SkGpuDevice::asSpecial
split out of https://codereview.chromium.org/2145343005/ (Recast draw_filter_into_device as drawDevice)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157513002

Review-Url: https://codereview.chromium.org/2157513002
2016-07-15 12:21:33 -07:00
msarett
18895dbb21 SkColorSpace::NewICC() warn instead of fail on bad input
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2093193002

Review-Url: https://codereview.chromium.org/2093193002
2016-07-15 10:47:19 -07:00
reed
cd4051e1c4 remove unused CreateInfo flag
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2153173002

NOTRY=True

Review-Url: https://codereview.chromium.org/2153173002
2016-07-15 09:41:27 -07:00
robertphillips
1b5f968103 Add SkGpuDevice::asSpecial entry point
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151033003

Review-Url: https://codereview.chromium.org/2151033003
2016-07-15 08:01:12 -07:00
mtklein
036e1831e0 Add a bench to measure the best way to pack from int to uint16_t with SSE.
I measured relative runtimes on my laptop:

   pack_int_uint16_t_ss…
   1036  …e41 1x  …se3 1.01x  …e2_b 3.01x  …e2_a 3.02x

I've run into Clang problems with the actual _mm_packus_epi32 instruction, I think,
so I'm going to exercise a little cowardice and leave that option disabled for now.

The ssse3 version probably looks a little faster than it will be in practice.
We'll usually need to load its mask, which here is hoisted out of the bench loop.

The two sse2 variants are close enough in speed that I'm tie breaking them on other
concerns: the <<16, >>16 version doesn't need any scratch registers or to load any
constants, so it wins.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150343002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot

Review-Url: https://codereview.chromium.org/2150343002
2016-07-15 07:45:53 -07:00
mtklein
58e389b051 Expand _01 half<->float limitation to _finite. Simplify.
It's become clear we need to sometimes deal with values <0 or >1.
    I'm not yet convinced we care about NaN or +-inf.

    We had some fairly clever tricks and optimizations here for NEON
    and SSE.  I've thrown them out in favor of a single implementation.
    If we find the specializations mattered, we can certainly figure out
    how to extend them to this new range/domain.

    This happens to add a vectorized float -> half for ARMv7, which was
    missing from the _01 version.  (The SSE strategy was not portable to
    platforms that flush denorm floats to zero.)

    I've tested the full float range for FloatToHalf on my desktop and a 5x.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145663003
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot

Committed: https://skia.googlesource.com/skia/+/3296bee70d074bb8094b3229dbe12fa016657e90
Review-Url: https://codereview.chromium.org/2145663003
2016-07-15 07:00:11 -07:00
brianosman
428036621e Add getColorSpace to GrTextureProducer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150113002

Review-Url: https://codereview.chromium.org/2150113002
2016-07-15 06:59:48 -07:00
fmalita
7445e86bac Dust-off SkXMLParser
Hook up SkXMLParser to Expat, such that it can actually parse, err,
XML.

Add a trivial unit test.

R=robertphillips@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142893006

Review-Url: https://codereview.chromium.org/2142893006
2016-07-14 19:14:06 -07:00
reed
59779ae8ce remove unused TableMaskFilter
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2156463002

TBR=

Review-Url: https://codereview.chromium.org/2156463002
2016-07-14 19:13:20 -07:00
herb
494c2b6fa1 Fix a bug in the Clamp in X direction tiling.
The code mixed up which end of the span was cut and preserved in the
sequence of span breaks.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145193002

Review-Url: https://codereview.chromium.org/2145193002
2016-07-14 14:50:48 -07:00
robertphillips
970587bf0e Remove GrWrapTextureInBitmap call in SkGpuDevice::drawSpriteWithFilter
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146223003

Review-Url: https://codereview.chromium.org/2146223003
2016-07-14 14:12:55 -07:00
mtklein
64bbad360f Revert of Expand _01 half<->float limitation to _finite. Simplify. (patchset #7 id:120001 of https://codereview.chromium.org/2145663003/ )
Reason for revert:
Unit tests fail on Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast

Original issue's description:
> Expand _01 half<->float limitation to _finite.  Simplify.
>
>     It's become clear we need to sometimes deal with values <0 or >1.
>     I'm not yet convinced we care about NaN or +-inf.
>
>     We had some fairly clever tricks and optimizations here for NEON
>     and SSE.  I've thrown them out in favor of a single implementation.
>     If we find the specializations mattered, we can certainly figure out
>     how to extend them to this new range/domain.
>
>     This happens to add a vectorized float -> half for ARMv7, which was
>     missing from the _01 version.  (The SSE strategy was not portable to
>     platforms that flush denorm floats to zero.)
>
>     I've tested the full float range for FloatToHalf on my desktop and a 5x.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145663003
> CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/3296bee70d074bb8094b3229dbe12fa016657e90

TBR=msarett@google.com,mtklein@chromium.org
# 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/2151023003
2016-07-14 12:03:04 -07:00
mtklein
3296bee70d Expand _01 half<->float limitation to _finite. Simplify.
It's become clear we need to sometimes deal with values <0 or >1.
    I'm not yet convinced we care about NaN or +-inf.

    We had some fairly clever tricks and optimizations here for NEON
    and SSE.  I've thrown them out in favor of a single implementation.
    If we find the specializations mattered, we can certainly figure out
    how to extend them to this new range/domain.

    This happens to add a vectorized float -> half for ARMv7, which was
    missing from the _01 version.  (The SSE strategy was not portable to
    platforms that flush denorm floats to zero.)

    I've tested the full float range for FloatToHalf on my desktop and a 5x.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145663003
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2145663003
2016-07-14 11:02:09 -07:00
bsalomon
1433c676d2 Remove SkGrTexturePixelRef and SkGrRenderTargetPixelRef aliases for SkGrPixelRef
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151873002

Review-Url: https://codereview.chromium.org/2151873002
2016-07-14 07:53:30 -07:00
bsalomon
67c6c8e229 Fix leak when DFPR fails to draw path
TBR=jvanverth@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2144283002

Review-Url: https://codereview.chromium.org/2144283002
2016-07-14 07:22:19 -07:00
mtklein
abda35d2b7 GrBufferAllocPool: use _throw calloc() if unchecked.
Looks like this code is using sk_calloc(), NULL on failure, accidentally
instead of sk_calloc_throw().  We're using sk_malloc_throw() in the parallel
code path, so it really seems like we're not checking the result pointer.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2152753002

Review-Url: https://codereview.chromium.org/2152753002
2016-07-14 06:57:31 -07:00
bsalomon
614d8f9a3c Remove GrWrapTextureInBitmap from public API
BUG=skia:5531
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147053002

Review-Url: https://codereview.chromium.org/2147053002
2016-07-13 15:42:40 -07:00
bsalomon
6d6b6ad0f3 Make GrBatchAtlas robust against attempts to add large rects.
Make GrAADistanceFieldPathRenderer robust against paths that in src space wind up being too large for the atlas.

BUG=chromium:627443
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2144663004

Review-Url: https://codereview.chromium.org/2144663004
2016-07-13 14:45:28 -07:00
egdaniel
50ead53ac9 Update RT views and framebuffer in vulkan after mipmaping
I've also changed it so all attachment views (texture, color, and resolve) are created separately and not shared with each other. This just added a lot more complexity than we were probably even saving in time.

A quick fix to make sure we don't reuse keys in resource tracking also
got merged into this change.

BUG=skia:5223
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146103002

Review-Url: https://codereview.chromium.org/2146103002
2016-07-13 14:23:26 -07:00
egdaniel
990dbc8879 Add Texture2D and Sampler GrSLTypes
These two new types are in support of Vulkan and the ability to send
separate texture and sampler uniforms to the shader. They don't really fit
well in the current system, since the current system ties together to idea
of intended use and how to emit shader code into the same GrSLType enum.

In vulkan, I want the GrGLSLSampler object to be used as a Sampler2D, but
when appending its declaration it will emit a Texture2D and sampler object.

Our query for GrSLTypeIsSamplerType refers more to the combination of texture
and sampler and not just the sampler part. The GrSLTypeIs2DTextureType query
is for is a a SamplerType that uses Texture2Ds. My new types don't really fit
into either these categories as they are just half of the whole.

In some refactoring down the road (possibly connected with SkSL), I suggest we
split apart the concept of how we intend to use a GrGLSLSampler (Sampler2D, SamplerBuffer,
etc.), from how we actually add it to the code (sampler, texture2D, sampler2D, etc.).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2143143002

Review-Url: https://codereview.chromium.org/2143143002
2016-07-13 14:09:31 -07:00
vjiaoblack
e5de130788 Added the framework for having canvas/recorder/picture record depth_set's.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2127233002

Committed: https://skia.googlesource.com/skia/+/6d3fb898d5f73a82e36f11c712a633c3921ed518
Committed: https://skia.googlesource.com/skia/+/1185d90c785f743364cc9113d7007a59af07470c
Review-Url: https://codereview.chromium.org/2127233002
2016-07-13 14:05:28 -07:00
reed
9f01276464 move GrPixelRef headers to private (as we work to eliminate them)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150693002

Review-Url: https://codereview.chromium.org/2150693002
2016-07-13 13:43:49 -07:00
csmartdalton
97f6cd5d0f Pre-crop filled rects to avoid scissor
Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.

In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002

Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
Committed: https://skia.googlesource.com/skia/+/86de59f4a99b5f54be0483c60ff0335be55b2bdf
Review-Url: https://codereview.chromium.org/2132073002
2016-07-13 13:37:08 -07:00
mtklein
05c73b7ed5 Remove bulk float <-> half routines. These are dead code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2152583002

Review-Url: https://codereview.chromium.org/2152583002
2016-07-13 13:30:49 -07:00
robertphillips
dda54455a2 Remove GrLayerHoister
This relies on https://codereview.chromium.org/1944013002/ (Add legacy flag to allow Skia to remove Ganesh layer hoister) landing first so as to not break the DEPS roll.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1950523002

Review-Url: https://codereview.chromium.org/1950523002
2016-07-13 13:27:16 -07:00
msarett
e92badc3ff Revert of SkSL performance improvements (patchset #6 id:140001 of https://codereview.chromium.org/2131223002/ )
Reason for revert:
Valgrind bot failures

https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind/builds/1224/steps/test_skia%20on%20Ubuntu/logs/stdio

Original issue's description:
> SkSL performance improvements (plus a couple of minor warning fixes)
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131223002
>
> Committed: https://skia.googlesource.com/skia/+/9fd67a1f53809f5eff1210dd107241b450c48acc

TBR=benjaminwagner@google.com,egdaniel@google.com,ethannicholas@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.chromium.org/2143323003
2016-07-13 13:18:40 -07:00
reed
77d6f7d018 use gpu-image instead of wrapping in a bitmap for specialimage
BUG=skia:5531
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147023002

Review-Url: https://codereview.chromium.org/2147023002
2016-07-13 12:24:48 -07:00
reed
b1b12f8666 handle large conic weights
BUG=627414
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142393003

Review-Url: https://codereview.chromium.org/2142393003
2016-07-13 10:56:53 -07:00
senorblanco
99f942e550 Fix vertex count estimate in GrTessellator.
When we start a new MonotonePoly due to a handedness change, we don't need to
increase the vertex count, since that edge (and vertex) has already been
accounted for in the previous MonotonePoly.

This was not a correctness issue, but was causing us to allocate
extra vertices which would go unused.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146063002

Review-Url: https://codereview.chromium.org/2146063002
2016-07-13 10:40:43 -07:00
csmartdalton
485a12003a Add resource provider flag to avoid client-side buffers
On some platforms, a newly-created buffer was liable to be CPU backed.
This would break code that expected a VBO (aka instanced rendering).
This change adds an optional flag to GrResourceProvider that requires
a buffer to be created in GPU memory.

It also moves the CPU backing logic into Gr land in order to properly
cache real VBOs on platforms that prefer client-side buffers.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2143333002

Review-Url: https://codereview.chromium.org/2143333002
2016-07-13 10:16:32 -07:00
robertphillips
59cf61ab03 Retract PipelineBuilder from GrClip::apply
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147443004

Review-Url: https://codereview.chromium.org/2147443004
2016-07-13 09:18:21 -07:00
brianosman
0e1161d03f Never allow dither for non-legacy (sRGB or F16) targets.
With sRGB, the noise from dithering is (obviously) non-linear, and
highly objectionable for very dark values. With F16, it's completely
unnecessary.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2113793002

Review-Url: https://codereview.chromium.org/2113793002
2016-07-13 09:05:47 -07:00
mtklein
6e998e6137 Revert "Added the framework for having canvas/recorder/picture record depth_set's."
1-click revert failed again.
This reverts commit 1185d90c78.

BUG=skia:

TBR=
NOTRY=true

Review-Url: https://codereview.chromium.org/2147963002
2016-07-13 09:03:48 -07:00
csmartdalton
dd57dd7968 Fix various issues with instanced rendering precision
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2148633003

Review-Url: https://codereview.chromium.org/2148633003
2016-07-13 08:59:52 -07:00
csmartdalton
0caee1778d Replace switch statements in instanced vertex shaders
Replaces switch statements with 3-way if’s. The switches as they were
seemed to be the cause of an Adreno compiler crash.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2136103011

Review-Url: https://codereview.chromium.org/2136103011
2016-07-13 08:48:53 -07:00
csmartdalton
b3772dcb30 Fix GL shader sources getting truncated by ADB log
Prints the shaders one line at a time so they don't get truncated by
the ADB log.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142223003

Review-Url: https://codereview.chromium.org/2142223003
2016-07-13 08:47:54 -07:00
vjiaoblack
1185d90c78 Added the framework for having canvas/recorder/picture record depth_set's.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2127233002

Committed: https://skia.googlesource.com/skia/+/6d3fb898d5f73a82e36f11c712a633c3921ed518
Review-Url: https://codereview.chromium.org/2127233002
2016-07-13 08:35:41 -07:00
mtklein
0abddf7bb7 SkRasterPipeline: simplify impl and remove need to rewire stages
This builds the stages correctly wired from the get-go.  With a little clever
setup, we can also design around the previous error cases like having no stages
or pipelines that call st->next() off the end.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2149443002

Review-Url: https://codereview.chromium.org/2149443002
2016-07-13 08:22:20 -07:00
mtklein
0358a6ac00 Update SkOpts namespaces.
If we make sure all SkOpts functions are static, we can give the namespaces any
name we like.  This lets us drop the sk_ prefix and give a real indication of
the default SIMD instruction set rather than just saying sk_default.

Both of these changes help debugger, profiler, and crash report readability.
Perhaps more importantly, keeping these functions static helps prevent
accidentally linking in unused versions of functions, as you see here with
sk_avx::srcover_srgb_srgb().

This requires we update SkBlend_opts tests and benches to call SkOpts functions
through SkOpts rather than declaring the methods externally.  In practice this
drops testing of the SSE2 version on machines with SSE4.  If we still really
need to test/bench the compile time best SIMD level version of this method
against the runtime detected best, we can include SkBlend_opts.h into the tests
or benches directly, similar to what we do for the trivial, brute-force, or best
non-SIMD versions.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145833002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2145833002
2016-07-13 08:02:20 -07:00
robertphillips
9199a9fef9 Move GrDrawTarget::clear logic into GrDrawContext
I found it a bit worrisome that GrDrawTarget was calling back into GrDrawContext. This also moves GrDrawTarget closer to being a simple-ish container of batches.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2145643003

Review-Url: https://codereview.chromium.org/2145643003
2016-07-13 07:48:43 -07:00
bungeman
e3aea10428 Remove user specified typeface id.
Now that there may be multiple font managers in a process the typeface
ids must be unique across all typefaces, not just unique within a font
manager. If two typefaces have the same id there will be issues in the
glyph cache. All existing font managers were already doing this by
calling SkFontCache::NewFontID, so centralize this in SkTypeface.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147733002

Review-Url: https://codereview.chromium.org/2147733002
2016-07-13 05:16:58 -07:00
msarett
ba3880fa6d Revert of Pre-crop filled rects to avoid scissor (patchset #6 id:100001 of https://codereview.chromium.org/2132073002/ )
Reason for revert:
I think this is still causing a test failure on Chrome windows bots.

https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/243928/steps/cc_unittests%20%28with%20patch%29%20on%20Windows-7-SP1/logs/stdio

Original issue's description:
> Pre-crop filled rects to avoid scissor
>
> Updates GrDrawContext to crop filled rects to the clip bounds before
> creating batches for them. Also adds clipping logic to ignore scissor
> when the draw falls completely inside. These two changes combined
> reduce API traffic and improve batching.
>
> In the future this can and should be improved by switching to floating
> point clip boundaries, thus allowing us to throw out non pixel aligned
> rectangle clips as well.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
>
> Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
> Committed: https://skia.googlesource.com/skia/+/86de59f4a99b5f54be0483c60ff0335be55b2bdf

TBR=bsalomon@google.com,robertphillips@google.com,csmartdalton@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/2140253004
2016-07-12 18:48:21 -07:00
bsalomon
634b430080 Add a function to convert a texture backed SkImage to raster.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147493004

Review-Url: https://codereview.chromium.org/2147493004
2016-07-12 18:11:17 -07:00
mtklein
e504dbc092 Revert "Added the framework for having canvas/recorder/picture record depth_set's."
1-click revert failed.
This reverts commit 6d3fb898d5.

TBR=

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2148543002

Review-Url: https://codereview.chromium.org/2148543002
2016-07-12 15:41:08 -07:00
mtklein
281b33fdd9 SkRasterPipeline preliminaries
Re-uploading to see if I can get a CL number < 2^31.
    patch from issue 2147533002 at patchset 240001 (http://crrev.com/2147533002#ps240001)

Already reviewed at the other crrev link.
TBR=

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147533002
CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2144573004
2016-07-12 15:01:26 -07:00
bungeman
7438bfc080 Factor code to rotate a canvas about a point.
SkMatrix::scale and ::rotate take a point around which to scale or rotate.
Canvas lacks these helpers, so the code to rotate a canvas around a
point has been duplicated many times. Factor all of these
implementations into SkCanvas::rotate.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142033002

Review-Url: https://codereview.chromium.org/2142033002
2016-07-12 15:01:19 -07:00
herb
2edf0c6a71 Remove bloat from SkBlend_opts.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130183003
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2130183003
2016-07-12 15:00:46 -07:00
msarett
7d3ff71423 Add Sk4f_RoundToInt
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2134753006
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2134753006
2016-07-12 14:55:45 -07:00
vjiaoblack
6d3fb898d5 Added the framework for having canvas/recorder/picture record depth_set's.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2127233002

Review-Url: https://codereview.chromium.org/2127233002
2016-07-12 14:50:41 -07:00
csmartdalton
86de59f4a9 Pre-crop filled rects to avoid scissor
Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.

In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002

Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
Review-Url: https://codereview.chromium.org/2132073002
2016-07-12 14:45:23 -07:00
fmenozzi
7f2c85e66b Add hard stop count
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2141733002

Review-Url: https://codereview.chromium.org/2141733002
2016-07-12 09:17:39 -07:00
reed
1264472c06 remove unused parameter to make android happy (when this header is moved to private)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139333002

Review-Url: https://codereview.chromium.org/2139333002
2016-07-12 09:12:30 -07:00
ethannicholas
9fd67a1f53 SkSL performance improvements (plus a couple of minor warning fixes)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131223002

Review-Url: https://codereview.chromium.org/2131223002
2016-07-12 09:07:21 -07:00
msarett
aeadcdfbf2 Revert of Pre-crop filled rects to avoid scissor (patchset #6 id:100001 of https://codereview.chromium.org/2132073002/ )
Reason for revert:
I believe that this is breaking the roll.

https://codereview.chromium.org/2141923002

https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/258434/steps/cc_unittests%20%28with%20patch%29%20on%20Mac-10.9/logs/stdio

Original issue's description:
> Pre-crop filled rects to avoid scissor
>
> Updates GrDrawContext to crop filled rects to the clip bounds before
> creating batches for them. Also adds clipping logic to ignore scissor
> when the draw falls completely inside. These two changes combined
> reduce API traffic and improve batching.
>
> In the future this can and should be improved by switching to floating
> point clip boundaries, thus allowing us to throw out non pixel aligned
> rectangle clips as well.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
>
> Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a

TBR=bsalomon@google.com,robertphillips@google.com,csmartdalton@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/2145573002
2016-07-12 05:40:39 -07:00