Commit Graph

18216 Commits

Author SHA1 Message Date
djsollen
ab51cbd9b6 Disable optimization as HWUI does not yet support color shaders.
Review URL: https://codereview.chromium.org/1235913005
2015-07-14 10:59:28 -07:00
kkinnunen
6bb6d4075b Implement support for CHROMIUM_path_rendering pseudo extension
Implement support for path rendering in Chromium through
CHROMIUM_path_rendering pseudo extension.

The extension defines a new pseudo-gl function,
BindFragmentInputLocation. This behaves similarly to the
BindUniformLocation pseudo-gl function. The idea is to assign fragment
input location to a fragment input before linking the program.

BUG=chromium:344330

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

Review URL: https://codereview.chromium.org/1192663002
2015-07-14 10:59:23 -07:00
mtklein
4be181e304 3-15% speedup to HardLight / Overlay xfermodes.
While investigating my bug (skia:4052) I saw this TODO and figured
it'd make me feel better about an otherwise unsuccessful investigation.

This speeds up HardLight and Overlay (same code) by about 15% with SSE, mostly
by rewriting the logic from 1 cheap comparison and 2 expensive div255() calls
to 2 cheap comparisons and 1 expensive div255().

NEON speeds up by a more modest ~3%.

BUG=skia:

Review URL: https://codereview.chromium.org/1230663005
2015-07-14 10:54:19 -07:00
reed
a5517e2b19 add src-rect-constraint to drawImageRect
Follow-on work
- unify around SrcRectConstraint (i.e. drawBitmapRect)
- remove silly drawBitmapRectToRect alias
- clean-up (possibly remove) alias problems around drawBitmapRect + IRect parameter

BUG=skia:

Review URL: https://codereview.chromium.org/1228083004
2015-07-14 10:54:12 -07:00
mtklein
4abc186d02 Add a GYP flag to define SKNX_NO_SIMD when set.
Will use this with a new -SKNX_NO_SIMD bot.

BUG=skia:

Review URL: https://codereview.chromium.org/1227163016
2015-07-14 05:52:52 -07:00
mtklein
bfd9ee67ef Fix typo in non-SIMD Sk4f::thenElse().
This was causing the 3 xfermodes that use floats and conditionals
to draw wrong when SKNX_NO_SIMD was defined.

BUG=skia:4051

Review URL: https://codereview.chromium.org/1229013003
2015-07-14 05:23:50 -07:00
joshualitt
6968428f44 Revert of Another trivial cleanup (patchset #6 id:100001 of https://codereview.chromium.org/1229303003/)
Reason for revert:
breaking things

Original issue's description:
> Another trivial cleanup
>
> TBR=bsalomon@google.com
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039

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

Review URL: https://codereview.chromium.org/1233853004
2015-07-13 13:29:13 -07:00
robertphillips
3d32d768cd Add new SkPoint3 class
The existing Light filter and the upcoming Lighting Shader both need a Point3 class

Review URL: https://codereview.chromium.org/1229693009
2015-07-13 13:16:44 -07:00
joshualitt
52e7657cd8 Another trivial cleanup
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1229303003
2015-07-13 13:11:40 -07:00
wangyix
c734e69e8c Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
Added bench for timing vec4 vs scalar type for coverage in shaders

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6104ced165f17eb2f765ace354d5895c0bc890c5

Review URL: https://codereview.chromium.org/1225383002
2015-07-13 13:09:17 -07:00
joshualitt
690fc75b29 Get rid of GrMurmur3Hash
BUG=skia:

Review URL: https://codereview.chromium.org/1233933002
2015-07-13 12:49:13 -07:00
caryclark
7aa1899c03 use portable typeface
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1235873004
2015-07-13 12:08:45 -07:00
mtklein
e20633ed26 Add a GM that reproduces layout test failures with my new xfermode code.
Inspired by https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/69169/layout-test-results/results.html

I think the root cause is overflow.

Also, adds tests for Sk16b::operator<().  It wasn't wrong, but it was suspect
(used in all three of these xfermode implementations) and so it's best to have
tests.

BUG=skia:

Review URL: https://codereview.chromium.org/1228393006
2015-07-13 12:06:33 -07:00
scroggo
cd8c499f2e Revert of Added a GLBench for testing performance of vec4 vs scalar for coverage in generated shaders. (patchset #4 id:40002 of https://codereview.chromium.org/1225383002/)
Reason for revert:
This is breaking a buildbot. See https://chromegw.corp.google.com/i/client.skia/builders/Test-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Debug-ANGLE/builds/172/steps/nanobench/logs/stdio

We get the following error: ERROR::SHADER::COMPLIATION_FAILED: ERROR: 0:8: '0.f' : Floating-point suffix unsupported prior to GLSL ES 3.00
ERROR: 0:8: '0.f' : syntax error

Original issue's description:
> Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
>
> Added bench for timing vec4 vs scalar type for coverage in shaders
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6104ced165f17eb2f765ace354d5895c0bc890c5

TBR=joshualitt@google.com,tomhudson@google.com,wangyix@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1235533004
2015-07-13 12:03:39 -07:00
wangyix
6104ced165 Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
Added bench for timing vec4 vs scalar type for coverage in shaders

BUG=skia:

Review URL: https://codereview.chromium.org/1225383002
2015-07-13 10:46:34 -07:00
senorblanco
24d2a7b463 Fix for partially-specified crop rects.
When only the left or top edge of a crop rect is given, the
right and bottom should be computed based on the incoming width
and height, not based on the crop rect's width & height. This
complies more accurately with SVG semantics.

BUG=240827

Review URL: https://codereview.chromium.org/1232873002
2015-07-13 10:27:05 -07:00
joshualitt
4421a4c90d small cleanups after fixing const of GrPipelineBuilder on DrawTarget
Fuse AutoRestoreFragmentProcessors and AutoRestoreProcessorDataManager into new AutoRestoreFragmentProcessorState class

BUG=skia:

Review URL: https://codereview.chromium.org/1228763005
2015-07-13 09:36:41 -07:00
joshualitt
2419b360ea Add GrNonAtomicRef
BUG=skia:

Review URL: https://codereview.chromium.org/1238523002
2015-07-13 09:29:42 -07:00
ethannicholas
b031fcf1c5 reenabled GrAALinearizingConvexPathRenderer, but only for stroked paths
Review URL: https://codereview.chromium.org/1237693002
2015-07-13 08:51:36 -07:00
joshualitt
ae3d63ad90 ovals now take a const GrPipelineBuilder
BUG=skia:

Review URL: https://codereview.chromium.org/1232163002
2015-07-13 08:44:06 -07:00
caryclark
1e545b6915 make gm text and colors portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1236893002
2015-07-13 08:19:58 -07:00
scroggo
6f818b39af Do not attempt to scale webp.
Scaling webp ends triggers warnings on our valgrind bot. It also results in
generating many images in Skia Gold that look mostly the same except
for a few pixels along the right edge.

BUG=skia:4038

Review URL: https://codereview.chromium.org/1227843005
2015-07-13 08:17:00 -07:00
mtklein
24d8249638 Tweak GYP to also link with XCode 7.
Using the XCode 7 beta, the file in the GYP doesn't exist, instead we get

/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libz.tbd

which is a text file describing libz and pointing to /usr/lib/libz.1.dylib.

There's a weird easy fix, which is that GYP looks for things in libraries like 'libz.dylib' and pattern match translates that to '-lz' on the command line.  (Infuriatingly, a literal '-lz' is interpreted as a file path...)

BUG=skia:

Review URL: https://codereview.chromium.org/1234493002
2015-07-13 08:13:03 -07:00
joshualitt
1c735488cb Start to propagate constness of GrPipelineBuilder up the stack
BUG=skia:

Review URL: https://codereview.chromium.org/1229143007
2015-07-13 08:08:25 -07:00
joshualitt
5e6ba21f07 Modify GrClipMaskManager to reflect logical constness
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1230023003
2015-07-13 07:35:05 -07:00
jvanverth
672bb7fc66 Remove GL-specific code from GMs and tests
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1232173002
2015-07-13 07:19:57 -07:00
rmistry
ab9cb427f4 Revert of Whitespace change to test Skia's new bugdroid configuration (patchset #1 id:1 of https://codereview.chromium.org/1237653002/)
Reason for revert:
More testing of bugdroid

Original issue's description:
> Whitespace change to test Skia's new bugdroid configuration
>
> BUG=chromium:509664
> NOTRY=true
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/17708398145a8ef9a7d905e2ec14017ee688f4ae

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:509664

Review URL: https://codereview.chromium.org/1234873004
2015-07-13 07:09:26 -07:00
scroggo
39a24f2994 Revert of Bilinear optimization for 1D convolution. (patchset #5 id:200001 of https://codereview.chromium.org/1216623003/)
Reason for revert:
Breaks MSAA

Original issue's description:
> Bilinear optimization for 1D convolution.
>
> Splits GrGLConvolutionEffect into GrGLBilerpConvolutionEffect and
> GrGLBoundedConvolutionEffect. When doing a non-bounded convolution we now
> always use the GrGLBilerpConvolutionEffect which uses bilinear filtering to
> perform half as many samples in the texture.
>
> BUG=skia:3986
>
> Committed: https://skia.googlesource.com/skia/+/91abe10af417148939548551e210c001022d3bda

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

Review URL: https://codereview.chromium.org/1231383005
2015-07-13 07:06:45 -07:00
rmistry
1770839814 Whitespace change to test Skia's new bugdroid configuration
BUG=chromium:509664
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1237653002
2015-07-13 06:35:15 -07:00
nodir
db8e4382a4 Skia project metadata
Added project.cfg metadata file for chrome-infra

R=borenet@google.com, rmistry@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507723

Review URL: https://codereview.chromium.org/1231383004
2015-07-13 06:23:24 -07:00
mtklein
f059900f75 Fix up -Winconsistent-missing-override
(and a couple presubmit fixes)

This allows us to turn back on -Werror for LLVM coverage builds,
and more generally supports building with Clang 3.7.

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

BUG=skia:

Review URL: https://codereview.chromium.org/1232463006
2015-07-13 06:18:39 -07:00
mtklein
4598fc3c12 Use SK_DECLARE_STATIC_MUTEX for global mutex.
This initializes the mutex at link time on non-Windows platforms,
rather than at pre-main-runtime like `static SkMutex gFoo;`

BUG=skia:

Review URL: https://codereview.chromium.org/1226403007
2015-07-13 06:15:36 -07:00
Derek Sollenberger
bd3e8cb42c Cleanup skia test harness due to changes to DisplayListCanvas
Review URL: https://codereview.chromium.org/1235823003 .
2015-07-13 08:47:21 -04:00
caryclark
2e096609b2 make convex poly clip portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1238483002
2015-07-13 05:39:47 -07:00
skia.buildbots
0c606f493f Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1231323002
2015-07-12 00:19:05 -07:00
ericrk
91abe10af4 Bilinear optimization for 1D convolution.
Splits GrGLConvolutionEffect into GrGLBilerpConvolutionEffect and
GrGLBoundedConvolutionEffect. When doing a non-bounded convolution we now
always use the GrGLBilerpConvolutionEffect which uses bilinear filtering to
perform half as many samples in the texture.

BUG=skia:3986

Review URL: https://codereview.chromium.org/1216623003
2015-07-10 15:05:13 -07:00
joshualitt
3989205322 remove some unused stuff
BUG=skia:

Review URL: https://codereview.chromium.org/1231163002
2015-07-10 14:14:03 -07:00
reed
d0f4173fb0 add option to use global mutex-lock in mac-scalercontext
BUG=413332

Review URL: https://codereview.chromium.org/1220873009
2015-07-10 12:08:38 -07:00
scroggo
9b2cdbf481 Allow creating multiple scanline decoders.
Make getScanlineDecoder return a new object each time, which is
owned by the caller, and independent from any existing scanline
decoders and the SkCodec itself.

Since the SkCodec already contains the entire state machine, and it
is used by the scanline decoders, simply create a new SkCodec which
is now owned by the scanline decoder.

Move code that cleans up after using a scanline decoder into its
destructor

One side effect is that creating the first scanline decoder requires
a duplication of the stream and re-reading the header. (With some
more complexity/changes, we could pass the state machine to the
scanline decoder and make the SkCodec recreate its own state machine
instead.) The typical client of the scanline decoder (region decoder)
uses an SkMemoryStream, so the duplication is cheap, although we
should consider the extra time to reread the header/recreate the state
machine. (If/when we use the scanline decoder for other purposes,
where the stream may not be cheaply duplicated, we should consider
passing the state machine.)

One (intended) result of this change is that a client can create a
new scanline decoder in a new thread, and decode different pieces of
the image simultaneously.

In SkPngCodec::decodePalette, use fBitDepth rather than a parameter.

Review URL: https://codereview.chromium.org/1230033004
2015-07-10 12:07:02 -07:00
joshualitt
f9c5db26b4 Trivial cleanup
TBR=robertphillips@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1229913007
2015-07-10 11:31:01 -07:00
scroggo
33d35263bf Move android_gdb_tmp into out/
This way it will be ignored.

Review URL: https://codereview.chromium.org/1230773003
2015-07-10 11:05:10 -07:00
msarett
718e41dcb0 Fix msvs builds
BUG=skia:

Review URL: https://codereview.chromium.org/1229303002
2015-07-10 10:59:47 -07:00
scroggo
139491fbaa Use the upstream version of libwebp, v0.4.3.
DEPS:
Update to pull v0.4.3 of libwebp from upstream

gyp/libwebp.gyp:
Add new files, as referenced by the gyp file used by Chromium.

resource/tests:
Add regression tests for particular images.

BUG=skia:3442
BUG=skia:3315
BUG=skia:3429

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

Review URL: https://codereview.chromium.org/1178013008
2015-07-10 09:32:09 -07:00
joshualitt
416e14f517 fix for valgrind issue
BUG=skia:

Review URL: https://codereview.chromium.org/1227933003
2015-07-10 09:05:57 -07:00
dongseong.hwang
5ce8b438da Fix componene debug build failure in chromium
The error log is as follows:
../../third_party/skia/include/core/SkSpinlock.h:24: error: undefined reference to 'SkPODSpinlock::contendedAcquire()'
collect2: error: ld returned 1 exit status

[mtklein added below here]
Despite the presence in include/ and the added SK_API, this file is not part of Skia's public API... it's just used by files which are.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1229003004
2015-07-10 08:32:23 -07:00
emmaleer
21cea726e7 Changing name of has_transpareny_in_palette to has_transparency_in_tRNS
This function checks for transparency info in the tRNS chunk
Other images besides paletted images can have tRNS chunks,
including Gray8 and RGB

has_transparency_in_tRNS is a better name for the function

BUG=skia:

Review URL: https://codereview.chromium.org/1224453002
2015-07-10 07:48:03 -07:00
joshualitt
5b4f05f709 Move GrProcessorDataManager to GrMemoryPool
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1225363002
2015-07-10 07:26:21 -07:00
joel.liang
9764c40cd3 Workaround for blacklist KHR_blend_equation_advanced on ARM GPU
ARM driver will check the fragment shader compatiblity for KHR_blend_equation_advanced even if blending is disabled.
Workaround: Set blending equation to any basic equation when we disable blending.
https://code.google.com/p/skia/issues/detail?id=3943

BUG=skia:3943

Review URL: https://codereview.chromium.org/1216963004
2015-07-09 19:46:18 -07:00
fmalita
ea561bf055 Fix SkImage::asLegacyBitmap() rowBytes assert
When reusing the pixel ref, we need to observe its rowBytes.

R=reed@google.com

Review URL: https://codereview.chromium.org/1227413002
2015-07-09 17:10:31 -07:00
mtklein
694307c9f1 Let's not leak this SkData.
BUG=skia:

Review URL: https://codereview.chromium.org/1231903006
2015-07-09 15:41:11 -07:00