platform/upstream/libSkiaSharp.git
8 years agoMove shader compiling to ProgramBuilder and various ShaderBuilder cleanups.
egdaniel [Mon, 2 Nov 2015 14:22:44 +0000 (06:22 -0800)]
Move shader compiling to ProgramBuilder and various ShaderBuilder cleanups.

An additional positive of this CL is that GrGLShaderBuilder is now GL independent besides GrGLProgramBuilder

BUG=skia:

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

8 years agoIn BUILD.public, specify alwayslink for skia library.
benjaminwagner [Mon, 2 Nov 2015 13:53:38 +0000 (05:53 -0800)]
In BUILD.public, specify alwayslink for skia library.

Some Skia classes use SkTRegistry, which requires the source files be linked in order to be registered.

Also replace "*CG*" with "SkImageDecoder_CG.cpp" for clarity.

BUG=skia:

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

8 years agoUpdate SKP version
update-skps [Sun, 1 Nov 2015 07:47:37 +0000 (00:47 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

8 years agopath ops; remove obsolete reduce
caryclark [Fri, 30 Oct 2015 20:56:50 +0000 (13:56 -0700)]
path ops; remove obsolete reduce

Cubics and quads tried to detect
linearness directly, once. This
is handled later in the pipeline
and need not be handled here.

TBR=reed@google.com

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

8 years agoAdd cropped-then-expanded test cases to blur_image_filter tests.
senorblanco [Fri, 30 Oct 2015 20:17:20 +0000 (13:17 -0700)]
Add cropped-then-expanded test cases to blur_image_filter tests.

These are benches similar to the imagefilterscropexpand GM: an
input filter is cropped to a smaller size, then the blur is re-expanded
out to a larger size.

BUG=skbug:4502

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

8 years agoMore conic-specific tests revealed a few conic-specific bugs. Because javascript...
caryclark [Fri, 30 Oct 2015 19:03:06 +0000 (12:03 -0700)]
More conic-specific tests revealed a few conic-specific bugs. Because javascript / canvas make visualizing conics tricky, new native tools are required.

The utility SubsetPath removes parts of a potentially very large path to isolate a minimal test case. SubsetPath is very useful for debugging path ops, but is not path ops specific.

PathOpsBuilderConicTest compares the output of the Path Ops Builder, sequential calls to Simplify, and SkRegions for some number of rotated ovals.

Some tests caused path ops to hang. It was caught adding a loop of curves because the head was not found by the tail. Even though the root cause has been fixed, SkSegment::addCurveTo callers now abort the path op if the same curve was added twice.

The subdivided conic weight was been computed anew. Fortunately, it's a simpler computation that the one it replaces.

Some Simplify() subroutines returned false to signal that the results needed assembling. Change these to abort the current operation instead.

Coincident curve intersection triggered two small bugs; one where no perpendicular could be found for coincident curves, and one where no coincident curves remain after looping.

The SixtyOvals test can be run through multiple processes instead of multiple threads. This strategy allows a 48 core machine to saturate all cores at 100%.

The DEBUG_VISUALIZE_CONICS code in PathOpsConicIntersectionTest acknowleges that it is easier to visualize conics with Skia than with script and html canvas. This test also verifies that path ops subdivision matches geometry chopping.

TBR=reed@google.com

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

8 years agoDependencies are now added between the drawTargets in GrPipeline
robertphillips [Fri, 30 Oct 2015 17:11:30 +0000 (10:11 -0700)]
Dependencies are now added between the drawTargets in GrPipeline

This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting)

BUG=skia:4094

Committed: https://skia.googlesource.com/skia/+/45a1c34f607a970933e5cd05e1df6cd8090db1be

Committed: https://skia.googlesource.com/skia/+/869c5e82a725a6928a45cd1fa6945ac783b8b3d8

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

8 years agoDon't run nvpr on TSAN bot
bsalomon [Fri, 30 Oct 2015 16:05:32 +0000 (09:05 -0700)]
Don't run nvpr on TSAN bot

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

8 years agoDEPS: roll zlib: 20 new commits
halcanary [Fri, 30 Oct 2015 15:40:55 +0000 (08:40 -0700)]
DEPS: roll zlib: 20 new commits

List of changes at
https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/4ba7cdd0e7bf49d671645264f839838fc56e1492..c4e33043fb071b6ea0a153845da625d7ed633d3d

Of particular interest is
"Fix VC++ 2015 64-bit truncation warning in zlib".

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

8 years agoDedup SkPaths by gen-ID when going to .skp
mtklein [Fri, 30 Oct 2015 12:24:58 +0000 (05:24 -0700)]
Dedup SkPaths by gen-ID when going to .skp

We're all set up to serialize and deserialze paths by an integer ID,
but we're just not deduping any paths (every path gets a new ID).

This turns on deduping.  This should mean the number of paths in a
deserialized SkPicture are the same as when it was recorded.

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

BUG=skia:4527

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

8 years agoMinor cleanup of clip mask manager
robertphillips [Fri, 30 Oct 2015 12:15:11 +0000 (05:15 -0700)]
Minor cleanup of clip mask manager

Follow up to https://codereview.chromium.org/1418073005/ (Remove gpu-side clip mask merging from clip mask manager).

The path renderer chain is only ever allocated when it is about to be used (so the delayed initialization doesn't buy us anything).

We can now reduce the lifetime of the pipelineBuilder in createAlphaClipMask

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

8 years agoFor BUILD.public, let SkPreConfig.h set SK_RELEASE based on NDEBUG.
benjaminwagner [Thu, 29 Oct 2015 20:40:27 +0000 (13:40 -0700)]
For BUILD.public, let SkPreConfig.h set SK_RELEASE based on NDEBUG.

Use DumpStackTrace in SkASSERT in GOOGLE3.

There are extra assertions enabled in debug mode that cause RecordDraw_TextBounds to fail.

New include causes a naming conflict with global name "base".

Corresponding internal cl/106495354

No public API changes.

TBR=reed@google.com
BUG=skia:

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

8 years agoClarify subrect semantics for GrTextureAdjuster and handle mip maps correctly.
bsalomon [Thu, 29 Oct 2015 19:34:31 +0000 (12:34 -0700)]
Clarify subrect semantics for GrTextureAdjuster and handle mip maps correctly.

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

8 years ago[SkDebugger] Show detailed drawImage info
fmalita [Thu, 29 Oct 2015 19:13:48 +0000 (12:13 -0700)]
[SkDebugger] Show detailed drawImage info

R=robert.phillips@google.com

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

8 years agoRemove GrPipelineBuilder from getPathRenderer call
robertphillips [Thu, 29 Oct 2015 19:12:21 +0000 (12:12 -0700)]
Remove GrPipelineBuilder from getPathRenderer call

Logically this CL:

Moves the PathRendererChain from GrContext to GrDrawManager
   - this was needed to untangled the Path-Chain/Renderer header mess
   - this entailed adding getDrawingMgr so the CMM could access the PathRenderingChain
   - this also entailed re-adding freeGpuResources to the GrDrawingMgr
Moves the CanDrawArgs struct up stack
Removes the GrPipelineBuilder from the CanDrawArgs struct

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

8 years agoPull texture-backed bitmap resampler out of GrTextureParamsAdjuster code into its...
bsalomon [Thu, 29 Oct 2015 17:49:28 +0000 (10:49 -0700)]
Pull texture-backed bitmap resampler out of GrTextureParamsAdjuster code into its own class.

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

8 years agoRemove SK_SAVE_LAYER_BOUNDS_ARE_FILTERED #define.
senorblanco [Thu, 29 Oct 2015 17:24:38 +0000 (10:24 -0700)]
Remove SK_SAVE_LAYER_BOUNDS_ARE_FILTERED #define.

It's no longer used in Chrome.

BUG=skbug:3194

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

8 years agoAdd generationID to debugger's path information
robertphillips [Thu, 29 Oct 2015 16:45:27 +0000 (09:45 -0700)]
Add generationID to debugger's path information

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

8 years agoUse only one CGFont/CTFont per scaler context on Mac.
bungeman [Thu, 29 Oct 2015 16:30:32 +0000 (09:30 -0700)]
Use only one CGFont/CTFont per scaler context on Mac.

The unrotated CTFont was introduced to fix color emoji scaling.
Use only the unrotated CTFont and apply the rotations manually.
This allows removal of one CTFont and allows us to apply (correctly)
the transformation CoreText would otherwise need to apply
(which it appears to do inconsistently).

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

8 years agoAttempt to update Xfermode comments to have parallel structure.
pkasting [Thu, 29 Oct 2015 15:41:15 +0000 (08:41 -0700)]
Attempt to update Xfermode comments to have parallel structure.

BUG=none
TEST=none

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

8 years agoRemove GrGLProcessor and create GrGLSLTextureSampler class.
egdaniel [Thu, 29 Oct 2015 14:57:01 +0000 (07:57 -0700)]
Remove GrGLProcessor and create GrGLSLTextureSampler class.

Part ??? of separating glsl and gl

BUG=skia:

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

8 years agoInitial gyp files for SDL
joshualitt [Thu, 29 Oct 2015 14:09:53 +0000 (07:09 -0700)]
Initial gyp files for SDL

BUG=skia:

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

8 years agoProtect apply_paint_to_bounds_sans_imagefilter() with an #ifdef.
senorblanco [Thu, 29 Oct 2015 00:01:00 +0000 (17:01 -0700)]
Protect apply_paint_to_bounds_sans_imagefilter() with an #ifdef.

Its only caller is protected by the same #ifdef.

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

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

8 years agoSkBlurImageFilter_opts: optimize NEON box_blur_double in separate loops.
senorblanco [Wed, 28 Oct 2015 22:39:33 +0000 (15:39 -0700)]
SkBlurImageFilter_opts: optimize NEON box_blur_double in separate loops.

Stop leaning so hard on the branch predictor, and pull the conditionals
out of the loops for box_blur_double() (NEON).  This is conceptually
the same change as https://codereview.chromium.org/1426583004/ for
the NEON double-pixel loop.

R=mtklein@google.com

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

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

8 years agoMake SkImageFilter::applyCropRect() optionally compute srcBounds.
senorblanco [Wed, 28 Oct 2015 21:17:16 +0000 (14:17 -0700)]
Make SkImageFilter::applyCropRect() optionally compute srcBounds.

BUG=skia:4526

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

8 years agoRename SkScaledCodec.cpp to SkSampledCodec.cpp
scroggo [Wed, 28 Oct 2015 21:06:10 +0000 (14:06 -0700)]
Rename SkScaledCodec.cpp to SkSampledCodec.cpp

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

8 years agoAndroid framework builds can't see cpu-features.h
mtklein [Wed, 28 Oct 2015 20:45:59 +0000 (13:45 -0700)]
Android framework builds can't see cpu-features.h

Don't try to do NEON detection for Android framework builds.

BUG=skia:

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

8 years agoUpdate deps to pull sdl
joshualitt [Wed, 28 Oct 2015 20:28:54 +0000 (13:28 -0700)]
Update deps to pull sdl

BUG=skia:

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

8 years agonanobench: fix and simplify --samplingTime
mtklein [Wed, 28 Oct 2015 18:36:30 +0000 (11:36 -0700)]
nanobench: fix and simplify --samplingTime

Recent changes to WallTimer broke --samplingTime.  In particular, this idiom became nonsensical:
   WallTimer timer;
   timer.start();
   do {
     ...
     timer.end();
   } while(timer.fWall < ...);

WallTimer started making private use of fWall between when start() and end() were called, so the second time around the loop we end up with nonsense.

If that makes no sense, don't worry.  The code here using now_ms() is just as fast, just as precise, and clearer.

I took the opportunity to simplify --samplingTime <complicated string parsing> to --ms <int>, and to simplify the code that depends on it.

BUG=skia:

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

8 years agoChange saveLayer() semantics to take unfiltered bounds.
senorblanco [Wed, 28 Oct 2015 18:23:36 +0000 (11:23 -0700)]
Change saveLayer() semantics to take unfiltered bounds.

For optimizing saveLayer() offscreens, it is useful to know the
bounds of the primitive being drawn. Currently, the bounds passed to
saveLayer() are filtered, which makes it difficult to know the original
bounds of the primitive. This CL changes the semantics to accept
unfiltered bounds. This actually simplifies the callsites too. In
order to result in the correct pixels being produced, we then call
computeFastBounds() inside clipRectBounds().

The old behaviour is wrapped in #ifdef SK_SAVE_LAYER_BOUNDS_ARE_FILTERED,
until we can update Chrome's callsites (see
https://codereview.chromium.org/1316243002/).

This change will affect the following GMs:
testimagefilters: saveLayer bounds no longer cause clipping
imagefiltersbase: slight pixel diffs
resizeimagefilter: slight pixel diffs on the "high quality" test case
imagefilterscropexpand: displacement results are now correct
filterfastbounds: slight pixel diffs
matriximagefilter: slight pixel diffs

BUG=skia:3194 skia:4526

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

8 years agoRemove gpu-side clip mask merging from clip mask manager
robertphillips [Wed, 28 Oct 2015 18:01:41 +0000 (11:01 -0700)]
Remove gpu-side clip mask merging from clip mask manager

In the clip mask merging path, the CMM creates new renderTargets and draws to them. In the non-MDB world this is okay b.c. all the draws land in the same drawTarget anyway. In the MDB world the draws for the new renderTargets have to land in different drawTargets.

This can be resolved by a lot of plumbing and refactoring to create drawContexts for the created renderTargets or by removing the mask-merging drawing path.

Since, https://codereview.chromium.org/1424853002/ (Disable gpu-side clip mask merging in the clip mask manager), appears to have stuck, this CL removes the clip mask merging code.

BUG=skia:4094
BUG=skia:4519

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

8 years agoSkBlurImageFilter_opt.h: break conditions into separate loops.
senorblanco [Wed, 28 Oct 2015 17:26:06 +0000 (10:26 -0700)]
SkBlurImageFilter_opt.h: break conditions into separate loops.

This gives ~15% improvement on blur_image on Linux Z620,
and should allow me to implement cropping without
incurring a perf hit.

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

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

8 years agoadd a note
mtklein [Wed, 28 Oct 2015 17:02:06 +0000 (10:02 -0700)]
add a note

BUG=skia:

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

8 years agomove reinterpret_cast into SK_PREFETCH
mtklein [Wed, 28 Oct 2015 16:52:20 +0000 (09:52 -0700)]
move reinterpret_cast into SK_PREFETCH

no public API changes
TBR=reed@google.com

BUG=skia:

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

8 years agoSend SkDebugf through stderr and flush on Windows too.
mtklein [Wed, 28 Oct 2015 16:50:31 +0000 (09:50 -0700)]
Send SkDebugf through stderr and flush on Windows too.

This makes it consistent with Linux/Mac.  There, stderr is not buffered, so the flush is not needed / implicit.

BUG=skia:

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

8 years agoMake bin/c and bin/compare work on Windows.
mtklein [Wed, 28 Oct 2015 16:45:44 +0000 (09:45 -0700)]
Make bin/c and bin/compare work on Windows.
  - Call python explicitly.
  - Drop numpy dependency (on numpy.mean.... come on.)
  - Make scipy dependency optional.

Depends on https://codereview.chromium.org/1419073003 to really work.

BUG=skia:

Doesn't change code.
NOTRY=true

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

8 years agoAdd missing include for sleep().
scroggo [Wed, 28 Oct 2015 15:56:41 +0000 (08:56 -0700)]
Add missing include for sleep().

This used to be leaked unconditionally by libc++.

Change-Id: I984ab7328ff3a2499c3c89a6862feaa62b6166de

Author: Dan Albert<danalbert@google.com>

Cherry-pick of https://android-review.googlesource.com/#/c/178189/1

This fixes the AOSP mips build.

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

8 years agoskia: Add ANGLE support on Mac
hendrikw [Wed, 28 Oct 2015 15:42:29 +0000 (08:42 -0700)]
skia: Add ANGLE support on Mac

I want to be able to compare ANGLE vs CommandBuffer for
dm and nanobench on Mac, so enabling ANGLE on mac.

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

8 years agoRemove min texture size support
bsalomon [Wed, 28 Oct 2015 15:37:44 +0000 (08:37 -0700)]
Remove min texture size support

BUG=skia:4524

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

8 years agoCreate GLSL base class for ProgramDataManager
egdaniel [Wed, 28 Oct 2015 14:26:40 +0000 (07:26 -0700)]
Create GLSL base class for ProgramDataManager

BUG=skia:

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

8 years agoMake SkOSWindow windows implementation use CS_OWNDC in its window class
bsalomon [Wed, 28 Oct 2015 13:29:43 +0000 (06:29 -0700)]
Make SkOSWindow windows implementation use CS_OWNDC in its window class

TBR=joshualitt@google.com

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

8 years agoDisable CHROMIUM_bind_uniform_location due to a spec bug
kkinnunen [Wed, 28 Oct 2015 13:18:35 +0000 (06:18 -0700)]
Disable CHROMIUM_bind_uniform_location due to a spec bug

Bound uniforms that are optimized away causes GL errors
when they are used.

The bound location becomes unused if its bound uniform is
optimized away. Updating the inactive uniform using the
bound location causes a GL error from the command buffer.

Alternatively, command buffer may bind another free, unbound
uniform to the bound location. This causes the uniform update to
update the wrong uniform.

Disable the extension until the spec can be clarified and the
implementation fixed, if possible and needed.

BUG=skia:4454

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

8 years agoRefactor SkBlurImageFilter_Opts.h.
senorblanco [Tue, 27 Oct 2015 21:39:31 +0000 (14:39 -0700)]
Refactor SkBlurImageFilter_Opts.h.

Refactor box_blur() into a single driver function which
SSE*, NEON and generic code paths can use. I've used macros
to do this in order to keep debug performance reasonable,
but it's fairly ugly. I'm open to other suggestions.

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

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

8 years agoAdd shared mutexes to the direct write cache code to get better parallelism.
herb [Tue, 27 Oct 2015 21:37:00 +0000 (14:37 -0700)]
Add shared mutexes to the direct write cache code to get better parallelism.

BUG=547182

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

8 years agoMake SkTextBlob::RunIterator public.
halcanary [Tue, 27 Oct 2015 21:01:05 +0000 (14:01 -0700)]
Make SkTextBlob::RunIterator public.

Motivation: This will be easier than adding a friend every time I want
to create a one-off SkCanvas subclass or SkRemote::Encoder subclass.

See also: SkPath::Iter.

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

8 years agoskia: Roll latest angle
hendrikw [Tue, 27 Oct 2015 20:34:31 +0000 (13:34 -0700)]
skia: Roll latest angle

Required to fix a mac build error with command buffer, and possible
memory allocation issue when used with skia_angle on linux.

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

8 years agoMake DMSrcSink fail fatally when decodeRegion() fails for BRDSrcs
msarett [Tue, 27 Oct 2015 20:28:25 +0000 (13:28 -0700)]
Make DMSrcSink fail fatally when decodeRegion() fails for BRDSrcs

This involves disabling webps for kCanvas_Strategy.
We have not yet implemented webp subset decodes for this
strategy.

BUG=skia:4521

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

8 years agoAdd NewFromStream and getEncodedFormat to BitmapRegionDecoder
msarett [Tue, 27 Oct 2015 20:12:59 +0000 (13:12 -0700)]
Add NewFromStream and getEncodedFormat to BitmapRegionDecoder

The function will be needed in Android.

BUG=skia:

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

8 years agoMake SK_PREFETCH work on Windows too.
mtklein [Tue, 27 Oct 2015 20:06:47 +0000 (13:06 -0700)]
Make SK_PREFETCH work on Windows too.

- Use _mm_prefetch() if available, e.g. with MSVC.
- Some other tidying up.

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

BUG=skia:

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

8 years agoRefactor SkBitmapRegionDecoderInterface for Android
msarett [Tue, 27 Oct 2015 19:50:25 +0000 (12:50 -0700)]
Refactor SkBitmapRegionDecoderInterface for Android

The result SkBitmap, the pixel allocator, and the alpha
preference need to be communicated from the client to
the region decoder.

BUG=skia:

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

8 years agoDefault off LTCG for human builds.
mtklein [Tue, 27 Oct 2015 18:24:40 +0000 (11:24 -0700)]
Default off LTCG for human builds.

It's absurdly slow.

We can turn it back on with

skia> python gyp_skia -Dskia_win_ltcg=1

The bots will automatically define skia_is_bot and skia_win_ltcg.

BUG=skia:

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

8 years agoskia: Fix command buffer support on the mac
hendrikw [Tue, 27 Oct 2015 17:04:34 +0000 (10:04 -0700)]
skia: Fix command buffer support on the mac

The extension on the mac is .dylib, updated the name.

EGL.h isn't available on mac (unless we include skia_angle.h).
I've got a somewhat bad hack of defining the types that I need
to get this running.

GetProcedureAddress was somehow successfully grabbing gl
functions from another lib.  Removed this call, I copied it
from ANGLE impl, but it isn't required.

lib load path works differently, fixed in GYP

BUG=skia:2992

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

8 years agoDisable gpu-side clip mask merging in the clip mask manager
robertphillips [Tue, 27 Oct 2015 16:23:38 +0000 (09:23 -0700)]
Disable gpu-side clip mask merging in the clip mask manager

In the MDB world the clip mask manager would need to create a separate drawContext for each temporary mask (and we would need to support stencil draws in the drawContext). For now, disable the feature.

Please see skbug.com/4519 (Re-enable gpu-side mask merging in Ganesh)

BUG=skia:4094

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

8 years agoRemove SkJpegCodec.cpp from Google3 BUILD due to differing libjpeg_turbo versions.
benjaminwagner [Tue, 27 Oct 2015 16:14:29 +0000 (09:14 -0700)]
Remove SkJpegCodec.cpp from Google3 BUILD due to differing libjpeg_turbo versions.

BUG=skia:4520

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

8 years agoUpdate Android FreeType version.
bungeman [Tue, 27 Oct 2015 15:39:39 +0000 (08:39 -0700)]
Update Android FreeType version.

Update FreeType to a newer version. Because this caused issues in
finding the correct ftoptions.h and ftmodule.h [1], be sure to state
the ones we want explicitly.

This also add gzip.c which is needed for WOFF support [2].

[1] FreeType "Simplify header file hierarchy."
    fae382076409db198dfbff36ac4cbb97b05b30a1

[2] FreeType "[gzip] New function `FT_Gzip_Uncompress'."
    dc240524ff31891a442225430b28e9620c1fa89f

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

8 years agoUpdate CodexTest for 565
scroggo [Tue, 27 Oct 2015 15:14:46 +0000 (08:14 -0700)]
Update CodexTest for 565

All our codecs now support 565, so no need to have a boolean to check
it.

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

8 years agoCosmetic portion of reverted "Fix ClipMaskManager's SW-fallback logic" CL
robertphillips [Tue, 27 Oct 2015 14:53:35 +0000 (07:53 -0700)]
Cosmetic portion of reverted "Fix ClipMaskManager's SW-fallback logic" CL

This CL isolates the cosmetic portion so the functional portion is clearer. It relies on https://codereview.chromium.org/1412883005/ (Fix ClipMaskManager's SW-fallback logic (take 2))

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

8 years agoFix ClipMaskManager's SW-fallback logic (take 2)
robertphillips [Tue, 27 Oct 2015 14:17:33 +0000 (07:17 -0700)]
Fix ClipMaskManager's SW-fallback logic (take 2)

https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) had a logic error in it. It did not take into account createAlphaClipMask's fallback to non-Stenciled drawing (in drawElement).

This CL adds that logic and strips out the unnecessary changes (for clarity).

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

8 years agoFix DMSrcSink bug
msarett [Tue, 27 Oct 2015 14:12:24 +0000 (07:12 -0700)]
Fix DMSrcSink bug

We want to request premultiplied decodes.

BUG=skia:

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

8 years agoMove scissor state to GrAppliedClip
bsalomon [Tue, 27 Oct 2015 13:42:50 +0000 (06:42 -0700)]
Move scissor state to GrAppliedClip

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

8 years agoFix up the clip mask manager's creation of paths (w.r.t. volatility)
robertphillips [Mon, 26 Oct 2015 21:37:03 +0000 (14:37 -0700)]
Fix up the clip mask manager's creation of paths (w.r.t. volatility)

I don't expect this to make any difference (perf-wise) but it seems more correct.

This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic)

Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083

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

8 years agoRevert of Fix ClipMaskManager's SW-fallback logic (patchset #4 id:60001 of https...
robertphillips [Mon, 26 Oct 2015 21:12:25 +0000 (14:12 -0700)]
Revert of Fix ClipMaskManager's SW-fallback logic (patchset #4 id:60001 of https://codereview.chromium.org/1421533007/ )

Reason for revert:
Logic may be incorrect

Original issue's description:
> Fix ClipMaskManager's SW-fallback logic
>
>
> 'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent).
>
> Committed: https://skia.googlesource.com/skia/+/5c3ea4cd3921e8904d4f201bcdedfd5b8a726542

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

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

8 years agoRevert of Fix up the clip mask manager's creation of paths (w.r.t. volatility) (patch...
robertphillips [Mon, 26 Oct 2015 21:11:15 +0000 (14:11 -0700)]
Revert of Fix up the clip mask manager's creation of paths (w.r.t. volatility) (patchset #1 id:1 of https://codereview.chromium.org/1419403002/ )

Reason for revert:
Logic may be incorrect

Original issue's description:
> Fix up the clip mask manager's creation of paths (w.r.t. volatility)
>
> I don't expect this to make any difference (perf-wise) but it seems more correct.
>
> This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic)
>
> Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083

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

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

8 years agoFlush GrContext between benchmark draw loops
cdalton [Mon, 26 Oct 2015 20:45:29 +0000 (13:45 -0700)]
Flush GrContext between benchmark draw loops

This change updates a small subset of benchmarks to flush the GrContext
between draw loops (specifically SKP benchmarks, SampleApp, and the
warmup in visualbench). This helps improve timing accuracy by not
allowing the gpu to batch across draw boundaries in the affected
benchmarks.

BUG=skia:

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

8 years agoAdd visualbench option for device-independent fonts
cdalton [Mon, 26 Oct 2015 20:14:36 +0000 (13:14 -0700)]
Add visualbench option for device-independent fonts

BUG=skia:

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

8 years agoFix visualbench exiting on startup on android
joshualitt [Mon, 26 Oct 2015 19:00:42 +0000 (12:00 -0700)]
Fix visualbench exiting on startup on android

BUG=skia:

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

8 years agoEnable BUILD file compilation of skia and dm with --config=android_arm.
benjaminwagner [Mon, 26 Oct 2015 17:46:25 +0000 (10:46 -0700)]
Enable BUILD file compilation of skia and dm with --config=android_arm.

Corresponding google3 cl is 105687529.

BUG=skia:

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

8 years agoGet debugger compiling again
robertphillips [Mon, 26 Oct 2015 16:28:12 +0000 (09:28 -0700)]
Get debugger compiling again

Recent house cleaning has broken the debugger - mainly around the defunct profiling feature. This makes CL it even more defunct.

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

8 years agoFix up the clip mask manager's creation of paths (w.r.t. volatility)
robertphillips [Mon, 26 Oct 2015 16:27:52 +0000 (09:27 -0700)]
Fix up the clip mask manager's creation of paths (w.r.t. volatility)

I don't expect this to make any difference (perf-wise) but it seems more correct.

This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic)

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

8 years agoFix GLCaps order for CoreProfile
egdaniel [Mon, 26 Oct 2015 15:59:10 +0000 (08:59 -0700)]
Fix GLCaps order for CoreProfile

TBR=bsalomon@google.com
BUG=skia:

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

8 years agoCMake: exclude SkOSLibrary_posix.cpp on Windows too.
mtklein [Mon, 26 Oct 2015 15:41:10 +0000 (08:41 -0700)]
CMake: exclude SkOSLibrary_posix.cpp on Windows too.

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/1414983004

8 years agoMake appending default precision be controled by GLSL
egdaniel [Mon, 26 Oct 2015 15:38:25 +0000 (08:38 -0700)]
Make appending default precision be controled by GLSL

BUG=skia:

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

8 years agoFix ClipMaskManager's SW-fallback logic
robertphillips [Mon, 26 Oct 2015 15:33:10 +0000 (08:33 -0700)]
Fix ClipMaskManager's SW-fallback logic

'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent).

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

8 years agofix for teeny strokes
caryclark [Mon, 26 Oct 2015 15:17:04 +0000 (08:17 -0700)]
fix for teeny strokes

Pass the scale before evaluating degenerate line segments.

This does not change other GMs.

R=reed@google.com
BUG=478337

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

8 years agoFix gl caps for mixed sample support
egdaniel [Mon, 26 Oct 2015 14:38:05 +0000 (07:38 -0700)]
Fix gl caps for mixed sample support

The dependencies between glsl caps and some gl ones were more complex than I had thought with original change especially in regards to mix samples, advanced blends, and similar features.

This changes simply reverts back to the original order of setting the caps so it should fix all perf issues that were seen in the X1

BUG=skia:4505

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

8 years agoDisable MIP mapping on PowerVR 54x. This GPU spews a lot of errors when using Generat...
bsalomon [Mon, 26 Oct 2015 14:33:03 +0000 (07:33 -0700)]
Disable MIP mapping on PowerVR 54x. This GPU spews a lot of errors when using GenerateMipMaps.

BUG=skia:4514

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

8 years agoSimplify linkages to Android framework internals
tomhudson [Mon, 26 Oct 2015 14:21:31 +0000 (07:21 -0700)]
Simplify linkages to Android framework internals

We've migrated SkHwuiRenderer into the Android Framework as
android::uirenderer::TestWindowContext in response to an internal
bug; we now delete that class and change our build references here.

R=djsollen@google.com

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

8 years agoImage filters: simplify filterInputGPU().
senorblanco [Mon, 26 Oct 2015 13:55:47 +0000 (06:55 -0700)]
Image filters: simplify filterInputGPU().

Remove a call to canFilterImageGPU() / filterImageGPU() from
filterInputGPU(). There's no reason to do this, since
the subsequent filterImage() call will do it for us anyway.
And this call actually defeats caching (as demonstrated by
the attached bench).

BUG=skia:

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

8 years agoUpdate SKP version
update-skps [Sun, 25 Oct 2015 07:29:20 +0000 (00:29 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

8 years agoFix dm compilation on Google3.
benjaminwagner [Sat, 24 Oct 2015 14:55:31 +0000 (07:55 -0700)]
Fix dm compilation on Google3.

BUG=skia:

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

8 years agoSkRecord refactor: fill bounds array instead of BBH directly
mtklein [Sat, 24 Oct 2015 14:45:47 +0000 (07:45 -0700)]
SkRecord refactor: fill bounds array instead of BBH directly

This should be a strict refactor, just pulling out the bounds array.
(It's the rescued nice parts of a dead-end CL targeting skia:4492.)

BUG=skia:

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

8 years agoRevert of Experimental CL to stop using subdata (patchset #1 id:1 of https://coderevi...
joshualitt [Fri, 23 Oct 2015 20:54:12 +0000 (13:54 -0700)]
Revert of Experimental CL to stop using subdata (patchset #1 id:1 of https://codereview.chromium.org/1413263006/ )

Reason for revert:
might be breaking tsan

Original issue's description:
> Experimental CL to stop using subdata
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/383ce32e3e5ca0c8997ece827205f61d348ee56f

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

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

8 years agoUse SkAutoTExclusive in SkGlyphCache.
herb [Fri, 23 Oct 2015 18:31:38 +0000 (11:31 -0700)]
Use SkAutoTExclusive in SkGlyphCache.

This replaces the local AutoAcquire class.

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

8 years agoAdd more cases to bleed GM and more variants
bsalomon [Fri, 23 Oct 2015 18:13:01 +0000 (11:13 -0700)]
Add more cases to bleed GM and more variants

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

8 years ago[tracing] Remove counter logic and just use address on glyph cache dumps
ssid [Fri, 23 Oct 2015 17:49:35 +0000 (10:49 -0700)]
[tracing] Remove counter logic and just use address on glyph cache dumps

This CL removes the logic of counting the index of glyphs and uses the
address of the glyph object for dump name. This makes the dump names
consistent across multiple dumps.

BUG=543479

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

8 years agoUse SkAutoTExclusive guard in DirectWrite port.
herb [Fri, 23 Oct 2015 17:48:26 +0000 (10:48 -0700)]
Use SkAutoTExclusive guard in DirectWrite port.

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

8 years agoFix some GPU filters to use the correct size constraint.
senorblanco [Fri, 23 Oct 2015 16:56:48 +0000 (09:56 -0700)]
Fix some GPU filters to use the correct size constraint.

BUG=skia:

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

8 years agoNarrow the distribution of GrDrawTarget a bit
robertphillips [Fri, 23 Oct 2015 16:38:03 +0000 (09:38 -0700)]
Narrow the distribution of GrDrawTarget a bit

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

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

8 years agoUse SkSwizzler to convert from CMYK
scroggo [Fri, 23 Oct 2015 16:29:22 +0000 (09:29 -0700)]
Use SkSwizzler to convert from CMYK

Move convert_CMYK_to_RGBA into two functions in SkSwizzler: one for 565
and one for 8888.

For simplicity, when converting to 8888, we no longer convert in place.

BUG=skia:4476

Committed: https://skia.googlesource.com/skia/+/450ee8f26d39f975cf6af37a27de658ae5a9fa10

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

8 years agoUpdate SrcRectConstraint doc. Previous doc never matched the implementation or the...
bsalomon [Fri, 23 Oct 2015 16:27:42 +0000 (09:27 -0700)]
Update SrcRectConstraint doc. Previous doc never matched the implementation or the c2d spec.

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

8 years agoExperimental CL to stop using subdata
joshualitt [Fri, 23 Oct 2015 16:12:02 +0000 (09:12 -0700)]
Experimental CL to stop using subdata

BUG=skia:

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

8 years agoMove GrGLBufferImpl's GL calls to behind GrGLGpu
joshualitt [Fri, 23 Oct 2015 16:08:08 +0000 (09:08 -0700)]
Move GrGLBufferImpl's GL calls to behind GrGLGpu

BUG=skia:

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

8 years agoAdd immediate mode option for gpu configs in dm
bsalomon [Fri, 23 Oct 2015 16:06:59 +0000 (09:06 -0700)]
Add immediate mode option for gpu configs in dm

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

8 years agoRevert of Use SkSwizzler to convert from CMYK (patchset #4 id:60001 of https://codere...
scroggo [Fri, 23 Oct 2015 15:39:58 +0000 (08:39 -0700)]
Revert of Use SkSwizzler to convert from CMYK (patchset #4 id:60001 of https://codereview.chromium.org/1411083009/ )

Reason for revert:
Breaking ASAN. See http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/2879

Original issue's description:
> Use SkSwizzler to convert from CMYK
>
> Move convert_CMYK_to_RGBA into two functions in SkSwizzler: one for 565
> and one for 8888.
>
> For simplicity, when converting to 8888, we no longer convert in place.
>
> BUG=skia:4476
>
> Committed: https://skia.googlesource.com/skia/+/450ee8f26d39f975cf6af37a27de658ae5a9fa10

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

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

8 years agoUse SkSwizzler to convert from CMYK
scroggo [Fri, 23 Oct 2015 15:01:06 +0000 (08:01 -0700)]
Use SkSwizzler to convert from CMYK

Move convert_CMYK_to_RGBA into two functions in SkSwizzler: one for 565
and one for 8888.

For simplicity, when converting to 8888, we no longer convert in place.

BUG=skia:4476

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

8 years agoRemove mac buffer impl war
joshualitt [Fri, 23 Oct 2015 14:33:54 +0000 (07:33 -0700)]
Remove mac buffer impl war

BUG=skia:

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

8 years agoSkTime::GetNSecs()
mtklein [Fri, 23 Oct 2015 14:02:06 +0000 (07:02 -0700)]
SkTime::GetNSecs()

   - Move high-precision wall timers from tools/timer to SkTime.
   - Implement SkTime::GetMSecs() in terms of SkTime::GetNSecs().
   - Delete unused tools/timer code.

I have no idea what's going on there in src/animator.
I don't intend to investigate.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/70084cbc16ee8162649f2601377feb6e49de0217

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot

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

Committed: https://skia.googlesource.com/skia/+/38a88e4c0c28a7be981aac7bb4a198ad95a62a63

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

8 years agoRevert of SkTime::GetNSecs() (patchset #11 id:200001 of https://codereview.chromium...
mtklein [Fri, 23 Oct 2015 13:40:33 +0000 (06:40 -0700)]
Revert of SkTime::GetNSecs() (patchset #11 id:200001 of https://codereview.chromium.org/1422513003/ )

Reason for revert:
Times don't look like they make sense on Windows.

Original issue's description:
> SkTime::GetNSecs()
>
>    - Move high-precision wall timers from tools/timer to SkTime.
>    - Implement SkTime::GetMSecs() in terms of SkTime::GetNSecs().
>    - Delete unused tools/timer code.
>
> I have no idea what's going on there in src/animator.
> I don't intend to investigate.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/70084cbc16ee8162649f2601377feb6e49de0217
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/a1840d50e29fd95e4df2d1168fe54c34c2a5c30c
>
> Committed: https://skia.googlesource.com/skia/+/38a88e4c0c28a7be981aac7bb4a198ad95a62a63

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

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

8 years agoSkTime::GetNSecs()
mtklein [Fri, 23 Oct 2015 13:24:07 +0000 (06:24 -0700)]
SkTime::GetNSecs()

   - Move high-precision wall timers from tools/timer to SkTime.
   - Implement SkTime::GetMSecs() in terms of SkTime::GetNSecs().
   - Delete unused tools/timer code.

I have no idea what's going on there in src/animator.
I don't intend to investigate.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/70084cbc16ee8162649f2601377feb6e49de0217

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot

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

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

8 years agoRevert of SkTime::GetNSecs() (patchset #10 id:180001 of https://codereview.chromium...
mtklein [Fri, 23 Oct 2015 00:49:22 +0000 (17:49 -0700)]
Revert of SkTime::GetNSecs() (patchset #10 id:180001 of https://codereview.chromium.org/1422513003/ )

Reason for revert:
https://codereview.chromium.org/1412453006

Original issue's description:
> SkTime::GetNSecs()
>
>    - Move high-precision wall timers from tools/timer to SkTime.
>    - Implement SkTime::GetMSecs() in terms of SkTime::GetNSecs().
>    - Delete unused tools/timer code.
>
> I have no idea what's going on there in src/animator.
> I don't intend to investigate.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/70084cbc16ee8162649f2601377feb6e49de0217
>
> CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/a1840d50e29fd95e4df2d1168fe54c34c2a5c30c

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

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