Commit Graph

23195 Commits

Author SHA1 Message Date
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
fmenozzi
d876a4b549 Add bounds info
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2159853003

Review-Url: https://codereview.chromium.org/2159853003
2016-07-18 13:33:37 -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
caryclark
034f243c6d disable test that fails to compute bounds on nexus 5
TBR=jcgregario@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2160713003

Review-Url: https://codereview.chromium.org/2160713003
2016-07-18 12:13:23 -07:00
caryclark
c6b842b76b disable new test since it fails on skia_fast
TBR=jcgregario@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155243002

Review-Url: https://codereview.chromium.org/2155243002
2016-07-18 11:28:44 -07:00
mtklein
b435963a01 Tweak a couple things I found confusing in ColorSpaceXform unit tests.
No coverage changes... just refactoring.

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

Review-Url: https://codereview.chromium.org/2158033002
2016-07-18 11:16:14 -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
borenet
baaea531c2 Convert SK Images to new assets format
Depends on https://codereview.chromium.org/2162563002/

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

Review-Url: https://codereview.chromium.org/2155163002
2016-07-18 10:36:43 -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
bsalomon
0b300498b1 Initialize fGammaCorrect in DF Path Renderer unit test
TBR=jvanverth@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157933003

Review-Url: https://codereview.chromium.org/2157933003
2016-07-18 10:09: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
fmenozzi
f023e6879c Add filename to gradient scrape
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2160583002

Review-Url: https://codereview.chromium.org/2160583002
2016-07-18 08:20:06 -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
msarett
490c07d776 Test auto merger
TBR=djsollen@google.com
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2158793004

Review-Url: https://codereview.chromium.org/2158793004
2016-07-18 07:21:44 -07:00
update-skps
eaf6d41022 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157823002

Review-Url: https://codereview.chromium.org/2157823002
2016-07-17 01:02:55 -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
80d46ccb28 Speculatively fix Android automerger
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155713004

Review-Url: https://codereview.chromium.org/2155713004
2016-07-15 14:18:49 -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
djsollen
ec58b86437 Fix broken Android framework build.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2153953002

Review-Url: https://codereview.chromium.org/2153953002
2016-07-15 12:52:34 -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
benjaminwagner
921e48bf23 Exclude XML and dependencies from Bazel build.
Depends on https://codereview.chromium.org/2150353002

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

Review-Url: https://codereview.chromium.org/2147303004
2016-07-15 11:27:27 -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
fmalita
718df0ae3c Make XML compilation conditional.
Only enabled for gyp-based builds at this time.

R=dogben@google.com,mtklein@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150353002

Review-Url: https://codereview.chromium.org/2150353002
2016-07-15 10:33:29 -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
borenet
f1120ea72c Convert Win toolchain to CIPD package
BUG=skia:5427
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111713003

Review-Url: https://codereview.chromium.org/2111713003
2016-07-15 08:34:08 -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
mtklein
6e21efd842 Probably no need for GM self-tests now that GM doesn't exist.
This is... belated.

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

Review-Url: https://codereview.chromium.org/2154603002
2016-07-14 19:39:38 -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
fmalita
771a190a00 Build Expat on all platforms
* bump version to @android-6.0.1_r55 (2.1.1)

* add as a dependency to the 'xml' target (for upcoming http://crrev.com/2142893006)

* tweak build for Mac, Win:

  - define HAVE_EXPAT_CONFIG_H (same as in Android.mk)
  - use -Wno-missing-field-initializers (same as in Android.mk)
  - suppress MSVS warning 4244 (same as ..cmake/Utilities/cmexpat/expatConfig.h.in)

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

Review-Url: https://codereview.chromium.org/2150603004
2016-07-14 14:02:24 -07:00