Commit Graph

13094 Commits

Author SHA1 Message Date
mtklein
1c577cd3ee Always initialize SkDashPathEffect fields.
SkDashPathEffect is flattened into a hash key as part of the old-and-busted
SkPicture paint deduping code.  If all its fields aren't intialized, this hash
will be based on uninitialized data.  This means the hash won't be
deterministic, and worse, Valgrind and MSAN will make us feel bad.

An alternative to this is to have SkDashPath::CalcDashParameters always
guarantee it writes something to all its output parameters, even when the dash
intervals make no sense.  I like it being dumb and its users defensive, but
could go either way.

BUG=391001
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/379813004
2014-07-09 09:54:11 -07:00
mtklein
2e09d18f78 Add bounds checks to SkTDynamicHash
BUG=391001
R=bsalomon@google.com, mtklein@google.com, sugoi@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/380443002
2014-07-09 09:20:54 -07:00
tfarina
e53363fa7c Cleanup: Remove SkUTF16_Str API.
It does not have any users in Skia, Blink and Chromium.

BUG=None
TEST=make all
R=mtklein@google.com, reed@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/366243004
2014-07-09 09:18:05 -07:00
krajcevski
1459be5ae3 Optimized R11 EAC compressor
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/373243002
2014-07-09 09:15:45 -07:00
mtklein
6ac0037b70 Slim Skia down to just one murmur3 implementation.
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
2014-07-09 08:49:08 -07:00
mtklein
40b32be371 nanobench: add median and --cpu/--gpu
BUG=skia:
R=krajcevski@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/377283002
2014-07-09 08:46:50 -07:00
bsalomon
79fd216144 Revert of Make GrGLConfigConversionEffect work for Imagination and some other GPUs. (https://codereview.chromium.org/277323002/)
Reason for revert:
Need to only use the highp variations on GLES contexts not GL contexts.

http://108.170.220.120:10117/builders/Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release/builds/3398/steps/RunTests/logs/stdio

Original issue's description:
> Make GrGLConfigConversionEffect work for Imagination and some other GPUs.
>
> BUG=372341
>
> Committed: https://skia.googlesource.com/skia/+/93cf46f7d687128d2ad05762bd65fea6c4539553

R=tomhudson@chromium.org, changjun.yang@intel.com, rmistry@google.com, jcgregorio@google.com
NOTREECHECKS=true
NOTRY=true
BUG=372341

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377263003
2014-07-09 08:14:36 -07:00
epoger
6132b436d8 rebaseline_server: cache results in long-running ImageDiffDB instance
Rather than rebuilding the ImageDiffDB from scratch every time we update expected/actual results, keep the same ImageDiffDB instance around and add image pairs to it.

This makes updating results within a long-running server.py *much* faster, and tests out an idea I'm ruminating in https://goto.google.com/LongRunningImageDiffDBServer : we could run an ImageDiffDB server that developers could connect to from their locally running rebaseline_server instances, for much faster launch times.

BUG=skia:2414
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/379563005
2014-07-09 07:59:06 -07:00
mtklein
bd7746da97 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726

Committed: https://skia.googlesource.com/skia/+/4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443

R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-09 07:52:32 -07:00
scroggo
ecce60bad6 Build Android with SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.
This flag will be used on Android when built for the framework,
as well as when built for the WebView. Setting this flag for
Android means our tests can fully test CanvasStateTest.

Fix CanvasStateTest. It has bit-rotted since disabling
SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.

Splitting off from https://codereview.chromium.org/372003002/ ,
as it seems self-contained.

BUG=b/15693384
R=djsollen@google.com, reed@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/375943003
2014-07-09 07:26:40 -07:00
henrik.smiding
a9309f5e5b Add thread safety configuration check.
Enables the possibility to set thread model in the configuration
files (like Android does).
Also adds a warning check to make sure that we have an
implementation for the thread safety class.

Author: joakim.landberg@intel.com

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, torne@chromium.org, scroggo@google.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/361423003
2014-07-09 07:25:09 -07:00
changjun.yang
93cf46f7d6 Make GrGLConfigConversionEffect work for Imagination and some other GPUs.
BUG=372341
R=tomhudson@chromium.org, bsalomon@google.com

Author: changjun.yang@intel.com

Review URL: https://codereview.chromium.org/277323002
2014-07-09 06:47:29 -07:00
epoger
b4edbffd7c rebaseline_server: allow JSON to control column filtering
Makes the rebaseline_server client more generic, allowing the server to tweak display properties by writing directives into the JSON file.

Adds two new fields to the rebaseline_server JSON file (and thus increments VALUE__HEADER__SCHEMA_VERSION):
1. KEY__ROOT__EXTRACOLUMNORDER: order in which the client should display columns
2. KEY__EXTRACOLUMNHEADERS__USE_FREEFORM_FILTER: whether a column should be filtered using a freeform text field or checkboxes

BUG=skia:2230
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/376623002
2014-07-09 06:19:20 -07:00
Mike Klein
874a62acef Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."
This reverts commit 4ae94ffce5.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
2014-07-09 09:04:07 -04:00
mtklein
0b544ae222 Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:

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

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 19:37:47 -07:00
bensong
10586dc172 manual bench rebase after d3f3e58, adjusted with a26bbb95a6
R=borenet@google.com
TBR=borenet@google.com

Bypassing trybots:
NOTRY=true

Author: bensong@google.com

Review URL: https://codereview.chromium.org/377093002
2014-07-08 16:05:39 -07:00
bensong
c15ba1d544 bench rebase tool: add ability to specify a second CL for fluctuating data adjustment.
R=borenet@google.com
TBR=borenet@google.com
BUG=skia:2657
NOTRY=true

Author: bensong@google.com

Review URL: https://codereview.chromium.org/370413002
2014-07-08 14:36:56 -07:00
mtklein
d3f3e5895e Revert of Add SkRacy (https://codereview.chromium.org/371363004/)
Reason for revert:
hidden symbol 'AnnotateBenignRaceSized' in obj/base/third_party/dynamic_annotations/libdynamic_annotations.a(obj/base/third_party/dynamic_annotations/dynamic_annotations.dynamic_annotations.o) is referenced by DSO lib/libblink_platform.so

Original issue's description:
> Add SkRacy
>
> SkRacy<T> is a zero-overhead wrapper for a T, except it also
> silences race warnings when TSAN is running.
>
> Here we apply in several classes.  In SkMatrix and SkPathRef,
> we use it to opportunistically cache some idempotent work.
>
> In SkPixelRef, we wrap the genIDs.  We think the worst that
> can happen here is we'll increment the global next-genID a
> few times instead of once when we go to get another ID.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/377693005
2014-07-08 14:06:46 -07:00
mtklein
7b17547bc8 Revert of Missing volatile in AnnotateBenignRaceSized declaration. (https://codereview.chromium.org/380473002/)
Reason for revert:
sdf

Original issue's description:
> Missing volatile in AnnotateBenignRaceSized declaration.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f7a180b

R=mtklein@chromium.org
TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/379623004
2014-07-08 14:04:45 -07:00
robertphillips
92432c7f7c Fixed up SkTimedPicturePlayback
This was more motivated to remove the preDraw and postDraw virtuals from SkPicturePlayback.

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/375943002
2014-07-08 13:07:57 -07:00
Mike Klein
f7a180b10f Missing volatile in AnnotateBenignRaceSized declaration.
BUG=skia:

Review URL: https://codereview.chromium.org/380473002
2014-07-08 15:54:06 -04:00
mtklein
d5e3e6ae1b Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 12:30:39 -07:00
tomhudson
f9552230dc Add missing / in android_gdbserver
Introduced in https://codereview.chromium.org/22617002, apparently
worked just fine, at least on already-set-up devices. Failing at
least since https://codereview.chromium.org/352303003/.

BUG=skia:2729
R=djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/372273003
2014-07-08 12:29:54 -07:00
scroggo
f50a79366f Use BUILD_NATIVE_TEST instead of BUILD_EXECUTABLE.
This will generate makefiles for our tools (bench, tests, gm, dm) using
the line "include $(BUILD_NATIVE_TEST)". This has been recommended by the
Android team, as it builds both 32 bit and 64 bit versions of the test.

Do not use LOCAL_MODULE_PATH, which is deprecated (see https://docs.google.com/a/google.com/document/d/1uLAuY7_KYGx1TSzJ9SXkyevT8qNpra2ZoIBkmCoq8VM/edit# ).

Corresponds to ag/498302 , which makes this change just for bench.

R=djsollen@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/369673002
2014-07-08 11:20:58 -07:00
reed
be08aceaab add setPreserveSrcDepth to replace PrefTable API for android
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/371273007
2014-07-08 11:15:59 -07:00
jvanverth
65b6fa1777 Use stack allocation for Android data in SkScalerContext::MakeRec().
In a perfvis run on the "Boogie" test page, descriptorProc() during
detachCache() was taking .721 ms, and 20% of that was the flatten() in
MakeRec(). Changing this to a smaller stack allocation reduces the time
for descriptorProc() to .556 ms.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/372323003
2014-07-08 11:15:48 -07:00
tfarina
0a65e38560 Cleanup: Rename UnitTestTest.cpp to RTConfRegistryTest.cpp
BUG=None
TEST=make tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/374443002
2014-07-08 10:33:28 -07:00
bsalomon
0139ae3ec4 Fix param name in GrEffect::CastEffect
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/376863006
2014-07-08 10:30:38 -07:00
Robert Phillips
004522f91c Back off from SkPicture API hardening a bit
Sigh - Chromium still relies on the old clone functionality

TBR=reed@google.com

Review URL: https://codereview.chromium.org/371273006
2014-07-08 12:58:20 -04:00
bsalomon
83d081ae1d Goodbye GrEffectRef.
Also, reworked some var names and comments around SkShader::asNewEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/374923002
2014-07-08 09:56:11 -07:00
sugoi
ca95c19d27 Adding validation before using an SkImageInfo object read from an SkReadBuffer.
BUG=389574
R=senorblanco@google.com, reed@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/376803004
2014-07-08 09:18:48 -07:00
senorblanco
9ea3d57fde Clean up SkImageFilter constructors.
Now that all creation of SkImageFilters goes through
factory Create() methods, there's no real reason for the
convenience constructors. Some SkImageFilter subclasses
which actually have zero DAG-able inputs were passing NULL
to the superclass constructor. This actually means 1 input,
with a NULL value, not zero inputs. This becomes more
relevant for the upcoming cache infrastructure, where this
indicates that the filter will use its src input, where in
fact some of these filters do not (they are image generators
only).

Limiting SkImageFilter to a single constructor resolves this
ambiguity.

Along the way, I removed all of the default parameters to
the constructors, since the Create methods always call them
with the full argument list.

BUG=skia:
R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/376953003
2014-07-08 09:16:22 -07:00
robertphillips
6daadc7481 Harden SkPicture interface a bit
With the removal of SkTimedPicture we can now make more of SkPicture private.

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/377833007
2014-07-08 08:38:18 -07:00
robertphillips
1ad00e4b24 Split SkPictureRangePlayback out of SkPicturePlayback
This CL starts cleaning up SkPicturePlayback. Future CLs will:

split out the SkPictureReplacementPlayback
remove the preDraw/postDraw entry points & fix up SkPictureTimedPlayback

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/374833006
2014-07-08 08:28:08 -07:00
bsalomon
55fad7af61 Remove GrEffect::CreateEffectRef and GrEffect::AutoEffectRef.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/371103003
2014-07-08 07:34:21 -07:00
bsalomon
97b9ab72cd Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
2014-07-08 06:52:35 -07:00
mtklein
4ae94ffce5 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-08 06:48:17 -07:00
robertphillips
3afef1f75f Clean up a bit after SkPictureData/SkPicturePlayback split
This CL begins setting up the SkPicturePlayback split by simplifying the class and componentizing it a bit. It:
  fuses SkPictureData::OperationList into SkPicture::OperationList
  adds a handleOp method to SkPicturePlayback that can be reused by derived classes
  removes a couple debugging tools (ENABLE_TIME_DRAW & SPEW_CLIP_SKIPPING)

R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/378703002
2014-07-08 06:12:22 -07:00
Derek Sollenberger
6815011292 make skia_launcher be a position independent executable
R=tomhudson@google.com

Review URL: https://codereview.chromium.org/374833003
2014-07-08 08:26:21 -04:00
Derek Sollenberger
56a6b6ba9d fix WBMP image will get null color table when draw in RGB565 Canvas
Symptom: draw Index8 to RGB565 will using SkColorTable::lock16BitCache and return a null array.
Root Cause:lock16BitCache return null pointer because default type is kPremul_SkAlphaType
Solution: WBMP color table should be kOpaque_SkAlphaType
Reproduce steps: draw a WBMP with a matrix that apply rotate and transform

This patch was proposed by arthur_hung at htc.com to the AOSP project.

R=reed@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/377443007
2014-07-08 08:23:31 -04:00
djordje.pesut
a26bbb95a6 MIPS: added optimizations for functions from SkBitmapProcState
gain is ~30%

following functions are optimized:
  SI8_D16_nofilter_DX
  SI8_opaque_D32_nofilter_DX

R=djsollen@google.com, teodora.petrovic@gmail.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/336533003
2014-07-08 02:24:16 -07:00
borenet
ff64414524 Update SKP version to 45
Automatic commit by the RecreateSKPs bot.

TBR=

Author: borenet@google.com

Review URL: https://codereview.chromium.org/379523002
2014-07-07 23:36:25 -07:00
mtklein
e59304419e Flesh out SkMatrix typemask suppressions.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/374763002
2014-07-07 17:53:17 -07:00
mtklein
875da8055e Another suppression, this in SkMatrix caching the typemask.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/372103005
2014-07-07 17:18:50 -07:00
mtklein
6abc62c0c9 Suppress race to cache SkPathRef bounds.
This should be fixed naturally soon, and it's an innocuous race (some paths
may have their bounds calculated more than once), so we can just quiet it for now.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376733003
2014-07-07 16:28:46 -07:00
mtklein
eeb1f15891 Turn on threaded DMQuiltTask drawing for old-format SkPictures too.
This required the same SkBitmap copying that we added today to SkRecord.

BUG=skia:
R=reed@android.com, robertphillips@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/375703002
2014-07-07 16:17:36 -07:00
reed
beaf62da36 remove unneeded flag for android
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/372133003
2014-07-07 15:54:20 -07:00
bungeman
6f157d914e Handle close button in SkOSWindow_Unix.
Currently X with most Window managers calls 'exit' when the close button
is used. This can cause issues as the Window is not properly destroyed.
With this change we can handle this window message and properly exit.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/377733002
2014-07-07 15:46:00 -07:00
mtklein
6dd04914c8 Suppress getRefCnt() calls from SkImageFilter.
BUG=skia:2726
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/373863002
2014-07-07 15:44:00 -07:00
reed
969842ac9c Revert of Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. (https://codereview.chromium.org/377503004/)
Reason for revert:
broke linux builders

Original issue's description:
> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
>
> Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*
>
> Make GrEffectRef a typedef for GrEffect.
>
> Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/372053003
2014-07-07 15:17:49 -07:00