platform/upstream/libSkiaSharp.git
9 years agoImplement four more xfermodes with Sk4px.
mtklein [Wed, 24 Jun 2015 22:18:39 +0000 (15:18 -0700)]
Implement four more xfermodes with Sk4px.

HardLight, Overlay, Darken, and Lighten are all
~2x faster with SSE, ~25% faster with NEON.

This covers all previously-implemented NEON xfermodes.
3 previous SSE xfermodes remain.  Those need division
and sqrt, so I'm planning on using SkPMFloat for them.
It'll help the readability and NEON speed if I move that
into [0,1] space first.

The main new concept here is c.thenElse(t,e), which behaves like
(c ? t : e) except, of course, both t and e are evaluated.  This allows
us to emulate conditionals with vectors.

This also removes the concept of SkNb.  Instead of a standalone bool
vector, each SkNi or SkNf will just return their own types for
comparisons.  Turns out to be a lot more manageable this way.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot

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

9 years agoRevert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://coder...
mtklein [Wed, 24 Jun 2015 22:14:48 +0000 (15:14 -0700)]
Revert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://codereview.chromium.org/1180983002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-MipsDSP2-Debug-Android/builds/1136/steps/build%20most/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoAdd libjpeg-turbo library (depends on yasm)
msarett [Wed, 24 Jun 2015 22:10:25 +0000 (15:10 -0700)]
Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

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

9 years agoRevert of remove workaround for dx9 angle slow rgba pixel ops (patchset #1 id:1 of...
bsalomon [Wed, 24 Jun 2015 22:04:13 +0000 (15:04 -0700)]
Revert of remove workaround for dx9 angle slow rgba pixel ops (patchset #1 id:1 of https://codereview.chromium.org/1207003002/)

Reason for revert:
users are still on dx9 angle :(

Original issue's description:
> remove workaround for dx9 angle slow rgba pixel ops
>
> TBR=robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/1e1adc33ba1acb9a2ad41c0a5a9b6166ee9d7a2a

TBR=robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

9 years agoAdd a 64-bit ARM builder to the CQ.
mtklein [Wed, 24 Jun 2015 21:52:24 +0000 (14:52 -0700)]
Add a 64-bit ARM builder to the CQ.

It's possible this rarely breaks, but I do write ARMv8 code frequently
enough that it'll help prevent broken trees.

BUG=skia:

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

9 years agoRevert of Implement four more xfermodes with Sk4px. (patchset #16 id:290001 of https...
mtklein [Wed, 24 Jun 2015 21:30:43 +0000 (14:30 -0700)]
Revert of Implement four more xfermodes with Sk4px. (patchset #16 id:290001 of https://codereview.chromium.org/1196713004/)

Reason for revert:
64-bit ARM build failures.

Original issue's description:
> Implement four more xfermodes with Sk4px.
>
> HardLight, Overlay, Darken, and Lighten are all
> ~2x faster with SSE, ~25% faster with NEON.
>
> This covers all previously-implemented NEON xfermodes.
> 3 previous SSE xfermodes remain.  Those need division
> and sqrt, so I'm planning on using SkPMFloat for them.
> It'll help the readability and NEON speed if I move that
> into [0,1] space first.
>
> The main new concept here is c.thenElse(t,e), which behaves like
> (c ? t : e) except, of course, both t and e are evaluated.  This allows
> us to emulate conditionals with vectors.
>
> This also removes the concept of SkNb.  Instead of a standalone bool
> vector, each SkNi or SkNf will just return their own types for
> comparisons.  Turns out to be a lot more manageable this way.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc

TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoImplement four more xfermodes with Sk4px.
mtklein [Wed, 24 Jun 2015 21:27:35 +0000 (14:27 -0700)]
Implement four more xfermodes with Sk4px.

HardLight, Overlay, Darken, and Lighten are all
~2x faster with SSE, ~25% faster with NEON.

This covers all previously-implemented NEON xfermodes.
3 previous SSE xfermodes remain.  Those need division
and sqrt, so I'm planning on using SkPMFloat for them.
It'll help the readability and NEON speed if I move that
into [0,1] space first.

The main new concept here is c.thenElse(t,e), which behaves like
(c ? t : e) except, of course, both t and e are evaluated.  This allows
us to emulate conditionals with vectors.

This also removes the concept of SkNb.  Instead of a standalone bool
vector, each SkNi or SkNf will just return their own types for
comparisons.  Turns out to be a lot more manageable this way.

BUG=skia:

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

9 years agoremove workaround for dx9 angle slow rgba pixel ops
bsalomon [Wed, 24 Jun 2015 20:22:50 +0000 (13:22 -0700)]
remove workaround for dx9 angle slow rgba pixel ops

TBR=robertphillips@google.com

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

9 years agoClarify iOS flush-to-zero status.
bungeman [Wed, 24 Jun 2015 20:08:51 +0000 (13:08 -0700)]
Clarify iOS flush-to-zero status.

Modern processors support flush-to-zero and denormalized-are-zero
for floating point operations (with ARM NEON unable to disable them).
However, iOS on ARM is the only current system which defaults
processes to using both all the time. However, this is only iOS on
ARM, iOS on x86 (the simulator) does not. Correctly defining this
allows the math tests to run error free in the simulator.

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

9 years agoCleanup: Comment and ordering changes.
herb [Wed, 24 Jun 2015 20:06:21 +0000 (13:06 -0700)]
Cleanup: Comment and ordering changes.
This should be a whitespace only change.
BUG=skia:

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

9 years agoAdd default for GrGLSLCaps::fGLSLGeneration
jvanverth [Wed, 24 Jun 2015 18:07:07 +0000 (11:07 -0700)]
Add default for GrGLSLCaps::fGLSLGeneration

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

9 years agoadd SkCanvas::drawAtlas
reed [Wed, 24 Jun 2015 17:29:17 +0000 (10:29 -0700)]
add SkCanvas::drawAtlas

BUG=skia:

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

9 years agoFix debugger compilation
robertphillips [Wed, 24 Jun 2015 17:09:57 +0000 (10:09 -0700)]
Fix debugger compilation

TBR=bsalomon@google.com

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

9 years agoAlter shader code for soft light to avoid driver bug.
egdaniel [Wed, 24 Jun 2015 15:14:49 +0000 (08:14 -0700)]
Alter shader code for soft light to avoid driver bug.

On the n5 there seems to be an issue where negating a variable at the start
of an equation doesn't work. Moving the negated variable to a subtract at the
end works around the issue (as would multiplying by -1.0).

The main bug was caused by the -DaCub in the else if block, but I also
adjusted the else block to make sure the same issue doesn't appear there
at some later date.

BUG=chromium:502434

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

9 years agoRevert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://coderevi...
scroggo [Wed, 24 Jun 2015 15:05:52 +0000 (08:05 -0700)]
Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1200323005/)

Reason for revert:
Breaking the Android build.

Original issue's description:
> remove SK_SUPPORT_LEGACY_PATHOP_ENUMS
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/8bcc7a00febd737f7e82513bd5e4a697526626de

TBR=reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoMove GLSL-specific routines/classes to separate glsl directory
jvanverth [Wed, 24 Jun 2015 13:59:57 +0000 (06:59 -0700)]
Move GLSL-specific routines/classes to separate glsl directory

The purpose is to begin separating our GLSL-specific code from
our GL-specific code, so it can be used with the GL45 platform

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

9 years agoRefactor GrBufferAllocPools to use resource cache
robertphillips [Wed, 24 Jun 2015 13:54:10 +0000 (06:54 -0700)]
Refactor GrBufferAllocPools to use resource cache

Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a

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

9 years agoremove SK_SUPPORT_LEGACY_PATHOP_ENUMS
reed [Wed, 24 Jun 2015 05:05:19 +0000 (22:05 -0700)]
remove SK_SUPPORT_LEGACY_PATHOP_ENUMS

BUG=skia:
TBR=

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

9 years agoremove SK_SUPPORT_LEGACY_FILTERLEVEL_ENUM
reed [Wed, 24 Jun 2015 04:47:30 +0000 (21:47 -0700)]
remove SK_SUPPORT_LEGACY_FILTERLEVEL_ENUM

BUG=skia:
TBR=

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

9 years agoremove (legacy) NewFromData
reed [Wed, 24 Jun 2015 04:31:08 +0000 (21:31 -0700)]
remove (legacy) NewFromData

BUG=skia:
TBR=

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

9 years agoMake SkGpuDevice know its alpha type
bsalomon [Tue, 23 Jun 2015 21:38:48 +0000 (14:38 -0700)]
Make SkGpuDevice know its alpha type

Make SkImage_Gpu snapshots opaque if surface is opaque.

BUG=skia:3965

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

9 years agoadd more tests
reed [Tue, 23 Jun 2015 21:34:58 +0000 (14:34 -0700)]
add more tests

BUG=skia:
TBR=

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

9 years agoMake SkNSView's window accept mouseMoved events
bsalomon [Tue, 23 Jun 2015 21:03:47 +0000 (14:03 -0700)]
Make SkNSView's window accept mouseMoved events

TBR=reed@google.com

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

9 years agoRename SkFontConfigParser_android SkFontMgr_android_parser.
bungeman [Tue, 23 Jun 2015 20:25:46 +0000 (13:25 -0700)]
Rename SkFontConfigParser_android SkFontMgr_android_parser.

There are a number of files with 'FontConfig' in their names which
just have to do with font configuration, but nothing to do with
the FontConfig project or even with each other. This clarifies
that these files deal with parsing for the Android font manager.

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

9 years agoImplement SkGLContext swapBuffers with fence syncs
cdalton [Tue, 23 Jun 2015 20:23:44 +0000 (13:23 -0700)]
Implement SkGLContext swapBuffers with fence syncs

Improves the GPU measuring accuracy of nanobench by using fence syncs.
Fence syncs are very widely supported and available on almost every
platform.

NO_MERGE_BUILDS
BUG=skia:

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

9 years agoRevert of Refactor GrBufferAllocPools to use resource cache (patchset #15 id:280001...
robertphillips [Tue, 23 Jun 2015 19:36:12 +0000 (12:36 -0700)]
Revert of Refactor GrBufferAllocPools to use resource cache (patchset #15 id:280001 of https://codereview.chromium.org/1139753002/)

Reason for revert:
Will reland after Chromium branch

Original issue's description:
> Refactor GrBufferAllocPools to use resource cache
>
> Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a

TBR=bsalomon@google.com,joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

9 years agoremove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS
reed [Tue, 23 Jun 2015 19:10:27 +0000 (12:10 -0700)]
remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS

BUG=skia:

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

9 years agoRevert of SkPDF: Annotations are clipped by canvas clip stack. (patchset #2 id:20001...
halcanary [Tue, 23 Jun 2015 17:59:12 +0000 (10:59 -0700)]
Revert of SkPDF: Annotations are clipped by canvas clip stack. (patchset #2 id:20001 of https://codereview.chromium.org/1148263005/)

Reason for revert:
http://crbug.com/503541

Original issue's description:
> SkPDF: Annotations are clipped by canvas clip stack.
>
> Also, remove some SkPDFDevice functions.
>
> Will fix this GM: http://crrev.com/1159273003
>
> BUG=skia:3872
>
> Committed: https://skia.googlesource.com/skia/+/eee0e4e9d343d8b6c5ae2da7f17196f00d8859bc

TBR=tomhudson@google.com,reed@google.com
BUG=skia:3872
BUG=503541

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

9 years agoFix memory leak in simple-offsetimagefilter
robertphillips [Tue, 23 Jun 2015 16:28:52 +0000 (09:28 -0700)]
Fix memory leak in simple-offsetimagefilter

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

9 years agomore tests for offsetimagefilter
reed [Tue, 23 Jun 2015 15:29:20 +0000 (08:29 -0700)]
more tests for offsetimagefilter

BUG=skia:

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

9 years agoRefactor GrBufferAllocPools to use resource cache
robertphillips [Tue, 23 Jun 2015 15:23:08 +0000 (08:23 -0700)]
Refactor GrBufferAllocPools to use resource cache

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

9 years agoStop using the NVPR glyph loading functionality
kkinnunen [Tue, 23 Jun 2015 14:27:40 +0000 (07:27 -0700)]
Stop using the NVPR glyph loading functionality

Remove the NVPR glyph loading functionality. A bit risky feature.

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

9 years agoRename SkFontHost_none.cpp to SkFontMgr_empty_factory.
bungeman [Tue, 23 Jun 2015 14:18:21 +0000 (07:18 -0700)]
Rename SkFontHost_none.cpp to SkFontMgr_empty_factory.

When the current function was added in
https://skia.googlesource.com/skia/+/070da5edcb1c6e9b9507f06a5e2c270e1c1fd796%5E%21/#F3
the SkFontHost was still alive and well. Now that this file no
longer contains any SkFontHost related code, rename the file for
clarity and uniformity.

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

9 years agoadd autotuning to visualbench
joshualitt [Tue, 23 Jun 2015 14:10:59 +0000 (07:10 -0700)]
add autotuning to visualbench

BUG=skia:

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

9 years agoFix memory leak in SkPictureRecord
robertphillips [Tue, 23 Jun 2015 13:54:56 +0000 (06:54 -0700)]
Fix memory leak in SkPictureRecord

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

9 years agoFix indirect use of defined() directive
tomhudson [Tue, 23 Jun 2015 13:31:32 +0000 (06:31 -0700)]
Fix indirect use of defined() directive

BUG=432391
R=bsalomon,bungeman1

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

9 years agoPropagate SkSurfaceProps to more call sites
robertphillips [Tue, 23 Jun 2015 13:26:08 +0000 (06:26 -0700)]
Propagate SkSurfaceProps to more call sites

Start moving to a world where everyone provides surface properties.

Most notably this exposes a portion of SkSurfaceProps to the C API.

BUG=skia:3934

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

9 years agoTweak SkiaLab docs
borenet [Tue, 23 Jun 2015 13:05:01 +0000 (06:05 -0700)]
Tweak SkiaLab docs

BUG=skia:3850
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1203443003

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

9 years agoadd simple test for offsetimagefilter
reed [Tue, 23 Jun 2015 13:01:10 +0000 (06:01 -0700)]
add simple test for offsetimagefilter

BUG=skia:
TBR=

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

9 years agoadd break statement -- lost during rewrite earlier
reed [Tue, 23 Jun 2015 00:03:10 +0000 (17:03 -0700)]
add break statement -- lost during rewrite earlier

BUG=skia:
TBR=

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

9 years agochange old picture serialization to really handle images
reed [Mon, 22 Jun 2015 19:48:26 +0000 (12:48 -0700)]
change old picture serialization to really handle images

BUG=skia:3965

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

9 years agofix for calling bindFragDataLocation on OpenGL 2.1
joshualitt [Mon, 22 Jun 2015 19:31:31 +0000 (12:31 -0700)]
fix for calling bindFragDataLocation on OpenGL 2.1

BUG=skia:3966

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

9 years agoClean up usage of SkSurfaceProps
robertphillips [Mon, 22 Jun 2015 19:06:08 +0000 (12:06 -0700)]
Clean up usage of SkSurfaceProps

This CL continues cleaning up Skia's usage of SkSurfaceProps. It:

  Removes the duplicate SkSurfaceProps object from SkImageFilter::Proxy.

  Removes a dispreferred ctor from SkCanvas

  Removes the initForRootLayer entry point from SkDevice (since the root device and the canvas should always have the same pixel geometry now).

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

9 years agoUse vmulq_n_u32(..., 0x01010101) to distribute alphas.
mtklein [Mon, 22 Jun 2015 18:00:47 +0000 (11:00 -0700)]
Use vmulq_n_u32(..., 0x01010101) to distribute alphas.

This seems to make alphas() faster and Load[24]Alphas() no slower.
The change is particularly noticeable on xfermodes that call alphas()
twice (on src and dst), with a 10-12% speedup.

Xfermode_Difference_aa   29ms -> 28.4ms 0.98x
   Xfermode_DstATop_aa 27.2ms -> 26.7ms 0.98x
       Xfermode_Xor_aa 27.2ms -> 26.5ms 0.98x
      Xfermode_DstOver 23.6ms -> 22.9ms 0.97x
   Xfermode_DstOver_aa 27.8ms -> 26.8ms 0.96x
       Xfermode_DstOut 22.6ms -> 21.7ms 0.96x
  Xfermode_Multiply_aa   30ms -> 28.5ms 0.95x
    Xfermode_DstOut_aa 26.1ms -> 24.8ms 0.95x
     Xfermode_DstIn_aa 25.4ms -> 24.1ms 0.95x
      Xfermode_DstATop 28.7ms ->   26ms 0.9x
     Xfermode_Multiply 35.5ms -> 31.3ms 0.88x
   Xfermode_Difference 31.8ms -> 27.7ms 0.87x
          Xfermode_Xor 30.1ms -> 26.1ms 0.87x
BUG=skia:

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

9 years agofix spurious init on VisualBench startup
joshualitt [Mon, 22 Jun 2015 17:44:46 +0000 (10:44 -0700)]
fix spurious init on VisualBench startup

BUG=skia:

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

9 years agoImplemented onGetScanlines and onSkipScanlines for interlaced pngs
emmaleer [Mon, 22 Jun 2015 17:40:21 +0000 (10:40 -0700)]
Implemented onGetScanlines and onSkipScanlines for interlaced pngs

Modified DM tests to be faster when decoding interlaced pngs

BUG=skia:

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

9 years agoUpdate some Sk4px APIs.
mtklein [Mon, 22 Jun 2015 17:39:38 +0000 (10:39 -0700)]
Update some Sk4px APIs.

Mostly this is about ergonomics, making it easier to do good operations and hard / impossible to do bad ones.

- SkAlpha / SkPMColor constructors become static factories.
- Remove div255TruncNarrow(), rename div255RoundNarrow() to div255().  In practice we always want to round, and the narrowing to 8-bit is contextually obvious.
- Rename fastMulDiv255Round() approxMulDiv255() to stress it's approximate-ness over its speed.  Drop Round for the same reason as above... we should always round.
- Add operator overloads so we don't have to keep throwing in seemingly-random Sk4px() or Sk4px::Wide() casts.
- use operator*() for 8-bit x 8-bit -> 16-bit math.  It's always what we want, and there's generally no 8x8->8 alternative.
- MapFoo can take a const Func&.  Don't think it makes a big difference, but nice to do.

BUG=skia:

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

9 years agoBegin kLegacyFontHost_InitType cleanup
robertphillips [Mon, 22 Jun 2015 16:46:59 +0000 (09:46 -0700)]
Begin kLegacyFontHost_InitType cleanup

This CL starts the process of pushing kLegacyFontHost_InitType-type SkSurfaceProps up the call stack and out of Skia. It:

 Gets rid of the default SkBaseDevice ctor. This means everyone has to always hand an explicit SkSurfaceProps to it.

 It makes public the SkBitmapDevice creation methods that require SkSurfaceProps.

 Removes (in Skia's code base) all SkBitmapDevice ctor calls w/o SkSurfaceProps.

 Makes the "recording" canvases (e.g., pdf, svg, xps) explicitly not use kLegacyFontHost_InitType.

 Replicates the creating canvas/device's flags on saveLayer devices

BUG=skia:3934

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

9 years agoclean offsetimagefilter gm
reed [Mon, 22 Jun 2015 16:10:14 +0000 (09:10 -0700)]
clean offsetimagefilter gm

BUG=skia:
TBR=robertphilips

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

9 years agoChange large glyph check back to > threshold.
jvanverth [Mon, 22 Jun 2015 15:08:09 +0000 (08:08 -0700)]
Change large glyph check back to > threshold.

Using >= misses some Chromium test cases that are still
being rendered as paths.

BUG=chromium:467569

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

9 years agoRemove distance field flag from SkPaint
jvanverth [Mon, 22 Jun 2015 13:46:56 +0000 (06:46 -0700)]
Remove distance field flag from SkPaint

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

9 years agoFixup android launch script to launch VisualBench as well as SampleApp
joshualitt [Mon, 22 Jun 2015 12:39:32 +0000 (05:39 -0700)]
Fixup android launch script to launch VisualBench as well as SampleApp

BUG=skia:

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

9 years agoMake GrGLProgramDataManager not refcounted
kkinnunen [Mon, 22 Jun 2015 05:55:12 +0000 (22:55 -0700)]
Make GrGLProgramDataManager not refcounted

Make GrGLProgramDataManager not refcounted, refcounting is not used for
the instances.

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

9 years agoUpdate SKP version
skia.buildbots [Sun, 21 Jun 2015 07:17:25 +0000 (00:17 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

9 years agoremove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS (now in SkUserConfig.h)
reed [Sat, 20 Jun 2015 15:45:59 +0000 (08:45 -0700)]
remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS (now in SkUserConfig.h)

BUG=skia:
TBR=
NOTRY=True

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

9 years agoRename all things "leaky" in SkDevice
robertphillips [Fri, 19 Jun 2015 21:14:54 +0000 (14:14 -0700)]
Rename all things "leaky" in SkDevice

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

9 years agoFix for assert in VisualBench
joshualitt [Fri, 19 Jun 2015 19:46:33 +0000 (12:46 -0700)]
Fix for assert in VisualBench

BUG=skia:

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

9 years agoremove SkDeviceProperties
robertphillips [Fri, 19 Jun 2015 18:49:52 +0000 (11:49 -0700)]
remove SkDeviceProperties

There is a lot more clean up to do here but this is probably a big enough bite.

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

9 years agoSwitch to glyphs as paths at a higher point size on Android
jvanverth [Fri, 19 Jun 2015 18:06:28 +0000 (11:06 -0700)]
Switch to glyphs as paths at a higher point size on Android

The regression occurred when we dropped the maximum DF size from 192
to 162, which meant that any glyph > 324 ended up being rendered as paths
rather than the previous > 384. This pushes the threshold for
rendering paths up to 384. Quality looks fine on high-res devices
which is why this is restricted to Android-only (low-res Android devices
should only rarely have text that large).

BUG=chromium:467569

Committed: https://skia.googlesource.com/skia/+/932d413e69845989fadaecf5bcb8686ec8c05032

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

9 years agoMove rect_memcopy from helper to global static.
egdaniel [Fri, 19 Jun 2015 17:52:25 +0000 (10:52 -0700)]
Move rect_memcopy from helper to global static.

BUG=skia:

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

9 years agoDo not fail on images that are too small to subset decode.
msarett [Fri, 19 Jun 2015 14:44:05 +0000 (07:44 -0700)]
Do not fail on images that are too small to subset decode.

Specifically (0x0) images being produced by webp scaled
decodes are causing problems.

BUG=skia:

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

9 years agoPrevent webp from producing 0 dimensional images
msarett [Fri, 19 Jun 2015 14:34:30 +0000 (07:34 -0700)]
Prevent webp from producing 0 dimensional images

BUG=skia:

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

9 years agoRevert of Disable failing GPU tests on Nexus 6. (patchset #1 id:1 of https://coderevi...
joshualitt [Fri, 19 Jun 2015 14:28:15 +0000 (07:28 -0700)]
Revert of Disable failing GPU tests on Nexus 6. (patchset #1 id:1 of https://codereview.chromium.org/1185753002/)

Reason for revert:
this should hopefully be fixed now.

Original issue's description:
> Disable failing GPU tests on Nexus 6.
>
> BUG=skia:3942
>
> Committed: https://skia.googlesource.com/skia/+/8ed08e54f4868d3ef88225bf873ce678e7716bd9

TBR=bsalomon@google.com,djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3942

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

9 years agoFix precision error in https://codereview.chromium.org/1188433011/
robertphillips [Fri, 19 Jun 2015 13:40:02 +0000 (06:40 -0700)]
Fix precision error in https://codereview.chromium.org/1188433011/

TBR=reed@google.com

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

9 years agoAdded check for ill-conditioned invert
robertphillips [Fri, 19 Jun 2015 12:14:26 +0000 (05:14 -0700)]
Added check for ill-conditioned invert

sk_inv_determinant has a guard that the determinant can't get too big so this CL only checks if the determinant gets too small.

BUG=492263

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

9 years agoExpose SkFaceRec less.
bungeman [Fri, 19 Jun 2015 12:09:39 +0000 (05:09 -0700)]
Expose SkFaceRec less.

The SkFaceRec class is some data which needs to remain alive for the
life of an FT_Face. ref_ft_face returns SkFaceRec, but confusingly
unref_ft_face takes an FT_Face. Since no one was using the SkFaceRec
for anything other than accessing the FT_Face, have ref_ft_face
return FT_Face instead and remove the unused SkFaceRec pointer from
the scaler context.

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

9 years agoRemove gamma field from SkDeviceProperties
robertphillips [Fri, 19 Jun 2015 11:46:45 +0000 (04:46 -0700)]
Remove gamma field from SkDeviceProperties

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

9 years agoremove deprecated NewRasterPMColor
reed [Fri, 19 Jun 2015 10:42:56 +0000 (03:42 -0700)]
remove deprecated NewRasterPMColor

BUG=skia:
TBR=

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

9 years agoRevert of Switch to glyphs as paths at a higher point size on Android (patchset ...
fmalita [Thu, 18 Jun 2015 21:34:53 +0000 (14:34 -0700)]
Revert of Switch to glyphs as paths at a higher point size on Android (patchset #1 id:1 of https://codereview.chromium.org/1183053005/)

Reason for revert:
GM:mixedtextblobs looks significantly worse on Android.

Before: https://gold.skia.org/img/images/19d171dd72ba68df9501736dbbc2aa44.png

After: https://gold.skia.org/img/images/d4c38072d2836356c00fdc1a7b537350.png

Original issue's description:
> Switch to glyphs as paths at a higher point size on Android
>
> The regression occurred when we dropped the maximum DF size from 192
> to 162, which meant that any glyph > 324 ended up being rendered as paths
> rather than the previous > 384. This pushes the threshold for
> rendering paths up to 384. Quality looks fine on high-res devices
> which is why this is restricted to Android-only (low-res Android devices
> should only rarely have text that large).
>
> BUG=chromium:467569
>
> Committed: https://skia.googlesource.com/skia/+/932d413e69845989fadaecf5bcb8686ec8c05032

TBR=joshualitt@google.com,jvanverth@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:467569

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

9 years agoWork around for nexus 6 TexSubImage issue
joshualitt [Thu, 18 Jun 2015 21:18:02 +0000 (14:18 -0700)]
Work around for nexus 6 TexSubImage issue

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/c69fe20ef35df0776b179cbd5ce4d1bdc0ba4090

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

9 years agoprivatize
reed [Thu, 18 Jun 2015 21:05:07 +0000 (14:05 -0700)]
privatize

BUG=skia:
TBR=bsalomon@google.com

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

9 years agodisable floating point textures if GLSL version is < 330
joshualitt [Thu, 18 Jun 2015 20:47:10 +0000 (13:47 -0700)]
disable floating point textures if GLSL version is < 330

BUG=skia:

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

9 years agoSwitch to glyphs as paths at a higher point size on Android
jvanverth [Thu, 18 Jun 2015 20:46:45 +0000 (13:46 -0700)]
Switch to glyphs as paths at a higher point size on Android

The regression occurred when we dropped the maximum DF size from 192
to 162, which meant that any glyph > 324 ended up being rendered as paths
rather than the previous > 384. This pushes the threshold for
rendering paths up to 384. Quality looks fine on high-res devices
which is why this is restricted to Android-only (low-res Android devices
should only rarely have text that large).

BUG=chromium:467569

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

9 years agoremove dead guarded code for legacy SkData proc
reed [Thu, 18 Jun 2015 20:42:03 +0000 (13:42 -0700)]
remove dead guarded code for legacy SkData proc

BUG=skia:

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

9 years agoadd callbacks to Images that wrap client-provided content
reed [Thu, 18 Jun 2015 20:41:40 +0000 (13:41 -0700)]
add callbacks to Images that wrap client-provided content

BUG=skia:

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

9 years agoInitialize the sample config for wrapped RTs to kUnified.
senorblanco [Thu, 18 Jun 2015 20:26:52 +0000 (13:26 -0700)]
Initialize the sample config for wrapped RTs to kUnified.

BUG=skia:3958

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

9 years agoModify android_install_app to install VisualBench
joshualitt [Thu, 18 Jun 2015 20:08:26 +0000 (13:08 -0700)]
Modify android_install_app to install VisualBench

BUG=skia:

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

9 years agoAdd SkWebpCodec, for decoding .webp images.
scroggo [Thu, 18 Jun 2015 19:53:43 +0000 (12:53 -0700)]
Add SkWebpCodec, for decoding .webp images.

Based on SkImageDecoder_libwebp.

TODO:
Support YUV? (Longer term - may influence our API for SkImageGenerator)

BUG=skia:3257

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

9 years agoremove SkData proc guard
reed [Thu, 18 Jun 2015 19:11:36 +0000 (12:11 -0700)]
remove SkData proc guard

BUG=skia:
NOTRY=True

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

9 years agoDon't call bindTexture from GrGLProgram
cdalton [Thu, 18 Jun 2015 18:54:30 +0000 (11:54 -0700)]
Don't call bindTexture from GrGLProgram

Updates GrGLProgram to tell the gpu object which textures it wants
bound, instead of calling bindTexture directly. This begins to break
its dependence on the specific GrGLGpu object.

BUG=skia:

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

9 years agoAllows windowed apps to be built on the Mac just by writing a SkOSWindow subclass...
bsalomon [Thu, 18 Jun 2015 18:49:42 +0000 (11:49 -0700)]
Allows windowed apps to be built on the Mac just by writing a SkOSWindow subclass without needing nib/plist files.

Makes visualbench work on the Mac.

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

9 years agoRevert of Work around for nexus 6 TexSubImage issue (patchset #4 id:60001 of https...
joshualitt [Thu, 18 Jun 2015 18:49:18 +0000 (11:49 -0700)]
Revert of Work around for nexus 6 TexSubImage issue (patchset #4 id:60001 of https://codereview.chromium.org/1173203005/)

Reason for revert:
breaks gms

Original issue's description:
> Work around for nexus 6 TexSubImage issue
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c69fe20ef35df0776b179cbd5ce4d1bdc0ba4090

TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoWork around for nexus 6 TexSubImage issue
joshualitt [Thu, 18 Jun 2015 18:07:09 +0000 (11:07 -0700)]
Work around for nexus 6 TexSubImage issue

BUG=skia:

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

9 years agoRemove FT_HAS_COLOR definition.
bungeman [Thu, 18 Jun 2015 17:48:08 +0000 (10:48 -0700)]
Remove FT_HAS_COLOR definition.

The intent was to define FT_HAS_COLOR when building with a pre
2.5.1 version of FreeType for forward compatibility. However,
the definition here is wrong and also never used.

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

9 years agoPlumb through out_row byte length so we can assert we stay underneath it.
mtklein [Thu, 18 Jun 2015 17:30:32 +0000 (10:30 -0700)]
Plumb through out_row byte length so we can assert we stay underneath it.

Sadly, not asserting for me yet.  Can't hurt.

BUG=chromium:491660

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

9 years agoTry again to rename one SkJpegUtility.h to remove ambiguity.
mtklein [Thu, 18 Jun 2015 16:58:57 +0000 (09:58 -0700)]
Try again to rename one SkJpegUtility.h to remove ambiguity.

This time rename the new codec one, which is not referenced externally.

BUG=skia:

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

9 years agoAdd support for creating texture backed images where Skia will delete the texture.
bsalomon [Thu, 18 Jun 2015 16:12:16 +0000 (09:12 -0700)]
Add support for creating texture backed images where Skia will delete the texture.

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

9 years agoRemove separate SP enabled SKP run since it is now on by default
rmistry [Thu, 18 Jun 2015 14:52:13 +0000 (07:52 -0700)]
Remove separate SP enabled SKP run since it is now on by default

Yesterday's RecreateSKPs_Canary run looks good:
http://build.chromium.org/p/client.skia.fyi/builders/Housekeeper-Nightly-RecreateSKPs_Canary/builds/143

The generated SKPs look very reasonably sized:
gs://chromium-skia-gm/playback_386/skps

BUG=skia:
NOTRY=true

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

9 years agoRemove unused SkTypeface_android.h.
bungeman [Thu, 18 Jun 2015 14:46:58 +0000 (07:46 -0700)]
Remove unused SkTypeface_android.h.

This file had one declaration in it which actually affected the
SkFontMgr and had nothing to do with typefaces specifically. As a
result, the declaration was moved to SkFontMgr_android.h. Now that
the users have been updated, remove this now unused file.

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

9 years agoUpdate android perf script
msarett [Thu, 18 Jun 2015 13:29:48 +0000 (06:29 -0700)]
Update android perf script

BUG=skia:

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

9 years agoAdd test for SkRegion::writeToMemory.
scroggo [Thu, 18 Jun 2015 13:16:36 +0000 (06:16 -0700)]
Add test for SkRegion::writeToMemory.

When calling SkRegion::writeToMemory(NULL), it should return the same
number of bytes that it writes when calling
SkRegion::writeToMemory(buffer). Add a test to confirm this.

BUG=b/21271229

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

9 years agoAdd useDFT field to SkDeviceProperties
robertphillips [Thu, 18 Jun 2015 12:27:18 +0000 (05:27 -0700)]
Add useDFT field to SkDeviceProperties

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

9 years agoAdd sk_parallel_for()
mtklein [Wed, 17 Jun 2015 22:26:15 +0000 (15:26 -0700)]
Add sk_parallel_for()

This should be a drop-in replacement for most for-loops to make them run in parallel:
   for (int i = 0; i < N; i++) { code... }
   ~~~>
   sk_parallel_for(N, [&](int i) { code... });

This is just syntax sugar over SkTaskGroup to make this use case really easy to write.
There's no more overhead that we weren't already forced to add using an interface like batch(),
and no extra heap allocations.

I've replaced 3 uses of SkTaskGroup with sk_parallel_for:
  1) My unit tests for SkOnce.
  2) Cary's path fuzzer.
  3) SkMultiPictureDraw.
Performance should be the same.  Please compare left and right for readability. :)

BUG=skia:

No public API changes.
TBR=reed@google.com

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

9 years agoRevert of Bump up point where we switch to distance fields for large glyphs (patchset...
jvanverth [Wed, 17 Jun 2015 20:06:48 +0000 (13:06 -0700)]
Revert of Bump up point where we switch to distance fields for large glyphs (patchset #1 id:1 of https://codereview.chromium.org/1184153004/)

Reason for revert:
Seeing some Nexus 4 perf regressions in individual tests in Chromium that may be due to this change. This doesn't appear to be the correct fix for the bug in any case.

Original issue's description:
> Bump up point where we switch to distance fields for large glyphs
>
> This is hopefully a temporary fix. It's unclear why distance fields
> are so much slower on the N4 (and N7).
>
> BUG=chromium:467569
>
> Committed: https://skia.googlesource.com/skia/+/0fce1fb02d93e66d42528f322f8aa4ca64ff0fb2

TBR=joshualitt@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:467569

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

9 years agoMove Android SkFontMgr::Factory to its own file.
bungeman [Wed, 17 Jun 2015 19:07:10 +0000 (12:07 -0700)]
Move Android SkFontMgr::Factory to its own file.

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

9 years agoSkSemaphore: use SYNC_POLICY_LIFO on Mach.
mtklein [Wed, 17 Jun 2015 18:49:04 +0000 (11:49 -0700)]
SkSemaphore: use SYNC_POLICY_LIFO on Mach.

Turns out _LIFO does work as we expected, keeping N < M threads active when we
have M live threads but only N units of work to do at a time.  Also as we
expected _FIFO does round-robin through the threads.

Performance doesn't seem to be affected, but let's do it anyway.
If nothing else this makes profiles a little easier to read.

I don't see POSIX or Windows equivalents.

BUG=skia:

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

9 years agoadd guard for SkData proc change
reed [Wed, 17 Jun 2015 18:48:57 +0000 (11:48 -0700)]
add guard for SkData proc change

BUG=skia:
NOTRY=True
TBR=

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

9 years agoAdd and use SkSemaphore
mtklein [Wed, 17 Jun 2015 17:50:25 +0000 (10:50 -0700)]
Add and use SkSemaphore

This allows a faster implementation of our SkTaskGroup thread pool.
It also means we don't need SkCondVar (which, remember, isn't supported on XP.)

Doing some testing with SampleApp, this really cuts down on the overhead from SkTaskGroup, e.g. 30% to 10%.

BUG=skia:

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

9 years agoImproved subset benchmarks
msarett [Wed, 17 Jun 2015 17:28:22 +0000 (10:28 -0700)]
Improved subset benchmarks

I think these changes to the subset benchmarks cover what we discussed yesterday.

I removed the divisor benchmarks (2x2, 3x3) and changed the single subset benchmarks.

Also, we will no longer benchmark subset decodes on small images.

BUG=skia:

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

9 years agosimplify release-proc for SkData, removing unneeded size param
reed [Wed, 17 Jun 2015 16:58:24 +0000 (09:58 -0700)]
simplify release-proc for SkData, removing unneeded size param

request https://codereview.chromium.org/1184953005 to land first

BUG=skia:

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