aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Revert "Revert "PixelRef now returns (nearly) everything that is currently ↵Gravatar reed@google.com2013-12-06
| | | | | | | | | | | | in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."" This reverts commit 4174afb18a9746bbad2a06c0ec2d4ad35f72d790. BUG= Review URL: https://codereview.chromium.org/108723003 git-svn-id: http://skia.googlecode.com/svn/trunk@12547 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "PixelRef now returns (nearly) everything that is currently in ↵Gravatar reed@google.com2013-12-06
| | | | | | | | | | | | SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap." This reverts commit 154e08b2f5904ef533da694e3510befcb9a3f3e2. revert due to warnings Review URL: https://codereview.chromium.org/108513003 git-svn-id: http://skia.googlecode.com/svn/trunk@12538 2bbb7eff-a529-9590-31e7-b0007b416f81
* PixelRef now returns (nearly) everything that is currently in SkBitmap. The ↵Gravatar reed@google.com2013-12-06
| | | | | | | | | | goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap. R=mtklein@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/68973005 git-svn-id: http://skia.googlecode.com/svn/trunk@12537 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix compilation with SK_ENABLE_INST_COUNT=1Gravatar commit-bot@chromium.org2013-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add INHERITED declarations to class declarations that prevent compilation with the flag. Remove SK_DEFINE_INST_COUNT from all class implementations. Instead, use function-local static variables in the reference count helper classes to create the global instances to store the needed info. The accessor functions are defined inline in the helper classes, so definitions are not needed. The initialization point of the variables should be as well defined as previously. Remove SK_DECLARE_INST_COUNT_TEMPLATE and use SK_DECLARE_INST_COUNT instead. This avoids possible future compilation errors further. For SK_ENABLE_INST_COUNT=0 compilation, add an empty static member function to all classes that use SK_DECLARE_INST_COUNT and SK_DECLARE_INST_COUNT_ROOT macros. The function ensures that classes contain public INHERITED typedef. This member function seems to be compiled away. This shouĺd ensure that part of the compilation errors are caught earlier. Also adds DSK_DECLARE_INST_COUNT to few SkPDFDict subclasses. R=robertphillips@google.com, richardlin@chromium.org, bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/98703002 git-svn-id: http://skia.googlecode.com/svn/trunk@12501 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12499 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplify matrix generation for convex path rendererGravatar commit-bot@chromium.org2013-12-04
| | | | | | | | | | | | Addresses precision issues which were leading to asserts in Debug R=bsalomon@google.com, mtklein@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/102683002 git-svn-id: http://skia.googlecode.com/svn/trunk@12494 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove problematic GrContext thread local instance countingGravatar commit-bot@chromium.org2013-12-04
| | | | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/104893002 git-svn-id: http://skia.googlecode.com/svn/trunk@12485 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12477 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add GPU support for color bitmap fontsGravatar commit-bot@chromium.org2013-12-03
| | | | | | | | | | | BUG=skia:1869 R=bungeman@google.com, robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/99993002 git-svn-id: http://skia.googlecode.com/svn/trunk@12471 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use lowercase windows.h in includes to fix Windows cross compilation using ↵Gravatar bungeman@google.com2013-12-03
| | | | | | | | | | | | mingw. While it doesn't matter on Windows, mingw on case-sensitive OSes uses all lower case filenames for platform include files. I found the problem in SkCondVar.h from Mozilla checkout of skia sources, but the patch contains a fix for the whole skia tree. R=bungeman@google.com Review URL: https://codereview.chromium.org/99173003 git-svn-id: http://skia.googlecode.com/svn/trunk@12461 2bbb7eff-a529-9590-31e7-b0007b416f81
* Delay setting initial memory block until it officially exists.Gravatar commit-bot@chromium.org2013-12-02
| | | | | | | | | | | BUG=323017 R=robertphillips@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/99833002 git-svn-id: http://skia.googlecode.com/svn/trunk@12446 2bbb7eff-a529-9590-31e7-b0007b416f81
* HQ filtering for tiled/bleed drawBitmapGravatar commit-bot@chromium.org2013-12-02
| | | | | | | | | | | | sample at pix center in bicubic R=senorblanco@chromium.org, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/83153006 git-svn-id: http://skia.googlecode.com/svn/trunk@12440 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12427Gravatar rmistry@google.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
* Speed up GrResourceCache lookup by inlining GrBinHashKey comparisonsGravatar commit-bot@chromium.org2013-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GCC compilers for Android and Ubuntu do not seem to be able to inline the memcmp operations on GrBinHashKey data. Write the comparisons manually. Also shortcut GrBinHashKey::EQ to skip comparison when hashes do not match. Speeds up grresourcecache_find test on ARM and x86_64. Speeds up grresourcecache_add on x86_64. In order to test the change, moves ad hoc Gr unit tests from src/gr_unittest.cpp to tests/GrUnitTests to be consistent with other tests and enables GrUnitTests. Fixes a regression from r2863 with where re-setting GrBinHashKey data would not set the hash correctly. This should also improve the hash function itself. The regression caused many of the hash operations be no-ops. This is caught by the unit test. Renames the comparison functions that GrHashTable needs from EQ, LT to Equals, LessThan. Renames GrTBinHashKey to GrBinHashKey. The GrTBinHashKey used to forward comparison functions to an ENTRY template class, which would extract the key and call back to the GrTBinHashKey. This would save the user from writing one comparison function when comparison was done with int ENTRY::compare(). There's no real benefit in this now. Also this was used only for one class (GrTextureStripAtlas). The other use in GrResourceKey was not actually using the provided "shortcut". The new GrBinHashKey is not templated with the entry, rather just provides == and < functions. The users of GrTHashTable provide the needed functions now. Adds explicit documentation of functions that are actually needed GrTHashTable for the Key template. Adds SK_DEBUG guards according to the contract. R=bsalomon@google.com, mtklein@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/88113002 git-svn-id: http://skia.googlecode.com/svn/trunk@12426 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-11-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12425 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't check the framebuffer status every time we flush when we're on Chromium;Gravatar commit-bot@chromium.org2013-11-27
| | | | | | | | | | | | | | this reduces the number of unnecessary command buffer flushes by about 50% for page loads when doing Ganesh rendering, since we do a flush on clear. BUG= R=bsalomon@google.com Author: humper@google.com Review URL: https://codereview.chromium.org/92103002 git-svn-id: http://skia.googlecode.com/svn/trunk@12421 2bbb7eff-a529-9590-31e7-b0007b416f81
* Minimal changes to not crash GPU with color fonts.Gravatar bungeman@google.com2013-11-26
| | | | | | Review URL: https://codereview.chromium.org/88993003 git-svn-id: http://skia.googlecode.com/svn/trunk@12400 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SkFloatToScalar macroGravatar commit-bot@chromium.org2013-11-25
| | | | | | | | | | | BUG= R=reed@google.com, djsollen@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/85463005 git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
* [GPU] Use view matrix + rect to implement subrect for drawBitmap when there ↵Gravatar commit-bot@chromium.org2013-11-22
| | | | | | | | | | | | is a mask filter and bleed. R=robertphillips@google.com, reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/65133003 git-svn-id: http://skia.googlecode.com/svn/trunk@12368 2bbb7eff-a529-9590-31e7-b0007b416f81
* Apply hairline optimization only if the path renderer wants itGravatar commit-bot@chromium.org2013-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make the decision to convert thin, non-hairline paths to hairline paths at the renderer level. The current nv_path_rendering implementation does not render hairlines. Rendering the hairlines with normal renderers cause unneccessary gl program changes, which is quite slow. Changes the behavior of non-nv_path_rendering paths to always perform the optimization if the shape ends up being painted by a renderer that wants the optimization. Previously the optimization was applied only when callgraph started with SkCanvas::drawPath. Applies the optimization for GrAAHairLineRenderer and GrDefaultPathRenderer. This changes gm results for dashing3_{msaa4,gpu} and drawlooper_msaa4. R=bsalomon@google.com, jvanverth@google.com, rmistry@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/38573007 git-svn-id: http://skia.googlecode.com/svn/trunk@12357 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix VC++ ptr-to-... and va_list confusionGravatar commit-bot@chromium.org2013-11-21
| | | | | | | | | | R=bungeman@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/78903006 git-svn-id: http://skia.googlecode.com/svn/trunk@12346 2bbb7eff-a529-9590-31e7-b0007b416f81
* Minor fix in Ganesh shader generation.Gravatar commit-bot@chromium.org2013-11-21
| | | | | | | | | | R=bsalomon@google.com Author: skaslev@chromium.org Review URL: https://codereview.chromium.org/78843006 git-svn-id: http://skia.googlecode.com/svn/trunk@12343 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid printing draw target info to stderr while running unit testsGravatar commit-bot@chromium.org2013-11-21
| | | | | | | | | | | | | | Change draw target dump function to return a SkString. Clients can do whatever they want with the string. BUG=skia:1837 R=caryclark@google.com, bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/72353003 git-svn-id: http://skia.googlecode.com/svn/trunk@12340 2bbb7eff-a529-9590-31e7-b0007b416f81
* Minor fixes for distance field fonts:Gravatar commit-bot@chromium.org2013-11-21
| | | | | | | | | | | | | | - Remove additional transform in drawpostext() - Use bitmap fonts if rasterizer set in paint - Correctly set scale ratio for drawtext() R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/79283004 git-svn-id: http://skia.googlecode.com/svn/trunk@12338 2bbb7eff-a529-9590-31e7-b0007b416f81
* More Windows 64b compilation warning fixesGravatar robertphillips@google.com2013-11-21
| | | | | | | | https://codereview.chromium.org/47513017/ git-svn-id: http://skia.googlecode.com/svn/trunk@12337 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove the SKIA_IGNORE_GPU_MIPMAPS now that Chrome sets glGenMipmap forGravatar commit-bot@chromium.org2013-11-20
| | | | | | | | | | | | the skia GL interface. R=bsalomon@google.com, humper@google.com Author: skaslev@chromium.org Review URL: https://codereview.chromium.org/74783011 git-svn-id: http://skia.googlecode.com/svn/trunk@12319 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12315 (More Windows 64b compilation warning fixes) due to ↵Gravatar robertphillips@google.com2013-11-20
| | | | | | compilation failures git-svn-id: http://skia.googlecode.com/svn/trunk@12316 2bbb7eff-a529-9590-31e7-b0007b416f81
* More Windows 64b compilation warning fixesGravatar robertphillips@google.com2013-11-20
| | | | | | | | https://codereview.chromium.org/47513017/ git-svn-id: http://skia.googlecode.com/svn/trunk@12315 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add extra warnings to match what Android uses.Gravatar mtklein@google.com2013-11-20
| | | | | | | | | | R=mtklein@google.com Committed: https://code.google.com/p/skia/source/detail?r=12310 Review URL: https://codereview.chromium.org/74193005 git-svn-id: http://skia.googlecode.com/svn/trunk@12314 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Add extra warnings to match what Android uses."Gravatar scroggo@google.com2013-11-20
| | | | | | | | This reverts commit d234662df1ffeb1bf45b2ade16c4acfb94f89450. This change broke the build. Will resubmit after fixing warnings. git-svn-id: http://skia.googlecode.com/svn/trunk@12311 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add extra warnings to match what Android uses.Gravatar djsollen@google.com2013-11-20
| | | | | | | | R=mtklein@google.com Review URL: https://codereview.chromium.org/74193005 git-svn-id: http://skia.googlecode.com/svn/trunk@12310 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Revert "switch GatherPixelRefs to use SkBaseDevice instead of ↵Gravatar reed@google.com2013-11-13
| | | | | | | | | | | | SkBitmapDevice"" This reverts commit ff0152ec5e2a0faf38ae1a317c5d77df08139104. BUG= Review URL: https://codereview.chromium.org/68203018 git-svn-id: http://skia.googlecode.com/svn/trunk@12271 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "switch GatherPixelRefs to use SkBaseDevice instead of SkBitmapDevice"Gravatar reed@google.com2013-11-12
| | | | | | | | | | This reverts commit 72958c374bdb9457419beeba7de1387da3293882. BUG= Review URL: https://codereview.chromium.org/58933007 git-svn-id: http://skia.googlecode.com/svn/trunk@12260 2bbb7eff-a529-9590-31e7-b0007b416f81
* switch GatherPixelRefs to use SkBaseDevice instead of SkBitmapDeviceGravatar reed@google.com2013-11-12
| | | | | | | | | BUG= R=robertphillips@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/70473003 git-svn-id: http://skia.googlecode.com/svn/trunk@12259 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-11-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12232 2bbb7eff-a529-9590-31e7-b0007b416f81
* Hook in rough distance field support for fontsGravatar jvanverth@google.com2013-11-11
| | | | | | | | R=bsalomon@google.com Review URL: https://codereview.chromium.org/41213003 git-svn-id: http://skia.googlecode.com/svn/trunk@12229 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix stale assert in GrDrawTarget::printGravatar commit-bot@chromium.org2013-11-08
| | | | | | | | | | | | Fix stale assert in GrDrawTarget::print. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/66333002 git-svn-id: http://skia.googlecode.com/svn/trunk@12201 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Do not apply hairline optimization for paths if nv_path_rendering is ↵Gravatar bsalomon@google.com2013-11-08
| | | | | | | | | | used" This reverts commit r12185. Review URL: https://codereview.chromium.org/66813002 git-svn-id: http://skia.googlecode.com/svn/trunk@12187 2bbb7eff-a529-9590-31e7-b0007b416f81
* Do not apply hairline optimization for paths if nv_path_rendering is usedGravatar commit-bot@chromium.org2013-11-08
| | | | | | | | | | | | | | | | | | | | | | | | Do not convert thin, non-hairline paths to hairline paths if nv_path_rendering is used. The current nv_path_rendering implementation does not render hairlines. Rendering the hairlines with normal renderers cause unneccessary gl program changes, which is quite slow. Changes the behavior of non-nv_path_rendering paths to always perform the optimization if the shape ends up being painted by the path-drawing code (GrContext::drawPathInternal). Previously the optimization was applied only when callgraph started with SkCanvas::drawPath. This changes drawlooper_msaa4, dashing3_msaa4 and dashing3_gpu R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/38573007 git-svn-id: http://skia.googlecode.com/svn/trunk@12185 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added support for Chrome's gpu command buffer extension BindUniformLocation.Gravatar commit-bot@chromium.org2013-11-07
| | | | | | | | | | R=bsalomon@google.com, bsalomon Author: skaslev@chromium.org Review URL: https://codereview.chromium.org/62163004 git-svn-id: http://skia.googlecode.com/svn/trunk@12178 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for thin filled and hairline roundrects.Gravatar commit-bot@chromium.org2013-11-07
| | | | | | | | | | | | | | | | The roundrect renderer was dropping into the ConvexPathRenderer when it didn't need to -- if a stroke is just on the edge of being acceptable it will now use the roundrect renderer. BUG=Skia:1802 R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/59903005 git-svn-id: http://skia.googlecode.com/svn/trunk@12168 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Revert "speed up A8 by creating a new entry-point in SkDraw that ↵Gravatar reed@google.com2013-11-07
| | | | | | | | | | | | blits the path's coverage directly into an A8 target, regardless of the previous pixel values."" This reverts commit 3c77887b3eb2d32ab668ab4e5f2f9e79103956e8. BUG= Review URL: https://codereview.chromium.org/50673005 git-svn-id: http://skia.googlecode.com/svn/trunk@12167 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-11-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12161 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add bevel-stroke support in GrAARectRendererGravatar commit-bot@chromium.org2013-11-06
| | | | | | | | | | | | Committed: http://code.google.com/p/skia/source/detail?r=12082 R=robertphillips@google.com, bsalomon@google.com Author: yunchao.he@intel.com Review URL: https://codereview.chromium.org/23712005 git-svn-id: http://skia.googlecode.com/svn/trunk@12148 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid re-rendering stencil clip for every draw with reducable clip stackGravatar commit-bot@chromium.org2013-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the cases where clip stack reduction would cause clip to be re-rendered to stencil for each draw call. This causes unneeded slowdown. Stencil cache would not be used because the clip stack generation id communicated by the clip stack element list would be invalid. This happended due to a) clip stack reduction creating new elements in the element list. b) purging logic removing the generation id, but reduction logic selecting already purged element, and thus the generation id, as the representative state of the clip. Cases of a) where reduction would flatten the stack to a single new element were fixed by assigning the generation id of the top-most element of the clip stack as the generation id of the new element. This is not strictly minimal, but enables more caching than using invalid id. Cases of a) where reduction would substitute a stack element with a new element the generation id of the substituted element is used. The b) part was fixed by removing the purging logic. It was not exactly correct, as the previously purged states were actually used. The purging was not used for anything. Changes SkClipStack API to highlight that invalid generation id is never returned by SkClipStack. Empty stacks are wide open. Changes the clients to reflect this. Fixes a crash when not passing anti-alias out parameter to GrReducedClip::ReduceClipStack. The crash is not exercised in the current code. Committed: http://code.google.com/p/skia/source/detail?r=12084 R=bsalomon@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/48593003 git-svn-id: http://skia.googlecode.com/svn/trunk@12127 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "speed up A8 by creating a new entry-point in SkDraw that blits the ↵Gravatar reed@google.com2013-11-04
| | | | | | | | | | | | | | | | path's coverage directly into an A8 target, regardless of the previous pixel values." This reverts commit d615e839b71f75df895de6850b774a9e1c28ad2a. Revert "must initialize SkDraw.fClip" This reverts commit 108e46d29b5f57927fc8b8c403bb52019d8cb16d. BUG= Review URL: https://codereview.chromium.org/57883006 git-svn-id: http://skia.googlecode.com/svn/trunk@12122 2bbb7eff-a529-9590-31e7-b0007b416f81
* speed up A8 by creating a new entry-point in SkDraw that blits the path's ↵Gravatar reed@google.com2013-11-04
| | | | | | | | | | coverage directly into an A8 target, regardless of the previous pixel values. R=bsalomon@google.com, mtklein@google.com Review URL: https://codereview.chromium.org/56453002 git-svn-id: http://skia.googlecode.com/svn/trunk@12118 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12082 (Add bevel-stroke support in GrAARectRenderer) due to GM ↵Gravatar robertphillips@google.com2013-11-01
| | | | | | failures git-svn-id: http://skia.googlecode.com/svn/trunk@12091 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Avoid re-rendering stencil clip for every draw with reducable clip ↵Gravatar reed@google.com2013-11-01
| | | | | | | | | | | | | | | | stack" This reverts commit 92a7d4bf6a371f1f864154be902e8d86938e560b. Revert "fix mac 10.6 build" This reverts commit 114cd1a9f2734aaed6914718814364811b78bd7f. BUG= Review URL: https://codereview.chromium.org/54543008 git-svn-id: http://skia.googlecode.com/svn/trunk@12087 2bbb7eff-a529-9590-31e7-b0007b416f81