aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Switch to a more complete method of filtering hoisted layersGravatar robertphillips2015-01-14
| | | | | | Committed: https://skia.googlesource.com/skia/+/74668a8e818fd891a08c4966cc5973b04c1ad992 Review URL: https://codereview.chromium.org/842323003
* Do some minor pre cleanup work before converting all xfermodes to XPs.Gravatar egdaniel2015-01-14
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/853543003
* Remove incremental draw optimization from SkDebugCanvasGravatar kkinnunen2015-01-13
| | | | | | | | | | | | | | | | | | | | | | | The SkDebugCanvas can be (or is currently) being used to draw to multiple different canvases. If this use-case is intended, then storing draw -related state in the canvas causes bugs. Remove incremental draw from SkDebugCanvas. It can only optimize the case where draw command index is advanced, no other changes are done and no visualization is used. This case is not that critical, as it happens only once per new frame at most. It causes bugs, because one SkDebugCanvas is used to draw to multiple canvases. Leave the draw to canvas in same state as it was passed in. This fixes the debugger bugs where: * Old, stale image would stay on the raster canvas when a new image is loaded. Also happened with resizes. * Proper image for overdraw filter would be visible only for the first frame Review URL: https://codereview.chromium.org/844493003
* fix for winvdows nvprGravatar joshualitt2015-01-13
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/804023005
* Move most of the transform logic into the primitive processorsGravatar joshualitt2015-01-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/822423004
* rename blitrow::proc and add (uncalled) hook for colorproc16Gravatar reed2015-01-13
| | | | | | BUG=skia:3302 Review URL: https://codereview.chromium.org/847443003
* fix for FB fetch on nexus 10 ES3.0Gravatar joshualitt2015-01-13
| | | | | | BUG=skia:3304 Review URL: https://codereview.chromium.org/807143006
* Revert of Switch to a more complete method of filtering hoisted layers ↵Gravatar robertphillips2015-01-13
| | | | | | | | | | | | | | | | | | (patchset #1 id:1 of https://codereview.chromium.org/842323003/) Reason for revert: nanobench woes Original issue's description: > Switch to a more complete method of filtering hoisted layers > > Committed: https://skia.googlesource.com/skia/+/74668a8e818fd891a08c4966cc5973b04c1ad992 TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/851773002
* Switch to a more complete method of filtering hoisted layersGravatar robertphillips2015-01-13
| | | | Review URL: https://codereview.chromium.org/842323003
* namespace {} trick for SK_DECLARE_STATIC_ONCEGravatar mtklein2015-01-13
| | | | | | | | | | | | | | | Like all our other SK_DECLARE_STATIC_*, it's usually not a thread-safe thing to put inside a function. Adding namespace {} prevents that syntactically. Needs https://codereview.chromium.org/841263004/ to land first. BUG=chromium:447890 No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/806473006
* Hide ARM assembly memset symbols.Gravatar torne2015-01-13
| | | | | | | | | | Prevent these symbols from being exported from any library which includes skia by marking them .hidden, as they are implementation details of skia. BUG=skia:3303 Review URL: https://codereview.chromium.org/831663004
* Simplify SkInstCntGravatar mtklein2015-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code requires fewer macros to use it (just one), has less code in macro definitions, and has simpler synchronization code (just atomic ints, no SkOnce, no SkMutex, etc.) A minor downside, we lose indentation and reverse-ordering in the final report: Leaked SkRefCntBase: 7 Leaked SkFontMgr: 1 Leaked SkWeakRefCnt: 1 Leaked SkTypeface: 1 Leaked SkFlattenable: 3 Leaked SkXfermode: 3 Leaked SkPathRef: 1 Leaked SkPixelRef: 1 Leaked SkMallocPixelRef: 1 becomes Leaked SkXfermode: 3 Leaked SkMallocPixelRef: 1 Leaked SkPixelRef: 1 Leaked SkPathRef: 1 Leaked SkFlattenable: 3 Leaked SkTypeface: 1 Leaked SkWeakRefCnt: 1 Leaked SkFontMgr: 1 Leaked SkRefCntBase: 7 This is motivated by wanting to land https://codereview.chromium.org/806473006/, which makes sure all static use of SkOnce are in global scope. The current implementation of SkInstCnt uses them in function scope, which isn't safe. BUG=skia: No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/841263004
* Generic PDF shader fallbackGravatar fmalita2015-01-13
| | | | | | | | | | | Instead of ignoring unsupported shaders (and essentially filling with solid black), convert them to bitmap shaders using on-the-fly rasterization. BUG=skia:3299 R=reed@google.com,halcanary@google.com Review URL: https://codereview.chromium.org/841763005
* In SkPDFDocument::emitPDF(), stop pre-calculating file offsets.Gravatar halcanary2015-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Streamer utility class which measures the current pdf offset by calling SkWStream::bytesWritten(). Calls SkPDFCatalog::setFileOffset() and SkPDFObject::emit() at the same time to guarantee that everything works out. * SkPDFCatalog::setFileOffset() no longer calculates the object's size. * SkPDFCatalog::setSubstituteResourcesOffsets() removed. * SkPDFCatalog::emitSubstituteResources() removed and getSubstituteList() made public in its place. * Remove SkPDFPage::getPageSize and SkPDFPage::emitPage. Replace with SkPDFPage::getContentStream(). * SkPDFObject::getOutputSize no longer virtual, only used in unit tests. All SkPDFObject subclasses getOutputSize() overrides removed. * SkPDFObject::getIndirectOutputSize removed. * PDFPrimitivesTest updated for new functions. Review URL: https://codereview.chromium.org/846023003
* remove NewTexture?Gravatar reed2015-01-13
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/831323005
* Revert of Fix GPU clipped-AA vs. non-AA drawRect discrepancy (patchset #2 ↵Gravatar robertphillips2015-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/839883003/) Reason for revert: This CL introduces rendering conflicts with hairlines (i.e., the hairlines get overwritten). These conflicts are particularly visible on the following GMs (for the Ubuntu and Android gpu configs): coloremoji & complexclip2_rrect_bw Original issue's description: > Fix GPU clipped-AA vs. non-AA drawRect discrepancy > > In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff TBR=bsalomon@google.com,jvanverth@google.com NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/847033002
* Fix GPU clipped-AA vs. non-AA drawRect discrepancyGravatar robertphillips2015-01-12
| | | | | | | | In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. BUG=423834 Review URL: https://codereview.chromium.org/839883003
* Change function signature of SkPDFObject::emitObject.Gravatar halcanary2015-01-12
| | | | | | | | | | | | | Replace virutal SkPDFObject::emitObject(s, c, true) with non-virtual SkPDFObject::emitIndirectObject(s, c), since none of the subclasses do (or should do) anything different. Replace object->emitObject(s, c, false) with object->emitObject(s, c) This is one step in simplifying the SkPDFObject interface to allow for the next step in refactoring. Review URL: https://codereview.chromium.org/827733004
* Fix overlap test for 64-bit pointers in SkMatrixGravatar qiankun.miao2015-01-12
| | | | | | BUG=skia:3297 Review URL: https://codereview.chromium.org/803493008
* Remove SK_SUPPORT_LEGACY_GRADIENT_PRECISIONGravatar fmalita2015-01-12
| | | | | | | | | No longer used by Chromium. BUG=447870 R=reed@google.com Review URL: https://codereview.chromium.org/824063004
* add stroke params to c apiGravatar reed2015-01-10
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/848553002
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | This fixes every case where virtual and SK_OVERRIDE were on the same line, which should be the bulk of cases. We'll have to manually clean up the rest over time unless I level up in regexes. for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end BUG=skia: Review URL: https://codereview.chromium.org/806653007
* Can't include SkTypes.h from ports/Gravatar Mike Klein2015-01-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/847533002
* Use error-checking mutexes in Debug builds.Gravatar mtklein2015-01-09
| | | | | | | | | Upside: our deadlock detection is now thread-safe. Downside: static mutexes on Macs won't have deadlock detection until we drop 10.6. BUG=skia:3294 Review URL: https://codereview.chromium.org/816833005
* Upstream custom freetype embolding strength from AndroidGravatar djsollen2015-01-09
| | | | | | BUG=skia:2377 Review URL: https://codereview.chromium.org/839243002
* Remove SkTileGrid (except for TileGridInfo).Gravatar mtklein2015-01-09
| | | | | | | | TBR=reed@google.com BUG=skia:3085 Review URL: https://codereview.chromium.org/845623002
* SkPDFImage no longer caches a unpremul version of N32 bitmaps.Gravatar halcanary2015-01-08
| | | | | | | | | | | This reduces PDF memory overhead by 30% over all GMs. This reduces PDF memory overhead by 41% over all SKPs in chromium-skia-gm/playback_${SKP_VERSION}/skps. BUG=skia:3030 Review URL: https://codereview.chromium.org/840653002
* Allow non-atlasable layer to still be hoistedGravatar robertphillips2015-01-08
| | | | | | The PlausiblyAtlasable check was preventing large layers from ever being hoisted in the FindLayersToHoist path. Review URL: https://codereview.chromium.org/844613002
* Work around changes in OSX 10.10.Gravatar bungeman2015-01-08
| | | | | | | | | | | | | | | | | In 10.10.1 CTFontGetAdvancesForGlyphs applies the font transform to the width of the advance but always sets the height of the advance to 0. Work around this by measuring the advance with an unrotated font and apply the transform manually. In 10.7 through 10.9 CTFontDrawGlyphs appears to take 'positions' in text space and acts like CGContextShowGlyphsAtPosition. In 10.10.1, these 'positions' now appear to be in glyph space, and CTFontDrawGlyphs maps the glyph positions internally. BUG=chromium:442574 Review URL: https://codereview.chromium.org/841843002
* Revert of Cache blur mask for rects which can not break into nine-patch ↵Gravatar qiankun.miao2015-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #10 id:200001 of https://codereview.chromium.org/729463002/) Reason for revert: revert it due to a memory leak. ==8017==ERROR: LeakSanitizer: detected memory leaks Direct leak of 25992 byte(s) in 2 object(s) allocated from: #0 0x7feb53030e0b in __interceptor_malloc (/home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/gm+0x24fe0b) #1 0x7feb54d54f76 in sk_malloc_flags(unsigned long, unsigned int) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/ports/SkMemory_malloc.cpp:54:15 #2 0x7feb54d54d4a in sk_malloc_throw(unsigned long) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/ports/SkMemory_malloc.cpp:40:12 #3 0x7feb539f5a77 in SkMask::AllocImage(unsigned long) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMask.cpp:37:22 #4 0x7feb53fe5c34 in (anonymous namespace)::copy_cacheddata_to_mask(SkCachedData*, SkMask*) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskCache.cpp:25:20 #5 0x7feb53fea064 in SkMaskCache::FindAndCopy(float, SkBlurStyle, SkBlurQuality, SkRect const*, int, SkMask*) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskCache.cpp:224:26 #6 0x7feb539f957e in SkMaskFilter::filterPath(SkPath const&, SkMatrix const&, SkRasterClip const&, SkBlitter*, SkPaint::Style) const /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkMaskFilter.cpp:270:14 #7 0x7feb5392e920 in SkDraw::drawPath(SkPath const&, SkPaint const&, SkMatrix const*, bool, bool, SkBlitter*) const /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkDraw.cpp:1117:13 #8 0x7feb53694afc in SkDraw::drawPath(SkPath const&, SkPaint const&, SkMatrix const*, bool) const /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../include/core/SkDraw.h:54:9 #9 0x7feb5368d799 in SkBitmapDevice::drawPath(SkDraw const&, SkPath const&, SkPaint const&, SkMatrix const*, bool) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkBitmapDevice.cpp:216:5 #10 0x7feb5386aa57 in SkCanvas::onDrawPath(SkPath const&, SkPaint const&) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkCanvas.cpp:1908:9 #11 0x7feb5386386b in SkCanvas::drawPath(SkPath const&, SkPaint const&) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../src/core/SkCanvas.cpp:1703:5 #12 0x7feb53109572 in Blur2RectsNonNinePatchGM::onDraw(SkCanvas*) /home/default/storage/skia-repo/buildbot/skiabot-linux-xsan-000/build/slave/Test-Ubuntu13_10-GCE-NoGPU-x86_64-Debug-ASAN/build/skia/out/Debug/../../gm/blurs.cpp:166:9 Original issue's description: > Cache blur mask for rects which can not break into nine-patch > > With this CL performance improves: > blurrectsnonninepatch 42.4us -> 20.5us 0.48x > > BUG=431021,skia:3118 > > Committed: https://skia.googlesource.com/skia/+/5a5b4e900ee69540fc35952882a323c63d6d0db9 TBR=reed@google.com,humper@google.com,reed@chromium.org NOTREECHECKS=true NOTRY=true BUG=431021,skia:3118 Review URL: https://codereview.chromium.org/844673002
* Cache blur mask for rects which can not break into nine-patchGravatar qiankun.miao2015-01-07
| | | | | | | | | With this CL performance improves: blurrectsnonninepatch 42.4us -> 20.5us 0.48x BUG=431021,skia:3118 Review URL: https://codereview.chromium.org/729463002
* add ImageGenerator::NewFromData to porting layerGravatar reed2015-01-07
| | | | | | BUG=skia:3275 Review URL: https://codereview.chromium.org/834633006
* It is dangerous to ignore SkRect::intersect's return valueGravatar robertphillips2015-01-07
| | | | | | Committed: https://skia.googlesource.com/skia/+/152f524fd325b7776b01f84afbfe2fa071648a05 Review URL: https://codereview.chromium.org/833943002
* Remove distance field generation and storage from SkGlyphCache.Gravatar jvanverth2015-01-07
| | | | | | BUG=skia:3103 Review URL: https://codereview.chromium.org/834103004
* Revert of It is dangerous to ignore SkRect::intersect's return value ↵Gravatar robertphillips2015-01-07
| | | | | | | | | | | | | | | | | | (patchset #6 id:100001 of https://codereview.chromium.org/833943002/) Reason for revert: Still more Chromium clean up to do Original issue's description: > It is dangerous to ignore SkRect::intersect's return value > > Committed: https://skia.googlesource.com/skia/+/152f524fd325b7776b01f84afbfe2fa071648a05 TBR=reed@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/825983005
* Remove macros that make it look like it's a good idea to not be able to flatten.Gravatar mtklein2015-01-07
| | | | | | | | | | | | | | | | | There are only a handful of SkFlattenables that are not flattenable. That there are any seems highly illogical. To make this look less like a normal thing, this removes both macros that marked SkFlattenables as non-flattenable (in slightly different ways). The handful of SkFlattenables in our codebase that can't be flattened now assert violently that they can't be flattened. They're internal or part of animator... places where we'll never actually flatten them. TestLooper and DummyRasterizer were so trivial that I just made them flattenable. BUG=skia: Review URL: https://codereview.chromium.org/841753002
* It is dangerous to ignore SkRect::intersect's return valueGravatar robertphillips2015-01-07
| | | | Review URL: https://codereview.chromium.org/833943002
* Verify size_t overflowGravatar sugoi2015-01-07
| | | | | | | | In 32 bits, it's possible that multiplying 2 32b values might overflow a size_t, which could be 32b unsigned in that context, so I added a check for size_t overflow. BUG=445831 Review URL: https://codereview.chromium.org/836733005
* revert buildbot breakerGravatar caryclark2015-01-07
| | | | | | | | | | | | Hals's change broke a buildbot has shown here http://build.chromium.org/p/client.skia/builders/Test-Win7-ShuttleA-HD2000-x86-Release/builds/510/steps/gm/logs/stdio Got unknown flag "--useDocumentInsteadOfDevice". Exiting. TBR=halcanary Review URL: https://codereview.chromium.org/832183006
* Rename SkDrawPictureCallback to SkPicture::AbortCallbackGravatar robertphillips2015-01-07
| | | | | | Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c Review URL: https://codereview.chromium.org/829983003
* use conics for ovals and roundrectsGravatar reed2015-01-06
| | | | | | | | | This reverts commit e3b61eb7997d12c5f9b844dd3af1847492d9f411. BUG=skia: TBR= Review URL: https://codereview.chromium.org/834303002
* Revert of Rename SkDrawPictureCallback to SkPicture::AbortCallback (patchset ↵Gravatar reed2015-01-06
| | | | | | | | | | | | | | | | | | #2 id:20001 of https://codereview.chromium.org/829983003/) Reason for revert: speculative revert to unblock DEPS roll Original issue's description: > Rename SkDrawPictureCallback to SkPicture::AbortCallback > > Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c TBR=reed@google.com,robertphillips@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/824013004
* Remove SkPDFDocument and SkPDFDevice from the public headers.Gravatar halcanary2015-01-06
| | | | | | Committed: https://skia.googlesource.com/skia/+/8b1f761365df6652ea9304b6572d2dd91917b9aa Review URL: https://codereview.chromium.org/841533002
* Comment out unused names in src/core/SkGlyphCache.hGravatar tomhudson2015-01-06
| | | | | | | | | | | | Android violates our encapsulation and depends on this file; to keep their compiles clean they want us to hide the names of unused parameters. Follow-up to https://codereview.chromium.org/726923002/. R=djsollen@google.com Review URL: https://codereview.chromium.org/839583005
* Rename SkDrawPictureCallback to SkPicture::AbortCallbackGravatar robertphillips2015-01-06
| | | | Review URL: https://codereview.chromium.org/829983003
* will write a custom one for blink laterGravatar reed2015-01-06
| | | | | | | | BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/810603003
* Revert "Remove SkPDFDocument and SkPDFDevice from the public headers."Gravatar reed2015-01-06
| | | | | | | | | | | This reverts commit 8b1f761365df6652ea9304b6572d2dd91917b9aa. BUG=skia: TBR= NOTRY=True NOTREECHECKS=True Review URL: https://codereview.chromium.org/839603002
* Remove SkPDFDocument and SkPDFDevice from the public headers.Gravatar halcanary2015-01-06
| | | | Review URL: https://codereview.chromium.org/841533002
* Require explicit disabling of cross process pictureimagefiltersGravatar robertphillips2015-01-06
| | | | | | | | This is to allow capturing .skp files with their pictureimagefilters intact. This is a companion to https://codereview.chromium.org/810933004/ (Provide a way of allowing cross process pictureimagefilters). Review URL: https://codereview.chromium.org/834673006
* fixes for conicsGravatar reed2015-01-06
| | | | | | | | | | - use std tolerance in edgebuilder, since the path has not been scaled-up to its super-sample size (that happens in the builder methods. - off-by-1 fix for pathops when using the output of the conicquadder BUG=skia: Review URL: https://codereview.chromium.org/837023002