aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Change SkResourceCache to take a Visitor inside its find().Gravatar reed2014-09-15
| | | | | | | | | | | This reverts commit 595aa05efcb504e85358b8d328ac4a9fa1c46e2e. BUG=skia: R=mtklein@google.com, danakj@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/569353002
* Fix recording of saveLayout with unusual Xfermodes.Gravatar dneto2014-09-15
| | | | | | | | | | | | This is the root cause of a Chrome rendering bug when it tiles layers with masks. BUG=skia:1291,chromium:401593 R=reed@google.com, mtklein@google.com, junov@chromium.org Author: dneto@chromium.org Review URL: https://codereview.chromium.org/568073004
* Revert of Change SkResourceCache to take a Visitor inside its find(). ↵Gravatar reed2014-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:20001 of https://codereview.chromium.org/567393002/) Reason for revert: crashes on android bots, haven't diagnosed yet Original issue's description: > Change SkResourceCache to take a Visitor inside its find(). > > This simplifies the API/contract, in that there are not any exposed > lock/unlock scopes. > > > patch from issue 572573002 > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/dee6a8e67db39fcbde2b3bb09be1d088ebb9db8a R=mtklein@google.com, danakj@chromium.org TBR=danakj@chromium.org, mtklein@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@google.com Review URL: https://codereview.chromium.org/569303002
* Add flag to call SkRecordOptimize on new pictures.Gravatar mtklein2014-09-15
| | | | | | | | | | | As usual it's enabled by default in the Skia tree. Will flip in Chrome after this rolls. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/573773002
* add dumpHex() option to SkPathGravatar caryclark2014-09-15
| | | | | | | | | | | | | This provides exact precision to help debugging when the float representation of a SkScalar may introduce error. R=reed@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/571973003
* Create an optimized draw state but not hooked in yet to gpu pipelineGravatar egdaniel2014-09-15
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/508663002
* Change SkResourceCache to take a Visitor inside its find().Gravatar reed2014-09-15
| | | | | | | | | | | | | | This simplifies the API/contract, in that there are not any exposed lock/unlock scopes. patch from issue 572573002 BUG=skia: R=mtklein@google.com, danakj@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/567393002
* Revert of Picture Recording: fix the performance bottleneck in ↵Gravatar mtklein2014-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkDeferredCanvas::isFullFrame (patchset #7 id:140001 of https://codereview.chromium.org/545813002/) Reason for revert: This is leaking memory: http://108.170.220.120:10117/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/2516/steps/RunDM/logs/stdio Original issue's description: > Picture Recording: fix the performance bottleneck in SkDeferredCanvas::isFullFrame > > blink skips all pending commands during picture recording if it is drawing an opaque full-frame > geometry or image. This may improve performance for some edge cases. To recognize an opaque > full-frame drawing should be cheap enough. Otherwise, the overhead will offset the improvement. > Unfortunately, data from perf for content_shell on Nexus7 shows that SkDeferredCanvas::isFullFrame > is far from cheap. Table below shows that how much isFullFrame() costs in the whole render process. > > benchmark percentage > my local benchmark(draw 1000 sprites) 4.1% > speedReading 2.8% > FishIETank(1000 fishes) 1.5% > GUIMark3 Bitmap 2.0% > > By contrast, real recording (SkGPipeCanvas::drawBitmapRectToRect) and real rasterization > (GrDrawTarget::drawRect) cost ~4% and ~6% in the whole render process respectively. Apparently, > SkDeferredCanvas::isFullFrame() is nontrivial. > > getDeviceSize() is the main contributor to this hotspot. The change simply save the canvasSize and > reuse it among drawings if it is not a fresh frame. This change cut off ~65% (or improved ~2 times) > of isFullFrame(). > > telemetry smoothness canvas_tough_test didn't show obvious improvement or regression. > > BUG=411166 > > Committed: https://skia.googlesource.com/skia/+/8e45c3777d886ba3fe239bb549d06b0693692152 R=junov@chromium.org, tomhudson@google.com, reed@google.com, yunchao.he@intel.com TBR=junov@chromium.org, reed@google.com, tomhudson@google.com, yunchao.he@intel.com NOTREECHECKS=true NOTRY=true BUG=411166 Author: mtklein@google.com Review URL: https://codereview.chromium.org/571053002
* remove 'experimental' from using hash tables in resourcecacheGravatar reed2014-09-14
| | | | | | | | TBR= Author: reed@chromium.org Review URL: https://codereview.chromium.org/567303002
* Picture Recording: fix the performance bottleneck in ↵Gravatar yunchao.he2014-09-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkDeferredCanvas::isFullFrame blink skips all pending commands during picture recording if it is drawing an opaque full-frame geometry or image. This may improve performance for some edge cases. To recognize an opaque full-frame drawing should be cheap enough. Otherwise, the overhead will offset the improvement. Unfortunately, data from perf for content_shell on Nexus7 shows that SkDeferredCanvas::isFullFrame is far from cheap. Table below shows that how much isFullFrame() costs in the whole render process. benchmark percentage my local benchmark(draw 1000 sprites) 4.1% speedReading 2.8% FishIETank(1000 fishes) 1.5% GUIMark3 Bitmap 2.0% By contrast, real recording (SkGPipeCanvas::drawBitmapRectToRect) and real rasterization (GrDrawTarget::drawRect) cost ~4% and ~6% in the whole render process respectively. Apparently, SkDeferredCanvas::isFullFrame() is nontrivial. getDeviceSize() is the main contributor to this hotspot. The change simply save the canvasSize and reuse it among drawings if it is not a fresh frame. This change cut off ~65% (or improved ~2 times) of isFullFrame(). telemetry smoothness canvas_tough_test didn't show obvious improvement or regression. BUG=411166 R=junov@chromium.org, tomhudson@google.com, reed@google.com Author: yunchao.he@intel.com Review URL: https://codereview.chromium.org/545813002
* Add support for the Rec601 YUV color space to GrYUVtoRGBEffect.Gravatar rileya2014-09-12
| | | | | | | | R=bsalomon@google.com, senorblanco@chromium.org, sugoi@chromium.org, reed@google.com Author: rileya@chromium.org Review URL: https://codereview.chromium.org/516463005
* Handle NULL typeface in SkFontMgr_fontconfig::onMatchFaceStyle.Gravatar bungeman2014-09-12
| | | | | | | | | | SampleApp does this, and it needs to be handled properly. R=mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/563263003
* use SkData::NewUninitializedGravatar reed2014-09-12
| | | | | | | | | BUG=skia: R=bungeman@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/565803005
* Let SkTaskGroup work synchronously if no one created an SkTaskGroup::Enabler.Gravatar mtklein2014-09-12
| | | | | | | | | | | Tested by running DM with its SkTaskGroup::Enabler commented out. Slow, but completed correctly. BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/556223003
* Add more debugging for newly failing assert (DM on Xoom bots).Gravatar Mike Klein2014-09-12
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/568823002
* remove confusing/unused stream methodsGravatar reed2014-09-12
| | | | | | | | | BUG=skia: R=bungeman@google.com, djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/563273003
* add PurgeResourceCache to track leaksGravatar reed2014-09-11
| | | | | | | | TBR=halcananry Author: reed@google.com Review URL: https://codereview.chromium.org/554263005
* Make SkBitmapCache remove invalid bitmaps from the SkResourceCache.Gravatar danakj2014-09-11
| | | | | | | | | | | | | | | | | | | | | | This adds SkResourceCache::Remove() which will remove a resource from its cache. The resource is required to be unlocked at the time Remove() is called. Then SkBitmapCache::Find() makes use of this to Remove() bitmaps from the cache whose pixels have been evicted. This allows the bitmap to be re-added to the cache with pixels again. After this change, background a tab (and discarding all the bitmaps' contents) no longer disables image caching for those discarded images once the tab is visible again. BUG=skia:2926 NOTRY=true R=reed@android.com, tomhudson@google.com, reed@google.com Author: danakj@chromium.org Review URL: https://codereview.chromium.org/561953002
* SkData can allocate room for its contents in the same blockGravatar reed2014-09-11
| | | | | | | | | BUG=skia: R=bungeman@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/560653004
* Delay any SkRecordOptimize until after SkRecord has stuck.Gravatar mtklein2014-09-10
| | | | | | | | | BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/561993002
* Fix a bug in Save-Restore no-op optimization.Gravatar mtklein2014-09-10
| | | | | | | | | | | | | | | | | | | | | | | We optimize Save SaveLayer Restore Restore into NoOp NoOp NoOp Restore I'm considering skipping the call to SkRecordOptimize again just to eliminate this extra variable from landing SkRecord. Thoughts? BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/560163002
* Remove a layer of indirection and code from SkFontHost.Gravatar bungeman2014-09-10
| | | | | | | | R=mtklein@google.com, tomhudson@google.com, djsollen@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/105223006
* Revert of Added test for non cached ETC1 (patchset #2 id:20001 of ↵Gravatar bungeman2014-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/564493002/) Reason for revert: This is causing dm and gm to crash on the Win8 7770 bots, for example http://108.170.220.120:10117/builders/Test-Win8-ShuttleA-HD7770-x86-Debug/builds/2128 An example stack trace looks like [13:46:16.260000] -1M drawing... extractbitmap [600 600] [13:46:16.760000] -1M drawing... etc1bitmap_npot [124 124] [13:46:16.760000] -1M drawing... etc1bitmap_r11.ktx [128 128] [13:46:16.760000] -1M drawing... etc1bitmap_ktx [128 128] [13:46:16.760000] -1M drawing... etc1bitmap_pkm_volatile [128 128] [13:46:16.760000] [13:46:16.760000] Caught exception 3221225477 EXCEPTION_ACCESS_VIOLATION [13:46:16.760000] sk_gr_allocate_texture +c9 [13:46:16.760000] load_etc1_texture +1dd [13:46:16.760000] sk_gr_create_bitmap_texture +199 [13:46:16.760000] GrLockAndRefCachedBitmapTexture +ad [13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::set +5d [13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::SkAutoCachedTexture +65 [13:46:16.760000] SkGpuDevice::internalDrawBitmap +8e [13:46:16.760000] SkGpuDevice::drawBitmapCommon +608 [13:46:16.760000] SkGpuDevice::drawBitmap +79 [13:46:16.760000] SkCanvas::internalDrawBitmap +11b [13:46:16.760000] SkCanvas::drawBitmap +d3 [13:46:16.760000] skiagm::ETC1BitmapGM::onDraw +140 [13:46:16.760000] skiagm::GM::drawContent +3c [13:46:16.760000] skiagm::GM::draw +24 [13:46:16.760000] GMMain::invokeGM +63 [13:46:16.760000] GMMain::generate_image +186 [13:46:16.760000] GMMain::test_drawing +5b [13:46:16.760000] run_multiple_configs +2f9 [13:46:16.760000] tool_main +75d [13:46:16.760000] main +16 [13:46:16.760000] __tmainCRTStartup +199 [13:46:16.760000] mainCRTStartup +d [13:46:16.760000] BaseThreadInitThunk +e [13:46:16.760000] RtlInitializeExceptionChain +84 [13:46:16.760000] RtlInitializeExceptionChain +5a Original issue's description: > Added test for non cached ETC1 > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/d9ec549071581d9d1dc2e5fac3163305ae935a39 R=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com, sugoi@chromium.org TBR=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com, sugoi@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Author: bungeman@google.com Review URL: https://codereview.chromium.org/559093003
* Fixed void* to uint64_t cast on win64 in TraceID.Gravatar cjacek2014-09-10
| | | | | | | | | | | | On win64, long is 32-bit. Found by GCC (mingw-w64) build, where this causes an error. This is the Skia version of https://codereview.chromium.org/374043002 . R=bungeman@google.com, humper@google.com Author: cjacek@gmail.com Review URL: https://codereview.chromium.org/510923002
* Added test for non cached ETC1Gravatar sugoi2014-09-10
| | | | | | | | | BUG=skia: R=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/564493002
* Fix iteration bounds of Android GL API initializationGravatar tomhudson2014-09-10
| | | | | | | | | | | | | A dormant error in https://codereview.chromium.org/319043005 was exposed on some new platforms; this makes sure loop iterations are bounded. BUG= R=joshualitt@google.com, joshualitt@chromium.org Author: tomhudson@google.com Review URL: https://codereview.chromium.org/557363002
* make set3DMask virtual, so we can safely notify the shadercontextGravatar reed2014-09-10
| | | | | | | | | | | also boost preallocated storage to account for this combo of bitmapshader + emboss + colorfilter BUG=skia: R=djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/563563002
* Detect presence of dwrite_1.h.Gravatar bungeman2014-09-10
| | | | | | | | | | | | | | | | | | This introduces the SK_HAS_DWRITE_1_H define which may be set at build time or will be true when WINVER_MAXVER >= 0x0602 . The dwrite_1.h header is available starting in Windows SDK 8.0. This change supports users who must still use Windows SDK 7.0. It also allows for easier local testing of the older interfaces on newer versions of Windows. See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1053652 R=george@mozilla.com, mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/552383002
* Revert of Revert of allow canvas to force conservative clips (for speed) ↵Gravatar reed2014-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #1 id:1 of https://codereview.chromium.org/554033003/) Reason for revert: May just rebaseline, plus want to see the results of the chrome tests, so re-trying this CL. Original issue's description: > Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/) > > Reason for revert: > multipicturedraw failed on nvprmsaa -- don't know why yet > > Original issue's description: > > Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects: > > > > 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often. > > > > 2. The conservative clips mean less work is done. > > > > 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases. > > > > 4. API is private for now. > > > > Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241 > > TBR=robertphillips@google.com,bsalomon@google.com,mtklein@google.com,junov@google.com > NOTREECHECKS=true > NOTRY=true > > Committed: https://skia.googlesource.com/skia/+/6f09709519b79a1159f3826645f1c5fbc101ee11 R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com, reed@google.com TBR=bsalomon@google.com, junov@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: reed@chromium.org Review URL: https://codereview.chromium.org/560713002
* Revert of allow canvas to force conservative clips (for speed) (patchset #7 ↵Gravatar reed2014-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:120001 of https://codereview.chromium.org/541593005/) Reason for revert: multipicturedraw failed on nvprmsaa -- don't know why yet Original issue's description: > Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects: > > 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often. > > 2. The conservative clips mean less work is done. > > 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases. > > 4. API is private for now. > > Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241 R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com TBR=bsalomon@google.com, junov@google.com, mtklein@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: reed@google.com Review URL: https://codereview.chromium.org/554033003
* Add font fallback support to SkFontMgr_fontconfig.Gravatar bungeman2014-09-09
| | | | | | | | R=mtklein@google.com, djsollen@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/489733005
* When parsing arguments on Windows, check malloc() for failure.Gravatar senorblanco2014-09-09
| | | | | | | | | | | | Note: this code is only executed by Skia utilities AFAIK, not by external clients. BUG=skia:2642 R=reed@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/548343002
* Update the alias mapping for Noto Sans CJK.Gravatar jshin2014-09-09
| | | | | | | | | | | | | | | | | | | To make the family names 'future-proof', we decided to shorten the name of Noto Sans CJK, which requires a change in the alias table in Skia. Chrome OS CL (actually updating the fonts) and Chrome CL (updating the font preferences on CrOS) are going together with this CL. BUG=412151 TEST=With the above two CLs in on Chrome OS, Noto Sans CJK {JP, SC} are used when MS P Gothic / Simhei are asked for by a web page. R=bungeman@google.com Author: jshin@chromium.org Review URL: https://codereview.chromium.org/554943002
* Allow SkCanvas to be initialized to force conservative rasterclips. This has ↵Gravatar reed2014-09-09
| | | | | | | | | | | | | | | | | | the following effects: 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often. 2. The conservative clips mean less work is done. 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases. 4. API is private for now. R=robertphillips@google.com, bsalomon@google.com, mtklein@google.com, junov@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/541593005
* Outset the stroke width when computing the bounds for drawing a stroked ↵Gravatar george2014-09-09
| | | | | | | | | | | | | rect, or 1 if it's a hairline Adds a testcase for stroke rect bug R=reed@google.com, reed1 BUG=skia: Author: george@mozilla.com Review URL: https://codereview.chromium.org/552743004
* Allow negative values in SkBlurImageFilter sigma.Gravatar senorblanco2014-09-09
| | | | | | | | | | | | | | | | | | | | | There are two ways negative sigma values may occur: in the original filter parameters, or after multiplication by a negative scaling CTM. The former case is invalid according to the spec, so we continue to check for it at validation time. In the latter case, we should interpret it as a horizontal flip in the kernel pixel access, and simply take the absolute value (since the filter kernel is symmetric). Also refactor all this logic into a single place for the CPU, GPU and onFilterBounds() paths. BUG=https://code.google.com/p/chromium/issues/detail?id=409602 R=sugoi@google.com, reed@google.com, sugoi@chromium.org Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/555603002
* Revert of Use SkBitmapCache to optimize readPixels on a texture-backed ↵Gravatar fmalita2014-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | bitmap (patchset #6 id:100001 of https://codereview.chromium.org/533323002/) Reason for revert: Component inversions in Blink's printing/webgl-repeated-printing.html: https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/24033/layout-test-results/printing/webgl-repeated-printing-diff.txt Reverting to unblock rolls. Original issue's description: > Use SkBitmapCache to optimize readPixels on a texture-backed bitmap > > BUG=skia:2786 > > Committed: https://skia.googlesource.com/skia/+/95fd68e5ccd242a91e6dd827dd695f18661efbe6 R=junov@chromium.org, reed@google.com, bsalomon@google.com, piotaixr@chromium.org TBR=bsalomon@google.com, junov@chromium.org, piotaixr@chromium.org, reed@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2786 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/551523003
* Adding texture uploads without cache for YUV and ETC1Gravatar sugoi2014-09-09
| | | | | | | | | BUG=skia: R=bsalomon@google.com, robertphillips@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/552843004
* SkRasterClip::quickReject doesn't need to check for emptiness as ↵Gravatar george2014-09-09
| | | | | | | | | | | SkIRect::Intersect already does that for us R=reed@google.com, reed1 BUG=skia: Author: george@mozilla.com Review URL: https://codereview.chromium.org/554743007
* Remove a linear search in SkPictureRecord::addTextBlob.Gravatar jbroman2014-09-08
| | | | | | | | | | | | | It doesn't seem that harmful to have repeated text blobs in the array if they occur within the same picture recording. And that does not seem to be a common occurrence right now anyhow. BUG=skia:2919 R=fmalita@chromium.org, reed@google.com, mtklein@google.com Author: jbroman@chromium.org Review URL: https://codereview.chromium.org/550043003
* Fix two SkRecord-backed layer hoisting bugsGravatar robertphillips2014-09-08
| | | | | | | | | | | | | | | The two bugs are/were: The old loop to draw the hoisted layers included the saveLayer call which caused double application of the layer's paint (This is the +1 change). The hoisted layer is intended to be drawn in device coordinates. The old code was drawing it in the coordinate space of the saveLayer thus it was misplaced (This is the setMatrix change). Committed: https://skia.googlesource.com/skia/+/7c0cfd4ff8f6db50a8731c886db732b106268937 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/551843002
* Remove extra proctected in GrRODrawState.hGravatar egdaniel2014-09-08
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/550243002
* fail when coincidence is too far apartGravatar caryclark2014-09-08
| | | | | | | | | TBR= BUG=410552 Author: caryclark@google.com Review URL: https://codereview.chromium.org/556433002
* Revert of Fix two SkRecord-backed layer hoisting bugs (patchset #1 id:1 of ↵Gravatar robertphillips2014-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/551843002/) Reason for revert: turning bots red Original issue's description: > Fix two SkRecord-backed layer hoisting bugs > > The two bugs are/were: > The old loop to draw the hoisted layers included the saveLayer call which caused double application of the layer's paint (This is the +1 change). > > The hoisted layer is intended to be drawn in device coordinates. The old code was drawing it in the coordinate space of the saveLayer thus it was misplaced (This is the setMatrix change). > > Committed: https://skia.googlesource.com/skia/+/7c0cfd4ff8f6db50a8731c886db732b106268937 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/553983003
* Fix two SkRecord-backed layer hoisting bugsGravatar robertphillips2014-09-08
| | | | | | | | | | | | | The two bugs are/were: The old loop to draw the hoisted layers included the saveLayer call which caused double application of the layer's paint (This is the +1 change). The hoisted layer is intended to be drawn in device coordinates. The old code was drawing it in the coordinate space of the saveLayer thus it was misplaced (This is the setMatrix change). R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/551843002
* Turn on the save-layer optimization.Gravatar mtklein2014-09-08
| | | | | | | | | BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/551853002
* Use SkBitmapCache to optimize readPixels on a texture-backed bitmapGravatar piotaixr2014-09-08
| | | | | | | | | BUG=skia:2786 R=junov@chromium.org, reed@google.com, bsalomon@google.com Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/533323002
* Turn on all pixel-perfect SkRecord optimizations.Gravatar mtklein2014-09-08
| | | | | | | | | BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/550083006
* move rasterclip_ helper into rasterclipGravatar reed2014-09-05
| | | | | | | | R=robertphillips@google.com, reed@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/546113002
* Make GrDrawState and GrEffectStage use the pending io/exec ref mechanisms.Gravatar bsalomon2014-09-05
| | | | | | | | | BUG=skia:2889 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/542723004