aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* Update GrRecordReplaceDraw to use SkTDynamicHash & add ReplaceDrawGravatar robertphillips2014-10-01
| | | | | | | | | | | | Having hoisted layers from different pictures invalidates the assumptions of the old GrReplacements object. This is fixed by switching to a SkTDynamicHash-based back-end. Sub-picture-layers also require that the replacement drawing occur for the sub-pictures too. The ReplaceDraw object is added to make this happen and limit the replacement lookup to saveLayer draw commands. This is split out of (Fix sub-picture layer rendering bugs - https://codereview.chromium.org/597293002/). BUG=skia:2315 Review URL: https://codereview.chromium.org/607763008
* optimize setRectFan and join -- from profiling drawTextGravatar reed2014-10-01
| | | | | | | | BUG=skia: NOTREECHECKS=True NOTRY=True Review URL: https://codereview.chromium.org/615993003
* Archive more dead code.Gravatar mtklein2014-09-30
| | | | | | | | | BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/617003004
* Strip old backend recording down to essentialsGravatar mtklein2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | Feature-wise, this removes: 1) BBH support; 2) peephole optimizations; 3) record-time text op specializations; 4) the guarantee that SkPaints are flattened. This deletes the optimizations GM, which only exists to test the peepholes of the old backend. SkRecord optimizations are unit tested, and if that ever fails we can think about adding another GM like this, but they're different enough we'd want to start from scratch anyway. We need to keep the code that plays back the specialized text ops around for a while for compatibility with existing .SKPs that have those ops recorded. BUG=skia: CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot R=robertphillips@google.com, reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/617953002
* Make "priv" classes for GrTexure and GrSurface.Gravatar bsalomon2014-09-30
| | | | | | | | R=robertphillips@google.com, egdaniel@google.com, joshualitt@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/596053002
* Clean up SK_PICTURE_USE_SK_RECORD and SK_PICTURE_OPTIMIZE_SK_RECORD.Gravatar mtklein2014-09-30
| | | | | | | | | | | | | | | | | This folds the code through as if they were defined, which is the explicit state in both our build and Chrome's. This leaves the EXPERIMENTAL_ and DEPRECATED_ hooks in to be cleaned up or privatized later. CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot BUG=skia: R=reed@google.com, robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/616033002
* Allow previously-hoisted layers to be reused in the same drawGravatar robertphillips2014-09-30
| | | | | | | | | | | | | In the Sierpinkski test case there are only a few layers appear in the "to be drawn" lists but they those layers get reused a lot of times with different transforms. This CL adds an additional category to allow such layers to be placed in the GrReplacements object without needing to be rendered. This is split out of (Fix sub-picture layer rendering bugs - https://codereview.chromium.org/597293002/) BUG=skia:2315 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/616023002
* Remove support for SkPicture::clone().Gravatar mtklein2014-09-30
| | | | | | | | | | | | | | | | This folds SK_SUPPORT_LEGACY_PICTURE_CLONE through as undefined. Chrome's not used clone() for a month or two, and we don't use it ourselves. Don't think Android ever did. CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot BUG=skia: R=reed@google.com, mtklein@google.com, robertphillips@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/620533002
* remove obsolete code for SK_SUPPORT_LEGACY_IMAGEGENERATORAPIGravatar reed2014-09-30
| | | | | | | | | BUG=skia: R=reed@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/613933002
* Archive SkFloatGravatar mtklein2014-09-30
| | | | | | | | | | | | https://crrev.com/610153002/ reminded me that it existed, but it's entirely unused and made moot by hardware FP. Might as well trim a few K off libskia. BUG=skia: R=reed@google.com, mtklein@google.com, tfarina@chromium.org Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/619563003
* specialize setConcat for scale+translate, helps drawText perfGravatar reed2014-09-30
| | | | | | | | | BUG=skia: R=jvanverth@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/620433002
* Revert of Make "priv" classes for GrTexure and GrSurface. (patchset #9 ↵Gravatar robertphillips2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | id:260001 of https://codereview.chromium.org/596053002/) Reason for revert: Breaking the Chrome builds with: lib/libcc.so: error: undefined reference to 'GrAutoScratchTexture::detach()' (http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-DRT/builds/2990/steps/Retry_BuildContentShell_1/logs/stdio) Original issue's description: > Make "priv" classes for GrTexure and GrSurface. R=egdaniel@google.com, joshualitt@google.com, bsalomon@google.com TBR=bsalomon@google.com, egdaniel@google.com, joshualitt@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/618733002
* Revert of GrResourceCache2 manages scratch texture. (patchset #14 id:260001 ↵Gravatar robertphillips2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/608883003/) Reason for revert: Turning bots red: Nanobench seems to be uniformly failing on Android (http://108.170.220.21:10117/builders/Perf-Android-Venue8-PowerVR-x86-Release/builds/99/steps/RunNanobench/logs/stdio) Ubuntu GTX660 32bit is failing in both Debug and Release on GM generation (it appears to be out of memory) (http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Debug/builds/2457/steps/GenerateGMs/logs/stdio) Original issue's description: > GrResourceCache2 manages scratch texture. > > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/3d398c876440deaab39bbf2a9b881c337e6dc8d4 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: robertphillips@google.com Review URL: https://codereview.chromium.org/611383003
* GrResourceCache2 manages scratch texture.Gravatar bsalomon2014-09-30
| | | | | | | | | BUG=skia: R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/608883003
* Make "priv" classes for GrTexure and GrSurface.Gravatar bsalomon2014-09-29
| | | | | | | | R=robertphillips@google.com, egdaniel@google.com, joshualitt@google.com, joshualitt@chromium.org Author: bsalomon@google.com Review URL: https://codereview.chromium.org/596053002
* remove alphatype from colortableGravatar reed2014-09-29
| | | | | | | | | | | the owning bitmap is (already) responsible for knowing the alphatype BUG=skia: R=djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/611093002
* Move offset and CTM from LayerCache Key to per-hoisted-layer infoGravatar robertphillips2014-09-29
| | | | | | | | | | | | | | | | | | This CL reduces the amount of information used in the layer cache key: - the stop value isn't needed since the start value uniquely identifies the layer in the picture. - only the upper-left 2x2 portion of the CTM should be used as a key for looking up cached layers. - individual layers can be redraw in different locations so the final offset cannot be a part of the key. Since this data is no longer stored in the cached layer, but is still required to draw the cached layer, it is now stored in the per-layer information (i.e., HoistedLayer). This is split out of (Fix sub-picture layer rendering bugs - https://codereview.chromium.org/597293002/). BUG=skia:2315 R=egdaniel@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/609403003
* Make writeRenderTargetPixels use draw buffer rather than GrGpuGravatar bsalomon2014-09-29
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/586393005
* Applying post-commit comments from https://codereview.chromium.org/607993002/Gravatar junov2014-09-29
| | | | | | | | | BUG=skia: R=robertphillips@google.com Author: junov@chromium.org Review URL: https://codereview.chromium.org/612063003
* Temp fix for crash when generating 16-bit cache for colorTables.Gravatar djsollen2014-09-29
| | | | | | | | | BUG=skia:2795 R=reed@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/617443002
* Override drawImage*() in SkNWayCanvasGravatar piotaixr2014-09-29
| | | | | | | | | BUG=skia:2947 R=junov@chromium.org, reed@google.com, bsalomon@chromium.org Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/600643002
* Sanitize SkMatrixConvolutionImageFilter creation params.Gravatar senorblanco2014-09-29
| | | | | | | | | | | Apply the same memory limit in the Create() function that we do when deserializing. R=reed@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/610723002
* fail on extremely large coincident curvesGravatar caryclark2014-09-29
| | | | | | | | | TBR= BUG=418381 Author: caryclark@google.com Review URL: https://codereview.chromium.org/607913007
* Revert of Revert of Fix SkTextBlob offset semantics. (patchset #1 id:1 of ↵Gravatar fmalita2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/609223003/) Reason for revert: Re-landing: Chromium-side fix to be landed with the roll (https://codereview.chromium.org/607853003/) Original issue's description: > Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of https://codereview.chromium.org/605533002/) > > Reason for revert: > Breaking the Chrome builds with the error: > > [14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions > [14:54:14.318022] virtual void drawPosText(const SkDraw& draw, > [14:54:14.318082] ^ > > Original issue's description: > > Fix SkTextBlob offset semantics. > > > > Implement proper x/y drawTextBlob() handling by plumbing a > > drawPosText() offset parameter (to act as an additional glyph pos > > translation) throughout the device layer. > > > > The new offset superceeds the existing constY, with a minor semantic > > tweak: whereas previous implementations were ignoring constY in 2D > > positioning mode (scalarsPerGlyph == 2), now the offset is always > > observed, in all positioning modes. We can do this because existing > > drawPosText() clients always pass constY == 0 for full positioning mode. > > > > R=reed@google.com, jvanverth@google.com, robertphillips@google.com > > > > Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2 > > TBR=jvanverth@google.com,reed@google.com,bsalomon@google.com,fmalita@chromium.org > NOTREECHECKS=true > NOTRY=true > > Committed: https://skia.googlesource.com/skia/+/d46b8d2bab7cfba8458432248e1568ac377429e9 R=jvanverth@google.com, reed@google.com, bsalomon@google.com, robertphillips@google.com TBR=bsalomon@google.com, jvanverth@google.com, reed@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/607413003
* Update RecordReplaceDrawTest to generate and pass picturesGravatar robertphillips2014-09-29
| | | | | | | | | | | | This CL splits the unit test changes out of (Fix sub-picture layer rendering bugs - https://codereview.chromium.org/597293002/). For various reasons GrRecordReplaceDraw now needs to take an SkPicture (rather than an SkRecord and a BBH). R=egdaniel@google.com, bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/608823002
* Always force the bounds of the empty pathref.Gravatar mtklein2014-09-29
| | | | | | | | | | | | | | | | | Chrome's TSAN bots are seeing various races on the bounds of the empty path ref, and it's a simple fix to just force them on creation. In fact, we used to do this for this very reason, but for some reason it looks like I decided it wasn't necessary. Maybe not, but it certainly doesn't hurt, and it's nice to keep TSAN happy. Reminder to self: merge this into M39 branch too. BUG=418299 R=fmalita@chromium.org, robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/603503003
* Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of ↵Gravatar robertphillips2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/605533002/) Reason for revert: Breaking the Chrome builds with the error: [14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions [14:54:14.318022] virtual void drawPosText(const SkDraw& draw, [14:54:14.318082] ^ Original issue's description: > Fix SkTextBlob offset semantics. > > Implement proper x/y drawTextBlob() handling by plumbing a > drawPosText() offset parameter (to act as an additional glyph pos > translation) throughout the device layer. > > The new offset superceeds the existing constY, with a minor semantic > tweak: whereas previous implementations were ignoring constY in 2D > positioning mode (scalarsPerGlyph == 2), now the offset is always > observed, in all positioning modes. We can do this because existing > drawPosText() clients always pass constY == 0 for full positioning mode. > > R=reed@google.com, jvanverth@google.com, robertphillips@google.com > > Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2 R=jvanverth@google.com, reed@google.com, bsalomon@google.com, fmalita@chromium.org TBR=bsalomon@google.com, fmalita@chromium.org, jvanverth@google.com, reed@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/609223003
* Change GrContext::copyTexture to go through GrDrawTargetGravatar junov2014-09-26
| | | | | | | | | BUG=crbug.com/415100 R=bsalomon@google.com, robertphillips@google.com Author: junov@chromium.org Review URL: https://codereview.chromium.org/607993002
* SkMatrix44::preserves2dAxisAlignment()Gravatar tomhudson2014-09-26
| | | | | | | | | | | | Convenience function requested for Chrome compositor that may have a performance advantage. BUG=skia:1017 R=reed@google.com, danakj@chromium.org, vollick@chromium.org Author: tomhudson@google.com Review URL: https://codereview.chromium.org/508303005
* Rename SkImage::draw(_, SkRect, SkRect) in SkImage::drawRect()Gravatar piotaixr2014-09-26
| | | | | | | | | BUG=skia:2947 R=reed@google.com, junov@chromium.org Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/605843002
* Fix SkTextBlob offset semantics.Gravatar Florin Malita2014-09-26
| | | | | | | | | | | | | | | | Implement proper x/y drawTextBlob() handling by plumbing a drawPosText() offset parameter (to act as an additional glyph pos translation) throughout the device layer. The new offset superceeds the existing constY, with a minor semantic tweak: whereas previous implementations were ignoring constY in 2D positioning mode (scalarsPerGlyph == 2), now the offset is always observed, in all positioning modes. We can do this because existing drawPosText() clients always pass constY == 0 for full positioning mode. R=reed@google.com, jvanverth@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/605533002
* Replace a forgotten call to SkImage::draw() by SkCanvas::drawImageRect()Gravatar piotaixr2014-09-26
| | | | | | | | | BUG=skia:2947 R=reed@google.com, junov@chromium.org Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/599203007
* Split GrDrawState and GrOptDrawState into separate classes and remove base ↵Gravatar egdaniel2014-09-26
| | | | | | | | | | | | | class. Besides splitting the two classes, there are no logical changes here and mostly moving code around. BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/597323002
* Fix SkTableColorFilter deserialization validation.Gravatar senorblanco2014-09-25
| | | | | | | | | | | | | Broken in https://skia.googlesource.com/skia/+/9fa60daad4d5f54c0dbe3dbcc7608a8f6d721187. R=reed@google.com TBR=reed@google.com BUG=skia: Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/604873004
* Seems that some of our compliers can't infer this type, though most can.Gravatar Mike Klein2014-09-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/603263002
* Remove SkPaint dirty bits.Gravatar mtklein2014-09-25
| | | | | | | | | | | | | | | | | | | | | | | fDirtyBits is only used by SkPaint::FlatteningTraits, which in turn was only used as a smaller, faster format to flatten paints in-memory to dedup them in the old picture backend. SkRecord obsoleted all this. Neither flatten()/unflatten() (disk format) nor FlatteningTraits is used anywhere performance or size matters. Here I revert the deduping code back to using the disk format for flattened paints. We stil do have to flatten and unflatten paints while coverting from SkRecord backend to the old backend, so we can't just delete this all yet, but any faithful round trip flatten()/unflatten() pair will be fine, however slow. NOTRY=true BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/604813003
* SkCanvas::drawImage is the new way for drawing a SkImage to a CanvasGravatar piotaixr2014-09-24
| | | | | | | | | | | | BUG=skia:2947 Committed: https://skia.googlesource.com/skia/+/432789972c1e1f8a66165c75a250dba1853efa08 R=junov@chromium.org, reed@google.com, bsalomon@google.com Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/583453002
* Fix SkXfermode deserialization.Gravatar senorblanco2014-09-24
| | | | | | | | | | | Validation was failing due to an inverted test condition. BUG=417266 R=reed@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/596333002
* Correct glyph with non-bmp from typeface on Mac.Gravatar bungeman2014-09-24
| | | | | | | | | | | | | CTFontGetGlyphsForChars puts the glyph id at the index of the lead surrogate as is documented in comments, but the code is looking at the index of the trail surrogate. BUG=skia:2960 R=mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/596413002
* Revert of SkCanvas::drawImage is the new way for drawing an SkImage to a ↵Gravatar borenet2014-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | Canvas (patchset #9 id:160001 of https://codereview.chromium.org/583453002/) Reason for revert: Broke ChromiumOS Ozone builder: http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Ozone%20Builder/builds/4087/steps/compile/logs/stdio Reverting to unblock DEPS roll. Original issue's description: > SkCanvas::drawImage is the new way for drawing a SkImage to a Canvas > > BUG=skia:2947 > > Committed: https://skia.googlesource.com/skia/+/432789972c1e1f8a66165c75a250dba1853efa08 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:2947 Author: borenet@google.com Review URL: https://codereview.chromium.org/598133002
* Use OptDrawState instead of DrawState when flushing state in GrGpuGLGravatar egdaniel2014-09-24
| | | | | | | | | BUG=skia: R=bsalomon@google.com, joshualitt@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/599963002
* Swap iteration order in TileGrid::insert().Gravatar mtklein2014-09-24
| | | | | | | | | | | | | Was looking at performance here (it's the record hotspot) and noticed we iterate through the grid out of order. This is a tiny little thing, but it's probably orthogonal to any other performance improvements we'll make in here. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/598933004
* Update layer hoisting code to correctly render sub-picture layersGravatar robertphillips2014-09-24
| | | | | | | | | | | The prior code assumed all layers came from a single picture. BUG=skia:2315 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/595543002
* Revert "Use draw buffer for texture copy impl."Gravatar Brian Salomon2014-09-24
| | | | | | | This reverts commit e3d4bf234a04e14b6b0f33e11b3e1132b560c145. Conflicts: src/gpu/GrContext.cpp
* Revert "Add support for EGL on linux"Gravatar borenet2014-09-24
| | | | | | | | | | | | | | | This reverts commit 1cea736c3280b6f0553e3eaa598e41370b305b57. Caused segfaults on all Android devices R=bsalomon@google.com, djsollen@google.com TBR=bsalomon, djsollen NOTRY=true BUG=skia: Author: borenet@google.com Review URL: https://codereview.chromium.org/599493003
* Add support for EGL on linuxGravatar derekf2014-09-23
| | | | | | | | | | Allow setting skia_egl=1 to build skia against EGL instead of GLX on unix R=bsalomon@google.com, djsollen@google.com Author: derekf@osg.samsung.com Review URL: https://codereview.chromium.org/543363004
* SkCanvas::drawImage is the new way for drawing a SkImage to a CanvasGravatar piotaixr2014-09-23
| | | | | | | | | BUG=skia:2947 R=junov@chromium.org, reed@google.com, bsalomon@google.com Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/583453002
* We need to adjust the bounds of clip ops with SaveLayer paints too.Gravatar Mike Klein2014-09-23
| | | | | | | | | | | | | Before this CL, SkRecord only adjusted the bounds of draw ops for SaveLayers' paints. That worked fine, but as a final step we intersect the bounds of draw ops with the bounds of the current clip, essentially undoing all that work. I think the right fix here is to also adjust the bounds of the clip ops. BUG=skia:2957, 415468 R=robertphillips@google.com Review URL: https://codereview.chromium.org/595953002
* Remove unused fRequiresVertexShader data member from OptDrawStateGravatar egdaniel2014-09-23
| | | | | | | | | BUG=skia: R=jvanverth@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/578323003
* Patch to create a distinct geometry processor. The vast majority of this patchGravatar joshualitt2014-09-23
| | | | | | | | | | | | | is just a rename. The meat is in GrGeometryProcessor, GrProcessor, GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory, GrProcessUnitTestFactory, and the builders BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/582963002