platform/upstream/libSkiaSharp.git
9 years agoCreate a standalone example for using Skia with SDL
joshualitt [Fri, 13 Nov 2015 19:22:19 +0000 (11:22 -0800)]
Create a standalone example for using Skia with SDL

BUG=skia:

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

9 years agoturn on libc++ for iOS
mtklein [Fri, 13 Nov 2015 19:22:04 +0000 (11:22 -0800)]
turn on libc++ for iOS

BUG=skia:

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

9 years agoRemove dependency on src/android from dm and nanobench
msarett [Fri, 13 Nov 2015 17:59:11 +0000 (09:59 -0800)]
Remove dependency on src/android from dm and nanobench

BUG=skia:

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

9 years agoMove GrGLPrimitive/GeometryProc to GLSL
egdaniel [Fri, 13 Nov 2015 17:55:43 +0000 (09:55 -0800)]
Move GrGLPrimitive/GeometryProc to GLSL

BUG=skia:

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

9 years agoAdd visualbench option for nvpr stencil samples
cdalton [Fri, 13 Nov 2015 17:10:31 +0000 (09:10 -0800)]
Add visualbench option for nvpr stencil samples

Repurposes the --nvpr flag as an int that says how many stencil samples
to use, or disables nvpr with a value of zero.

BUG=skia:

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

9 years agoFix visualbench flicker on triple buffered platforms
cdalton [Fri, 13 Nov 2015 16:56:31 +0000 (08:56 -0800)]
Fix visualbench flicker on triple buffered platforms

BUG=skia:

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

9 years agoMake visualbench timing continuous for no-reset mode
cdalton [Fri, 13 Nov 2015 16:42:06 +0000 (08:42 -0800)]
Make visualbench timing continuous for no-reset mode

Ensures there is no period of time that is not on the clock when not
restting the graphics context between samples.

BUG=skia:

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

9 years agoMove XferProcessors to glsl
egdaniel [Fri, 13 Nov 2015 16:34:52 +0000 (08:34 -0800)]
Move XferProcessors to glsl

This is basically a move and rename

TBR=bsalomon@google.com

BUG=skia:

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

9 years agoAdd visualbench option to not reset between samples
cdalton [Fri, 13 Nov 2015 16:28:49 +0000 (08:28 -0800)]
Add visualbench option to not reset between samples

Adds a --reset flag that controls whether we teardown the graphics
context between samples. Also modifies the timing algorithm to always/
only pre-warm after resetting the context.

BUG=skia:

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

9 years agoExclude src/android from CMake build too.
mtklein [Fri, 13 Nov 2015 15:42:26 +0000 (07:42 -0800)]
Exclude src/android from CMake build too.

It requires src/codec.

BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot

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

9 years agoRevert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 id:20001 of...
mtklein [Fri, 13 Nov 2015 15:07:47 +0000 (07:07 -0800)]
Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 id:20001 of https://codereview.chromium.org/1436973003/ )

Reason for revert:
I would not have expected this to change any images.

Looks like it's changed both MSAA and non-MSAA GMs:
https://gold.skia.org/search2?blame=1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac&unt=true&head=true&query=source_type%3Dgm

Original issue's description:
> Switch uses of SkChecksum::Compute to Murmur3.
>
> SkChecksum::Compute is a very, very poorly distributed hash function.
> This replaces all remaining uses with Murmur3.
>
> The only interesting stuff is in src/gpu.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac

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

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

9 years agoMake all GrFragmentProcessors GL independent.
egdaniel [Fri, 13 Nov 2015 14:54:19 +0000 (06:54 -0800)]
Make all GrFragmentProcessors GL independent.

TBR=bsalomon@google.com

BUG=skia:

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

9 years agoaugment gradients_many to exercise flipped gradients and clampping
reed [Fri, 13 Nov 2015 14:23:54 +0000 (06:23 -0800)]
augment gradients_many to exercise flipped gradients and clampping

BUG=skia:
TBR=
NOTREECHECKS=True

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

9 years agoMove SkBitmapRegionDecoder to include/android and src/android
msarett [Fri, 13 Nov 2015 14:11:09 +0000 (06:11 -0800)]
Move SkBitmapRegionDecoder to include/android and src/android

This will expose the BitmapRegionDecoder API as a public include
and move the implementation to src.

This makes this code more naturally exposed in Android and easier
to test in DM and nanobench.

BUG=skia:

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

9 years agoUpdate testing frameworks/tests for MDB
robertphillips [Fri, 13 Nov 2015 14:06:03 +0000 (06:06 -0800)]
Update testing frameworks/tests for MDB

This CL:

Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context)
Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case
Updates the ProgramUnitTest to use multiple drawTargets
Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them)

BUG=skia:4094

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

9 years agoLock pixels again after dummy reset of pixel ref in SkBitmapRegionCodec
msarett [Fri, 13 Nov 2015 13:56:27 +0000 (05:56 -0800)]
Lock pixels again after dummy reset of pixel ref in SkBitmapRegionCodec

This fixes a bug in Android.  We cannot access the pixels after
calling decodeRegion() because the call to lock is missing.

BUG=skia:

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

9 years agoDocumentation: clean up
halcanary [Fri, 13 Nov 2015 12:29:59 +0000 (04:29 -0800)]
Documentation: clean up

-   /user/quick/desktop to bring together all common information for
    using Skia on desktop OSes.  Remove duplication.

-   Replace all instances of call ing gyp_skia directly with calling
    `python bin/sync-and-gyp`.  This is more correct on Windows

-   Remove outdated linux prerequisite packages

-   Formatting, formatting, formatting.

-   Note command-line syntax differences in Windows

-   SampleApp.app is no longer a bundle on MacOS

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1439493003

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

9 years agoSwitch uses of SkChecksum::Compute to Murmur3.
mtklein [Thu, 12 Nov 2015 23:44:09 +0000 (15:44 -0800)]
Switch uses of SkChecksum::Compute to Murmur3.

SkChecksum::Compute is a very, very poorly distributed hash function.
This replaces all remaining uses with Murmur3.

The only interesting stuff is in src/gpu.

BUG=skia:

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

9 years agoFix GrCoverageSetOpXP unit test on mixed samples
cdalton [Thu, 12 Nov 2015 20:11:04 +0000 (12:11 -0800)]
Fix GrCoverageSetOpXP unit test on mixed samples

Updates GrCoverageSetOpXPFactory::TestCreate to not invert coverage
with mixed samples, which is an unsupported configuration.

TBR=bsalomon@google.com

BUG=skia:4556

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

9 years agoSkAtomic: always use std::atomic
mtklein [Thu, 12 Nov 2015 19:07:53 +0000 (11:07 -0800)]
SkAtomic: always use std::atomic

We were doing it on Windows, now do it everywhere.
This just changes the backend.  We could think about another step to actually
replacing all our sk_atomic_... with std atomic stuff.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot
TBR=reed@google.com
Only deleting from include/...

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

9 years agoReplace SkFunction with std::function
mtklein [Thu, 12 Nov 2015 18:41:05 +0000 (10:41 -0800)]
Replace SkFunction with std::function

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

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

9 years agoAPI changes to GrTextureAdjuster.
bsalomon [Thu, 12 Nov 2015 17:59:44 +0000 (09:59 -0800)]
API changes to GrTextureAdjuster.

These changes are to facilitate converting SkGpuDevice::drawTextureAdjuster to SkGpuDevice::drawTextureProducer.

Make constraint rect relative to content area

Store dimensions in GrTextureProducer

Make originalTexture() protected.

Remove getContentArea()

Provide pre-normalized texture matrix to GrTextureAdjuster::createFragmentProcessor. Define it to be be relative to content area.

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

9 years agoFactor CSS3 matching rules.
bungeman [Thu, 12 Nov 2015 17:50:08 +0000 (09:50 -0800)]
Factor CSS3 matching rules.

This factors out the CSS3 matching rules, creates tests for it,
and uses it with the GDI font manager.

BUG=chromium:554238,skia:4037

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

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

9 years agoFix mixed sampled inverse path fills
cdalton [Thu, 12 Nov 2015 17:18:49 +0000 (09:18 -0800)]
Fix mixed sampled inverse path fills

Fixes a double blend that was occurring down the diagonals of inverse
path fills when using mixed samples.

BUG=skia:

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

9 years agoIncrement text pointer when the width is zero in the subpixel with center and right...
herb [Thu, 12 Nov 2015 16:53:42 +0000 (08:53 -0800)]
Increment text pointer when the width is zero in the subpixel with center and right alignment.

BUG=skia:

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

9 years agoTarget Mac bots at 10.7+libc++ to approximate Chrome's 10.6+libc++.
mtklein [Thu, 12 Nov 2015 16:41:40 +0000 (08:41 -0800)]
Target Mac bots at 10.7+libc++ to approximate Chrome's 10.6+libc++.

This is necessary if we want to start using C++11 library features.

Chrome's got their own custom libc++-for-10.6.
This is a somewhat lazy approximation of that.

Chrome should still guard us from using 10.7-specific features
until 10.6-10.8 all go away.

BUG=skia:

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

9 years agoAdd include guards for SkBRDAllocator
scroggo [Thu, 12 Nov 2015 06:54:24 +0000 (22:54 -0800)]
Add include guards for SkBRDAllocator

One step towards fixing the master-skia build

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

9 years agoIn SkGpuDevice;drawTextureAdjuster perform texture w\h divide in texture matrix
bsalomon [Thu, 12 Nov 2015 00:52:03 +0000 (16:52 -0800)]
In SkGpuDevice;drawTextureAdjuster perform texture w\h divide in texture matrix

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

9 years agoEnable AA stencil clip for mixed samples
cdalton [Wed, 11 Nov 2015 23:27:57 +0000 (15:27 -0800)]
Enable AA stencil clip for mixed samples

Updates GrClipMaskManager to use the stencil buffer when the RT is
mixed sampled.

BUG=skia:

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

9 years agoRevert of Enable stencil clipping in mixed sampled render targets (patchset #6 id...
cdalton [Wed, 11 Nov 2015 23:16:07 +0000 (15:16 -0800)]
Revert of Enable stencil clipping in mixed sampled render targets (patchset #6 id:100001 of https://codereview.chromium.org/1232103002/ )

Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples

Original issue's description:
> Implement stencil clipping in mixed sampled render targets
>
> This change enables multisampled clipping for mixed sampled
> render targets.  Previously clipping in mixed samples config
> behaved the same as in the gpu config.
>
> In order to retrofit non-MSAA draw methods, programmable sample
> locations are used in order to colocate all samples at (0.5, 0.5).
> Requires support for NV_sample_locations.
>
> BUG=skia:4399
>
> Committed:
> https://skia.googlesource.com/skia/+/3e77ba96d56d15db30ac6d8ccb900e30aafcbb16

BUG=skia:

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

9 years agoRevert of Fix setColocatedSampleLocations on ES and GL < 4.5 (patchset #2 id:20001...
cdalton [Wed, 11 Nov 2015 23:03:45 +0000 (15:03 -0800)]
Revert of Fix setColocatedSampleLocations on ES and GL < 4.5 (patchset #2 id:20001 of https://codereview.chromium.org/1415503008/ )

Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples.

Original issue's description:
> Fix setColocatedSampleLocations on ES and GL < 4.5
>
> Updates setColocatedSampleLocations to use glFramebufferParameteri
> when
> the DSA version glNamedFramebufferParameteri is not present.
>
> BUG=skia:
>
> Committed:
> https://skia.googlesource.com/skia/+/98cad6219b430eddf5528473311279f21dbd2e10

BUG=skia:

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

9 years agoMake BRD take advantage of zero initialized memory
msarett [Wed, 11 Nov 2015 21:30:43 +0000 (13:30 -0800)]
Make BRD take advantage of zero initialized memory

This is the third step in a three part change:
(1) Skia: Add SkBRDAllocator.
(2) Android: Make JavaPixelAllocator and RecyclingClippingPixelAllocator
             implement SkBRDAllocator.
(3) Skia: Change SkBitmapRegionDecoder to use SkBRDAllocator and take
          advantage of zero allocated memory when possible.

BUG=skia:

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

9 years agoReadd "immediate" mode
robertphillips [Wed, 11 Nov 2015 21:18:11 +0000 (13:18 -0800)]
Readd "immediate" mode

This isn't an exact replacement. The accumulated batches are now flushed at drawContext-entry-point granularity (via the AutoCheckFlush objects) rather than per batch.

TBR=bsalomon@google.com

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

9 years agobring up SDL on windows
joshualitt [Wed, 11 Nov 2015 21:17:06 +0000 (13:17 -0800)]
bring up SDL on windows

BUG=skia:

patch from issue 1432353002 at patchset 1 (http://crrev.com/1432353002#ps1)

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

9 years agoMove all ShaderBuilder files to GLSL
egdaniel [Wed, 11 Nov 2015 21:06:05 +0000 (13:06 -0800)]
Move all ShaderBuilder files to GLSL

BUG=skia:

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

9 years agoFix -Wunused-parameter errors in SkCodec.h in Android
msarett [Wed, 11 Nov 2015 20:43:07 +0000 (12:43 -0800)]
Fix -Wunused-parameter errors in SkCodec.h in Android

BUG=skia:

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

9 years agoFix leaks in unit tests of GrGLTextureInfos
bsalomon [Wed, 11 Nov 2015 20:40:42 +0000 (12:40 -0800)]
Fix leaks in unit tests of GrGLTextureInfos

TBR=egdaniel@google.com

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

9 years agoMove GrBatchFlushState from GrDrawTarget to GrDrawingManager
robertphillips [Wed, 11 Nov 2015 20:01:09 +0000 (12:01 -0800)]
Move GrBatchFlushState from GrDrawTarget to GrDrawingManager

This CL:
  moves the flushState
  disables immediate mode (it was proving difficult to implement)
  also moves the program unit test to the drawing manager

BUG=skia:4094
TBR=bsalomon@google.com

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

9 years agofloat xfermodes (burn, dodge, softlight) in Sk8f, possibly using AVX.
mtklein [Wed, 11 Nov 2015 19:39:09 +0000 (11:39 -0800)]
float xfermodes (burn, dodge, softlight) in Sk8f, possibly using AVX.

Xfermode_ColorDodge_aa 10.3ms -> 7.85ms 0.76x
 Xfermode_SoftLight_aa 13.8ms -> 10.2ms 0.74x
 Xfermode_ColorBurn_aa 10.7ms -> 7.82ms 0.73x
    Xfermode_SoftLight 33.6ms -> 23.2ms 0.69x
   Xfermode_ColorDodge   25ms -> 16.5ms 0.66x
    Xfermode_ColorBurn 26.1ms -> 16.6ms 0.63x

Ought to be no pixel diffs:
https://gold.skia.org/search2?issue=1432903002&unt=true&query=source_type%3Dgm&master=false

Incidental stuff:

I made the SkNx(T) constructors implicit to make writing math expressions simpler.
This allows us to write expressions like
  Sk4f v;
  ...
  v = v*4;
rather than
  Sk4f v;
  ...
  v = v * Sk4f(4);

As written it only works when the constant is on the right-hand side,
so expressions like `(Sk4f(1) - da)` have to stay for now.  I plan on
following up with a CL that lets those become `(1 - da)` too.

BUG=skia:4117
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

9 years agoReplace glyph find and position with common code for the gpu bitmap case.
herb [Wed, 11 Nov 2015 19:30:11 +0000 (11:30 -0800)]
Replace glyph find and position with common code for the gpu bitmap case.

BUG=skia:

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

9 years agoFix code that left shifts a negative value. This has undefined behavior.
benjaminwagner [Wed, 11 Nov 2015 16:46:34 +0000 (08:46 -0800)]
Fix code that left shifts a negative value.  This has undefined behavior.

Patched from internal cl/107515669 by rtrieu and added comments.

BUG=skia:2481

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

9 years agoChange quality settings on SkImageDecoder_libjpeg
msarett [Wed, 11 Nov 2015 14:41:01 +0000 (06:41 -0800)]
Change quality settings on SkImageDecoder_libjpeg

It has been demonstrated that higher quality settings
really do make a difference in the visual quality of
the output image.
https://code.google.com/p/chromium/issues/detail?id=385515
https://code.google.com/p/skia/issues/detail?id=3770

We are planning to replace SkImageDecoder with SkCodec,
and SkCodec will use the higher quality settings.  As
a first step, we are using SkCodec as the underlying
implementation for BitmapRegionDecoder.  CTS tests require
that BitmapRegionDecoder be a close match to BitmapFactory
(which uses SkImageDecoder), so we must also update the
quality of SkImageDecoder to maintain CTS compatibility.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/69ad6a9d03dd6f14b7c730465319313725a7c903

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

9 years agoMake GrGLSLProgramBuilder base class for GrGLProgramBuilder.
egdaniel [Wed, 11 Nov 2015 14:27:20 +0000 (06:27 -0800)]
Make GrGLSLProgramBuilder base class for GrGLProgramBuilder.

This CL still keeps the weird diamond shape we have for all our ProgramBuilders.
However, the GrGLSL base class will allow us to pull multiple other parts
of our program setup away from GL which will eventually allow us to break up
the diamond.

As part of this all ShaderBuilder subclass have been made gl independent,
however I will move them to GLSL files/class names in a follow on CL.

BUG=skia:

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

9 years agoAdd an Allocator interface that indicates if memory is zero init
msarett [Wed, 11 Nov 2015 14:21:27 +0000 (06:21 -0800)]
Add an Allocator interface that indicates if memory is zero init

This is the first step in a three part change:
(1) Skia: Add SkBRDAllocator.
(2) Android: Make JavaPixelAllocator and RecyclingClippingPixelAllocator
             implement SkBRDAllocator.
(3) Skia: Change SkBitmapRegionDecoder to use SkBRDAllocator and take
          advantage of zero allocated memory when possible.

BUG=skia:

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

9 years agoReorganize BRD code in new tools directory
msarett [Tue, 10 Nov 2015 23:49:46 +0000 (15:49 -0800)]
Reorganize BRD code in new tools directory

Rename SkCodecTools.h to SkBitmapRegionDecoderPriv.h

Move BRD code to its own directory in tools.  This
allows us to not need to expose the entire tools
directory in Android.

BUG=skia:

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

9 years agoDelete dead SkImageDecoder::buildTileIndex and decodeSubset code
msarett [Tue, 10 Nov 2015 23:38:23 +0000 (15:38 -0800)]
Delete dead SkImageDecoder::buildTileIndex and decodeSubset code

This approach to subset decoding is no longer supported.
We have replaced it with an implementation that does not
depend on forked libraries.
https://codereview.chromium.org/1406153015/

BUG=skia:

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

9 years agoDelete dead BitmapRegionDecoder code in tools
msarett [Tue, 10 Nov 2015 23:24:10 +0000 (15:24 -0800)]
Delete dead BitmapRegionDecoder code in tools

This approach to subset decoding is no longer supported.
We have replaced it with an implementation that does not
depend on forked libraries.
https://codereview.chromium.org/1406153015/

BUG=skia:

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

9 years agoDelete dead subset test code from dm
msarett [Tue, 10 Nov 2015 23:09:03 +0000 (15:09 -0800)]
Delete dead subset test code from dm

This approach to subset decoding is no longer supported.
We have replaced it with an implementation that does not
depend on forked libraries.
https://codereview.chromium.org/1406153015/

BUG=skia:

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

9 years agoDelete dead subset benches from nanobench
msarett [Tue, 10 Nov 2015 22:52:13 +0000 (14:52 -0800)]
Delete dead subset benches from nanobench

This approach to subset decoding is no longer supported.
We have replaced it with an implementation that does not
depend on forked libraries.
https://codereview.chromium.org/1406153015/

BUG=skia:

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

9 years agoMissing resources crash SampleFilterQuality.
bungeman [Tue, 10 Nov 2015 21:29:43 +0000 (13:29 -0800)]
Missing resources crash SampleFilterQuality.

The FilterQuality slide segfaults if resources cannot be loaded.
This is particularly noticeable with an Android build, as by
default resources are not available.

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

9 years agoRevert of Fix mixed samples stencil clip (patchset #5 id:80001 of https://codereview...
cdalton [Tue, 10 Nov 2015 20:49:06 +0000 (12:49 -0800)]
Revert of Fix mixed samples stencil clip (patchset #5 id:80001 of https://codereview.chromium.org/1431593006/ )

Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples.

Original issue's description:
> Fix mixed samples stencil clip
>
> Fixes rendering bugs and nondeterminism in gm.
>
> Before, mixed samples stencil clip would try to infer whether the draw
> wanted co-centered sample locations from within GrGLGpu, which caused
> various errors. This change reworks it so the draw itself can request
> the co-centered sample locations when it knows it will need them.
>
> Also reduces framebuffer binds by moving the code that enables
> GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget.
>
> Committed: https://skia.googlesource.com/skia/+/14184d5567b58085b6d8a6375796d405056f7f73

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

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

9 years agoUse a struct for client GL texture handles
bsalomon [Tue, 10 Nov 2015 19:54:56 +0000 (11:54 -0800)]
Use a struct for client GL texture handles

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

9 years agoReduce messages from libjpeg-turbo
msarett [Tue, 10 Nov 2015 19:22:12 +0000 (11:22 -0800)]
Reduce messages from libjpeg-turbo

output_message():
By overriding output_message, we can use SkCodecPrintf,
which we can turn on or off.

The default turbo implementation of emit_message calls
output_message when it wants to print a message, so,
even though we don't override emit_message, it also uses
SkCodecPrintf.

emit_message():
Use libjpeg-turbo’s default implementation of emit_message.

It does not print "trace messages" which essentially are info
messages and it only prints the first warning (unless it a very
serious warning).

Currently, we just print everything, which is why the output
has been so verbose.

BUG=skia:

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

9 years agoGYP: remove stale skia_scalar gyp variable
Hal Canary [Tue, 10 Nov 2015 18:25:12 +0000 (13:25 -0500)]
GYP: remove stale skia_scalar gyp variable
DOCS_PREVIEW= https://skia.org/?cl=1417703013

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

9 years agoDisable preemptive batch preparation
robertphillips [Tue, 10 Nov 2015 18:19:50 +0000 (10:19 -0800)]
Disable preemptive batch preparation

Preemptive batch preparation makes MultiDrawBuffer more difficult to implement. This CL disables it.

BUG=skia:4094

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

9 years agoSkPDF: Deal with missing ColorTable (don't assert)
halcanary [Tue, 10 Nov 2015 17:48:40 +0000 (09:48 -0800)]
SkPDF: Deal with missing ColorTable (don't assert)

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

9 years agoFix reversion to bilerp on clipped mipmap draws
bsalomon [Tue, 10 Nov 2015 17:18:32 +0000 (09:18 -0800)]
Fix reversion to bilerp on clipped mipmap draws

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

9 years agoParse command line arguments for sdl + android
joshualitt [Tue, 10 Nov 2015 16:27:22 +0000 (08:27 -0800)]
Parse command line arguments for sdl + android

TBR=
BUG=skia:

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

9 years agoFixes for building with sdl on android
joshualitt [Tue, 10 Nov 2015 15:36:18 +0000 (07:36 -0800)]
Fixes for building with sdl on android

BUG=skia:
TBR=bsalomon@google.com

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

9 years agoMake SkBlurImageFilter capable of cropping during blur (GPU path).
senorblanco [Tue, 10 Nov 2015 15:32:37 +0000 (07:32 -0800)]
Make SkBlurImageFilter capable of cropping during blur (GPU path).

This is the GPU equivalent of https://codereview.chromium.org/1415653003/.

It requires passing down the bounds of the crop rect (srcBounds), and
turning the blur 3-patch optimization in convolve_gaussian() into a 5-patch:
clear above and below srcBounds, blur with bounds checks inside left and
right rects, blur without bounds checks in middle rect.

Note: this change causes minor pixels diffs in the
imagefilterscropexpand GM: for odd crop positions relative to the
dstBounds, we are now correctly resampling at an even pixel boundary.

BUG=skia:4502, skia:4526

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

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

9 years agoSkResourceCache::GetAllocator() index8 and other color types handling
aleksandar.stojiljkovic [Tue, 10 Nov 2015 12:55:15 +0000 (04:55 -0800)]
SkResourceCache::GetAllocator() index8 and other color types handling

Unit tests added to check all color types in SkOneShotDiscardablePixelref

SkResourceCacheTest seems to have been allways using default Heap Allocator.
 Fixed so that it uses private (not global that is) SkDiscardableMemory.

BUG=skia:4355

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

9 years agoapply mozilla patch
reed [Tue, 10 Nov 2015 12:55:08 +0000 (04:55 -0800)]
apply mozilla patch

BUG=skia:4547

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

9 years agoFix mixed samples stencil clip
cdalton [Mon, 9 Nov 2015 23:12:19 +0000 (15:12 -0800)]
Fix mixed samples stencil clip

Fixes rendering bugs and nondeterminism in gm.

Before, mixed samples stencil clip would try to infer whether the draw
wanted co-centered sample locations from within GrGLGpu, which caused
various errors. This change reworks it so the draw itself can request
the co-centered sample locations when it knows it will need them.

Also reduces framebuffer binds by moving the code that enables
GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget.

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

9 years agoUpdate Layer Hoisting to store its atlas texture in the resource cache
robertphillips [Mon, 9 Nov 2015 21:51:06 +0000 (13:51 -0800)]
Update Layer Hoisting to store its atlas texture in the resource cache

BUG=skia:4346

Committed: https://skia.googlesource.com/skia/+/42597bc99f00553825843b5ed41e81b121773368

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

9 years agoExtract glyph find and position code in preparation to use it in XPS and GPU code.
herb [Mon, 9 Nov 2015 21:15:21 +0000 (13:15 -0800)]
Extract glyph find and position code in preparation to use it in XPS and GPU code.

BUG=skia:

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

9 years agodemo tweaks, scale up perlin, add call to flush for fps
reed [Mon, 9 Nov 2015 21:10:30 +0000 (13:10 -0800)]
demo tweaks, scale up perlin, add call to flush for fps

BUG=skia:
TBR=bsalomon

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

9 years agoWire up SDL on mac
joshualitt [Mon, 9 Nov 2015 20:30:05 +0000 (12:30 -0800)]
Wire up SDL on mac

BUG=skia:

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

9 years agoSeparate out natively-texture image/bmp draws from cached-as-texture image/bmp draws
bsalomon [Mon, 9 Nov 2015 19:55:57 +0000 (11:55 -0800)]
Separate out natively-texture image/bmp draws from cached-as-texture image/bmp draws

This makes texture-backed images and bitmaps down a new code path. It adds a pinch point via the texture adjuster that will be used to handle copied necessary for different texture targets. It also fixes bugs in the existing code exhibited by recent updates to the bleed GM. The plan is to move the the sw/generator-backed imgs/bmps on to this code path with future changes.

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

9 years agoDocumentation - Remove references to `gclient sync`
halcanary [Mon, 9 Nov 2015 19:47:09 +0000 (11:47 -0800)]
Documentation - Remove references to `gclient sync`

skia.org/user/download
-   Move sections "Making changes" and "Uploading changes for review"
    to "How to submit a patch" page
-   Mention bin/sync-and-gyp

skia.org/dev/contrib/submit
-   Mention branch.autosetuprebase=always to fit with Skia's linear
    history style.

NOTRY=true
DOCS_PREVIEW= https://skia.org/user/download?cl=1411403010
DOCS_PREVIEW= https://skia.org/dev/contrib/submit?cl=1411403010

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

9 years agoFix compile error mac 10.8.
herb [Mon, 9 Nov 2015 18:49:29 +0000 (10:49 -0800)]
Fix compile error mac 10.8.

The mac 10.8 compiler seems to get the constructor wrong. Remove the SkNoCopy.

BUG=skia:4037

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

9 years agoRewrite bleed GM bmp/img generators and change oversized texture case
bsalomon [Mon, 9 Nov 2015 18:06:06 +0000 (10:06 -0800)]
Rewrite bleed GM bmp/img generators and change oversized texture case

Makes it so that the oversized-texture/bmp case doesn't run on the CPU and makes it so that the subrect rendered is adjacent to the texture pad area on the bottom/right edges.

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

9 years agoRevert of Make SkBlurImageFilter capable of cropping during blur (GPU path). (patchse...
egdaniel [Mon, 9 Nov 2015 18:04:20 +0000 (10:04 -0800)]
Revert of Make SkBlurImageFilter capable of cropping during blur (GPU path). (patchset #15 id:260001 of https://codereview.chromium.org/1431593002/ )

Reason for revert:
Causing valgrind error. Looks like the issue is in conolve_gaussiand_2d where bounds is not getting set if there is no srcBounds, but later on that bounds is being read in the creation of a TextureDomain.

Original issue's description:
> Make SkBlurImageFilter capable of cropping during blur (GPU path).
>
> This is the GPU equivalent of https://codereview.chromium.org/1415653003/.
>
> It requires passing down the bounds of the crop rect (srcBounds), and
> turning the blur 3-patch optimization in convolve_gaussian() into a 5-patch:
> clear above and below srcBounds, blur with bounds checks inside left and
> right rects, blur without bounds checks in middle rect.
>
> Note: this change causes minor pixels diffs in the
> imagefilterscropexpand GM: for odd crop positions relative to the
> dstBounds, we are now correctly resampling at an even pixel boundary.
>
> BUG=skia:4502, skia:4526
>
> Committed: https://skia.googlesource.com/skia/+/c57e0ded7d535523cfc6bf07c78e5f3479bb8c42

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

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

9 years agoSkPx: use namespaces as namespaces
mtklein [Mon, 9 Nov 2015 16:55:01 +0000 (08:55 -0800)]
SkPx: use namespaces as namespaces

This is a pure refactor.  No behavior change.
I'm just getting tired of typing out the names...

BUG=skia:4117
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

9 years agoExtract the glyph picking and placing code.
herb [Mon, 9 Nov 2015 16:51:56 +0000 (08:51 -0800)]
Extract the glyph picking and placing code.

There is a common piece of code which finds and positions glyphs and is used in four places. Some places copied the code, some places added callbacks. Here is a list of code:

SkDraw::drawPosText
GrAtlasTextContext::internalDrawBMPPosText
GrAtlasTextContext::internalDrawDFPosText
SkXPSDevice::drawPosText

This only extracts the code from SkDraw::drawPosText. I would like to use it in the other three places. I think this code is performance neutral.

BUG=skia:

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

9 years agoRemove debug print statement
egdaniel [Mon, 9 Nov 2015 16:49:21 +0000 (08:49 -0800)]
Remove debug print statement

TBR=bsalomon@google.com

BUG=skia:

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

9 years agotweaks for nov demo
reed [Mon, 9 Nov 2015 16:36:05 +0000 (08:36 -0800)]
tweaks for nov demo

Add this flag to SampleApp, and it will run with the specified restricted sequence

    --sequence /skia/trunk/resources/nov-talk-sequence.txt

BUG=skia:
TBR=

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

9 years agoprune unused SkNx features
mtklein [Mon, 9 Nov 2015 16:33:53 +0000 (08:33 -0800)]
prune unused SkNx features

  - remove float -> int conversion, keeping float -> byte
  - remove support for doubles

I was thinking of specializing Sk8f for AVX.  This will help keep the complexity down.

This may cause minor diffs in radial gradients: toBytes() rounds where castTrunc() truncated.  But I don't see any diffs in Gold.
https://gold.skia.org/search2?issue=1411563008&unt=true&query=source_type%3Dgm&master=false

BUG=skia:4117
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

9 years agobin/sync-and-gyp: sh->py (make more cross-platform)
halcanary [Mon, 9 Nov 2015 16:28:13 +0000 (08:28 -0800)]
bin/sync-and-gyp: sh->py (make more cross-platform)

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

9 years agoUpdate sample to use new perlin noise shader, and make cloud like
egdaniel [Mon, 9 Nov 2015 15:40:49 +0000 (07:40 -0800)]
Update sample to use new perlin noise shader, and make cloud like

BUG=skia:

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

9 years agosse 4.2 detection
mtklein [Mon, 9 Nov 2015 15:08:32 +0000 (07:08 -0800)]
sse 4.2 detection

While we're detecting instruction sets, let's fill in this hole too.

BUG=skia:

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

9 years agoadded experimental improved Perlin noise shader
ethannicholas [Mon, 9 Nov 2015 14:35:12 +0000 (06:35 -0800)]
added experimental improved Perlin noise shader

TBR=bsalomon@google.com

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

9 years agoRevert of Change quality settings on SkImageDecoder_libjpeg (patchset #1 id:40001...
fmalita [Mon, 9 Nov 2015 00:30:08 +0000 (16:30 -0800)]
Revert of Change quality settings on SkImageDecoder_libjpeg (patchset #1 id:40001 of https://codereview.chromium.org/1412803009/ )

Reason for revert:
Valgrind failures: http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind/builds/631/steps/nanobench/logs/stdio

==14022== Conditional jump or move depends on uninitialised value(s)
==14022==    at 0x6A1DD6: S32A_Opaque_BlitRow32_SSE4(unsigned int*, unsigned int const*, int, unsigned int) (SkBlitRow_opts_SSE4.cpp:47)
==14022==    by 0x5A7EEA: Sprite_D32_S32::blitRect(int, int, int, int) (SkSpriteBlitter_ARGB32.cpp:47)
==14022==    by 0x57DD8A: SkScan::FillIRect(SkIRect const&, SkRegion const*, SkBlitter*) (SkScan.cpp:15)
==14022==    by 0x57DEDC: SkScan::FillIRect(SkIRect const&, SkRasterClip const&, SkBlitter*) (SkScan.cpp:73)
==14022==    by 0x536072: SkDraw::drawBitmap(SkBitmap const&, SkMatrix const&, SkRect const*, SkPaint const&) const (SkDraw.cpp:1286)
==14022==    by 0x59CC50: SkBitmapDevice::drawBitmap(SkDraw const&, SkBitmap const&, SkMatrix const&, SkPaint const&) (SkBitmapDevice.cpp:248)
==14022==    by 0x52F0DC: SkBaseDevice::drawImage(SkDraw const&, SkImage const*, float, float, SkPaint const&) (SkDevice.cpp:150)
==14022==    by 0x525139: SkCanvas::onDrawImage(SkImage const*, float, float, SkPaint const*) (SkCanvas.cpp:2180)
==14022==    by 0x5279A0: SkCanvas::drawImage(SkImage const*, float, float, SkPaint const*) (SkCanvas.cpp:1864)
==14022==    by 0x441C83: SKPBench::onPerCanvasPostDraw(SkCanvas*) (SKPBench.cpp:95)
==14022==    by 0x40A3FF: Benchmark::perCanvasPostDraw(SkCanvas*) (Benchmark.cpp:53)
==14022==    by 0x44C527: nanobench_main() (nanobench.cpp:1254)
==14022==    by 0x44D1E6: main (nanobench.cpp:1344)
==14022==  Uninitialised value was created by a heap allocation
==14022==    at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14022==    by 0x602DAC: chromium_jpeg_get_large (jmemnobs.c:57)
==14022==    by 0x602818: alloc_large (jmemmgr.c:376)
==14022==    by 0x602A2E: alloc_sarray (jmemmgr.c:453)
==14022==    by 0x614983: chromium_jinit_d_main_controller (jdmainct.c:450)
==14022==    by 0x5FD3A0: chromium_jinit_master_decompress (jdmaster.c:577)
==14022==    by 0x5F9198: chromium_jpeg_start_decompress (jdapistd.c:46)
==14022==    by 0x680C22: SkJPEGImageDecoder::onDecode(SkStream*, SkBitmap*, SkImageDecoder::Mode) (SkImageDecoder_libjpeg.cpp:575)
==14022==    by 0x67BCE8: SkImageDecoder::decode(SkStream*, SkBitmap*, SkColorType, SkImageDecoder::Mode) (SkImageDecoder.cpp:138)
==14022==    by 0x6845E3: SkImageDecoderGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*) (SkImageGenerator_skia.cpp:59)
==14022==    by 0x53D4C7: SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*) (SkImageGenerator.cpp:40)
==14022==    by 0x53D6DF: SkImageGenerator::tryGenerateBitmap(SkBitmap*, SkImageInfo const*, SkBitmap::Allocator*) (SkImageGenerator.cpp:179)
==14022==    by 0x53D334: SkImageCacherator::generateBitmap(SkBitmap*) (SkImageGenerator.h:174)
==14022==    by 0x53D3A1: SkImageCacherator::tryLockAsBitmap(SkBitmap*, SkImage const*) (SkImageCacherator.cpp:118)
==14022==    by 0x53D3EA: SkImageCacherator::lockAsBitmap(SkBitmap*, SkImage const*) (SkImageCacherator.cpp:132)
==14022==    by 0x58EDCF: SkImage_Generator::getROPixels(SkBitmap*) const (SkImage_Generator.cpp:59)
==14022==    by 0x52F007: SkBaseDevice::drawImageRect(SkDraw const&, SkImage const*, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::SrcRectConstraint) (SkDevice.cpp:159)
==14022==    by 0x5255E0: SkCanvas::onDrawImageRect(SkImage const*, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::SrcRectConstraint) (SkCanvas.cpp:2209)
==14022==    by 0x5279DC: SkCanvas::drawImageRect(SkImage const*, SkRect const&, SkRect const&, SkPaint const*, SkCanvas::SrcRectConstraint) (SkCanvas.cpp:1872)

Original issue's description:
> Change quality settings on SkImageDecoder_libjpeg
>
> It has been demonstrated that higher quality settings
> really do make a difference in the visual quality of
> the output image.
> https://code.google.com/p/chromium/issues/detail?id=385515
> https://code.google.com/p/skia/issues/detail?id=3770
>
> We are planning to replace SkImageDecoder with SkCodec,
> and SkCodec will use the higher quality settings.  As
> a first step, we are using SkCodec as the underlying
> implementation for BitmapRegionDecoder.  CTS tests require
> that BitmapRegionDecoder be a close match to BitmapFactory
> (which uses SkImageDecoder), so we must also update the
> quality of SkImageDecoder to maintain CTS compatibility.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/69ad6a9d03dd6f14b7c730465319313725a7c903

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

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

9 years agoAdd text animation sample; tweak DrawShip sample
jvanverth [Sun, 8 Nov 2015 16:07:24 +0000 (08:07 -0800)]
Add text animation sample; tweak DrawShip sample

Committed: https://skia.googlesource.com/skia/+/3b484a40b3be7f0262afadeaf6b741ba5cedcfe1

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

9 years agoUpdate SKP version
update-skps [Sun, 8 Nov 2015 08:30:20 +0000 (00:30 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

9 years agoComments Style: s/skbug.com/bug.skia.org/
halcanary [Sat, 7 Nov 2015 13:29:00 +0000 (05:29 -0800)]
Comments Style:  s/skbug.com/bug.skia.org/
DOCS_PREVIEW= https://skia.org/?cl=1432503003

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

9 years agoavx and avx2 detection
mtklein [Sat, 7 Nov 2015 03:48:19 +0000 (19:48 -0800)]
avx and avx2 detection

This doesn't do anything yet beyond print out a message in Debug mode,
but it's a start.  Those messages should match the -SSE4-, -AVX-, or -AVX2- in
the Test-...-Debug-Trybots below.  The Release ones are just running by accident.

So far they look right to me.

BUG=skia:

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

9 years agoRevert of Add text animation sample; tweak DrawShip sample (patchset #3 id:40001...
jvanverth [Sat, 7 Nov 2015 00:10:34 +0000 (16:10 -0800)]
Revert of Add text animation sample; tweak DrawShip sample (patchset #3 id:40001 of https://codereview.chromium.org/1410663005/ )

Reason for revert:
CrOS bots failing.

Original issue's description:
> Add text animation sample; tweak DrawShip sample
>
> Committed: https://skia.googlesource.com/skia/+/3b484a40b3be7f0262afadeaf6b741ba5cedcfe1

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

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

9 years agoAdd text animation sample; tweak DrawShip sample
jvanverth [Fri, 6 Nov 2015 22:20:03 +0000 (14:20 -0800)]
Add text animation sample; tweak DrawShip sample

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

9 years agoSkPx: new approach to fixed-point SIMD
mtklein [Fri, 6 Nov 2015 22:10:48 +0000 (14:10 -0800)]
SkPx: new approach to fixed-point SIMD

SkPx is like Sk4px, except each platform implementation of SkPx can declare
a different sweet spot of N pixels, with extra loads and stores to handle the
ragged edge of 0<n<N pixels.

In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
we can now use NEON's transposing loads and stores, and _none is just 1.
This makes operations involving alpha considerably more efficient on NEON,
as alpha is its own distinct 8x8 bit plane that's easy to toss around.

This incorporates a few other improvements I've been wanting:
  - no requirement that we're dealing with SkPMColor.  SkColor works too.
  - no anonymous namespace hack to differentiate implementations.

Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
The NEON code looks very similar to the old NEON code, as intended.
No .skp or GM diffs on my laptop.  Don't expect any.

I intend this to replace Sk4px.  Plan after landing:
  - port SkXfermode_opts.h
  - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
    SkOpts code)
  - delete all Sk4px-related code
  - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
    leaving Sk2f, Sk4f (and Sk2s, Sk4s).
  - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
    at a time.

In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.

BUG=skia:4117

Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot

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

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

9 years agoClean up GrBatchAtlas a bit
robertphillips [Fri, 6 Nov 2015 22:10:42 +0000 (14:10 -0800)]
Clean up GrBatchAtlas a bit

The main thrust of this CL is to remove knowledge of the atlas' backing texture from the BatchPlot. It also reduces the API surface of the BatchPlot and shrinks the amount of fields in the BatchAtlas.

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

9 years agoadd sequence for nov talk
reed [Fri, 6 Nov 2015 20:36:24 +0000 (12:36 -0800)]
add sequence for nov talk

BUG=skia:
TBR=
NOTRY=True
NOTREECHECKS=True

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

9 years agoFix the build on Android devices
Matt Sarett [Fri, 6 Nov 2015 19:59:01 +0000 (14:59 -0500)]
Fix the build on Android devices

9 years agoRevert of SkPx: new approach to fixed-point SIMD (patchset #12 id:220001 of https...
mtklein [Fri, 6 Nov 2015 19:34:06 +0000 (11:34 -0800)]
Revert of SkPx: new approach to fixed-point SIMD (patchset #12 id:220001 of https://codereview.chromium.org/1317233005/ )

Reason for revert:
master-skia unhappy:
https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantis-userdebug/2404853/e6c439e806fb0bd0f872a3d7a5cf0637d4ad11bfaa89e9bc18b651dc65f0a36b/logs/build_error.log?GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Signature=WOqQO7xHkv83SmC4h5tNUIp%2BREaYULqK11hNTWlhj1XXo0NAOQd7GNSIHl775uRRZpBw2LkHeb2Ups3LsgRPrldqymposFtDa%2BUEW0Jv2NWAr%2F1Cqt6lwWsfknvJLN9NiEGfpCCye3Q%2FEYx9bU1ozMBG6h2DRHJUMRS%2FjstkJg0%3D&Expires=1446838937

Original issue's description:
> SkPx: new approach to fixed-point SIMD
>
> SkPx is like Sk4px, except each platform implementation of SkPx can declare
> a different sweet spot of N pixels, with extra loads and stores to handle the
> ragged edge of 0<n<N pixels.
>
> In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
> we can now use NEON's transposing loads and stores, and _none is just 1.
> This makes operations involving alpha considerably more efficient on NEON,
> as alpha is its own distinct 8x8 bit plane that's easy to toss around.
>
> This incorporates a few other improvements I've been wanting:
>   - no requirement that we're dealing with SkPMColor.  SkColor works too.
>   - no anonymous namespace hack to differentiate implementations.
>
> Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
> The NEON code looks very similar to the old NEON code, as intended.
> No .skp or GM diffs on my laptop.  Don't expect any.
>
> I intend this to replace Sk4px.  Plan after landing:
>   - port SkXfermode_opts.h
>   - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
>     SkOpts code)
>   - delete all Sk4px-related code
>   - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
>     leaving Sk2f, Sk4f (and Sk2s, Sk4s).
>   - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
>     at a time.
>
> In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/a7627dc5cc2bf5d9a95d883d20c40d477ecadadf

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

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

9 years agoAdding Skia Debugger documentation
hcm [Fri, 6 Nov 2015 19:29:06 +0000 (11:29 -0800)]
Adding Skia Debugger documentation

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

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

9 years agoRemove dependencies on Android's forked decoder libraries
msarett [Fri, 6 Nov 2015 19:15:49 +0000 (11:15 -0800)]
Remove dependencies on Android's forked decoder libraries

Disable SkImageDecoder's code which relies on Android's customized
libpng and libjpeg. Build standard versions of libpng and libjpeg-turbo
everywhere. The SkImageDecoder code has been replaced with SkCodec, which
can decode subsets using standard library APIs

BUG=skia:

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

9 years agoChange quality settings on SkImageDecoder_libjpeg
msarett [Fri, 6 Nov 2015 19:02:06 +0000 (11:02 -0800)]
Change quality settings on SkImageDecoder_libjpeg

It has been demonstrated that higher quality settings
really do make a difference in the visual quality of
the output image.
https://code.google.com/p/chromium/issues/detail?id=385515
https://code.google.com/p/skia/issues/detail?id=3770

We are planning to replace SkImageDecoder with SkCodec,
and SkCodec will use the higher quality settings.  As
a first step, we are using SkCodec as the underlying
implementation for BitmapRegionDecoder.  CTS tests require
that BitmapRegionDecoder be a close match to BitmapFactory
(which uses SkImageDecoder), so we must also update the
quality of SkImageDecoder to maintain CTS compatibility.

BUG=skia:

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

9 years agoExport tools as an include directory for Android
msarett [Fri, 6 Nov 2015 18:53:01 +0000 (10:53 -0800)]
Export tools as an include directory for Android

BUG=skia:

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

9 years agocompare has a syntax error where it is missing the path to sem().
herb [Fri, 6 Nov 2015 18:35:37 +0000 (10:35 -0800)]
compare has a syntax error where it is missing the path to sem().
BUG=skia:

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

9 years agoSkPx: new approach to fixed-point SIMD
mtklein [Fri, 6 Nov 2015 17:18:57 +0000 (09:18 -0800)]
SkPx: new approach to fixed-point SIMD

SkPx is like Sk4px, except each platform implementation of SkPx can declare
a different sweet spot of N pixels, with extra loads and stores to handle the
ragged edge of 0<n<N pixels.

In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
we can now use NEON's transposing loads and stores, and _none is just 1.
This makes operations involving alpha considerably more efficient on NEON,
as alpha is its own distinct 8x8 bit plane that's easy to toss around.

This incorporates a few other improvements I've been wanting:
  - no requirement that we're dealing with SkPMColor.  SkColor works too.
  - no anonymous namespace hack to differentiate implementations.

Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
The NEON code looks very similar to the old NEON code, as intended.
No .skp or GM diffs on my laptop.  Don't expect any.

I intend this to replace Sk4px.  Plan after landing:
  - port SkXfermode_opts.h
  - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
    SkOpts code)
  - delete all Sk4px-related code
  - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
    leaving Sk2f, Sk4f (and Sk2s, Sk4s).
  - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
    at a time.

In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.

BUG=skia:4117

Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot

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

9 years agoRename SkBitmapRegionDecoder and Create function
msarett [Fri, 6 Nov 2015 16:56:32 +0000 (08:56 -0800)]
Rename SkBitmapRegionDecoder and Create function

We no longer need to worry about namespace
conflicts SkBitmapRegionDecoder in Android (which
we are replacing).

Additionally, the static Create() function does not
need to repeat the name BitmapRegionDecoder.

BUG=skia:

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