aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkDraw.cpp
Commit message (Collapse)AuthorAge
...
* Simplify mask/clip intersection, making sure to explicitly check for an ↵Gravatar mtklein2016-06-19
| | | | | | | | | | | | | | | empty mask. Previously we were only asserting the mask wasn't empty, which isn't necessarily true when we're given pathological float coordinates like +Inf or NaN. A local run of nanobench --match text_ was not able to show this is faster or slower. This patch fixed this first Chrome bug on my desktop, and the second is probably a dupe. BUG=chromium:619378,chromium:613912 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2073873002 Review-Url: https://codereview.chromium.org/2073873002
* SkPixmap::setColorSpaceGravatar msarett2016-06-09
| | | | | | | | | | | | Landed for reed@ with bug fix: Use default copy constructor for SkDraw BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2057563002 patch from issue 2057563002 at patchset 1 (http://crrev.com/2057563002#ps1) Review-Url: https://codereview.chromium.org/2052943002
* Propagate filter mode when rendering Alpha8 bitmapsGravatar brianosman2016-05-19
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1988023009 Review-Url: https://codereview.chromium.org/1988023009
* refactor drawPath to have drawDevPathGravatar reed2016-05-09
| | | | | | | | | | | pre-CL for larger change to support read-only paths BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1957263003 TBR= Review-Url: https://codereview.chromium.org/1957263003
* Take SkStrokeRec::InitStyle rather than SkPaint::Style in mask filter and ↵Gravatar bsalomon2016-05-06
| | | | | | | | DrawMask GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1955633002 Review-Url: https://codereview.chromium.org/1955633002
* remove 'deprecated' region from SkDrawGravatar reed2016-04-27
| | | | | | | | | | | | | | | Most call-sites that used it just took its bounds, so it was trivial to convert them to get the bounds of the RasterClip. Two clients wanted the actual region: 1. layeriter for android 2. pdf Android already only has BW clips, so should be safe. PDF now overrides its clip methods to ensure that all clips are BW. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1925693002 Review URL: https://codereview.chromium.org/1925693002
* Decouple contrast boost from fake gamma.Gravatar brianosman2016-04-08
| | | | | | | | | | | | | | Replace FakeGamma with FontWeightFlags. Largely mechanical, except for the changes in ignorePreBlend. With this change, text GMs generally look the same (or at least more similar) in 8888/srgb/gpu/gpusrgb configs. No public API changes. TBR=reed@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1866293003 Review URL: https://codereview.chromium.org/1866293003
* switch xfermodes over to sk_spGravatar reed2016-03-29
| | | | | | | | | waiting on https://codereview.chromium.org/1835163002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1832223002 Review URL: https://codereview.chromium.org/1832223002
* Don't convert to Sk48Dot16 in DrawOneGlyph.Gravatar benjaminwagner2016-03-25
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1831983002 Review URL: https://codereview.chromium.org/1831983002
* Reland of "switch patheffects over to sk_sp (patchset #5 id:80001 of ↵Gravatar reed2016-03-18
| | | | | | | | | | | | | https://codereview.chromium.org/1813553005/ )" This reverts commit f28ad894272018fd2855e3f77ea1236ea0cce1c0. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813123003 TBR= Review URL: https://codereview.chromium.org/1813123003
* Revert of switch patheffects over to sk_sp (patchset #5 id:80001 of ↵Gravatar reed2016-03-18
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1813553005/ ) Reason for revert: some build breaks, possibly related to paint having to know what a patheffect is Original issue's description: > switch patheffects over to sk_sp > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813553005 > > Committed: https://skia.googlesource.com/skia/+/9fbee18f691a0afed1e38a851048ce06063505ed TBR=caryclark@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1817543002
* switch patheffects over to sk_spGravatar reed2016-03-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813553005 Review URL: https://codereview.chromium.org/1813553005
* Avoid unneeded ref churn in SkDraw::drawVerticesGravatar fmalita2016-03-13
| | | | | | | R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1790303002 Review URL: https://codereview.chromium.org/1790303002
* Remove version checks for _MSC_VER < 1800 (msvs2013).Gravatar bungeman2016-03-10
| | | | | | | | | | | | We already actively do not support older versions of the vc++ compiler and runtime, so don't check for them anymore. TBR=reed No API changes. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1777213003 Review URL: https://codereview.chromium.org/1777213003
* use Make instead of Create to return a shared shaderGravatar reed2016-03-08
| | | | | | | | | Partially updated call sites. Undefine the flag in SkSHader.h to convert the remaining sites. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1772463002 Review URL: https://codereview.chromium.org/1772463002
* 4377: drawVertices crashes when shader+colorfilter in the paintGravatar aleksandar.stojiljkovic2016-03-08
| | | | | | | | | | | | | | | Fix memory corruption that is result of static_casting SkFilterShaderContext* to SkTriColorShaderContext* and then changing it's state using setup() SkTriColorShader and it's Context could be wrapped by Compose, 3DShader and SkFilterShader, but the link SkTriColorShaderContext -> SkTriColorShader (fShader) always remain - so this way, data about triangle is propagated. BUG=4377 Didn't add new unit test - it would be redundant since the GM vertices update here: https://codereview.chromium.org/1361173003/ is covering the bug. With this patch it passes. Review URL: https://codereview.chromium.org/1431713003
* remove align16 calls in skhader context sizes. will handle this elsewhere as ↵Gravatar reed2016-03-04
| | | | | | | | | | | | | needed BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1768433003 TBR= basically reverts previous CL, but keeps the create --> onCreate change Review URL: https://codereview.chromium.org/1768433003
* Enforce 16byte alignment in shader contexts (patchset #1 id:1 of ↵Gravatar reed2016-03-03
| | | | | | | | | | | | | https://codereview.chromium.org/1759653004/ )" This reverts commit e38bcaf24b00066e167e03a5ac63cf828914d747. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1763973002 TBR= Review URL: https://codereview.chromium.org/1763973002
* Revert of enforce 16byte alignment in shader contexts (patchset #1 id:1 of ↵Gravatar halcanary2016-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1759653004/ ) Reason for revert: Test-Win8-MSVC-ShuttleB-CPU-AVX2-x86-Debug failed dm: .... FYI: loaded 23439 distinct uninteresting hashes from 23439 lines Skipping config gpu: Don't understand 'gpu'. Skipping config msaa16: Don't understand 'msaa16'. 168400 srcs * 7 sinks + 481 tests == 1179281 tasks 0ns elapsed, 5 active, 1179276 queued, 55MB RAM, 55MB peak 565 gm xfermodes2 565 gm xfermodes 565 gm xfermodeimagefilter 565 gm xfermodes3 565 gm verylarge_picture_image c:\0\build\slave\workdir\build\skia\src\core\skshader.cpp:108: fatal error: ""(0 == ((size) & 15))"" step returned non-zero exit code: 3 @@@STEP_FAILURE@@@ Original issue's description: > enforce 16byte alignment in shader contexts > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1759653004 > > Committed: https://skia.googlesource.com/skia/+/d812fb458807245daa812adb7af0733cf5b54d96 TBR=mtklein@google.com,fmalita@chromium.org,herb@google.com,reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1759323002
* enforce 16byte alignment in shader contextsGravatar reed2016-03-03
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1759653004 Review URL: https://codereview.chromium.org/1759653004
* Round to nearest in ScalarTo256.Gravatar benjaminwagner2016-02-24
| | | | | | | | | This is a followup to https://codereview.chromium.org/1693683002 per discussion on https://codereview.chromium.org/1691403002. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1723483004 Review URL: https://codereview.chromium.org/1723483004
* Simplify and combine SkDrawCacheProc and SkMeasureCacheProc to ↵Gravatar benjaminwagner2016-02-23
| | | | | | | | | | | | | | | SkPaint::GlyphCacheProc. All callers of (the result of) SkPaint::getDrawCacheProc were passing zero as the last two arguments. This is the same as (the result of) SkPaint::getMeasureCacheProc(true). Per bungeman, make this typedef a member of SkPaint. Although the typedef is technically public, the only uses are private, so this is not really an API change. TBR=reed GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1718423002 Review URL: https://codereview.chromium.org/1718423002
* Add dest type hint to SkShader::ContextRecGravatar fmalita2016-02-22
| | | | | | | | | | Let SkBlitter decide which dst type is optimal (PMColor vs PM4f), and pass that info to shaders. R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1724503002 Review URL: https://codereview.chromium.org/1724503002
* Only use fake gamma with linear devices.Gravatar bungeman2016-02-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1711223003 Review URL: https://codereview.chromium.org/1711223003
* Add ContextRec param to SkShader::contextSize()Gravatar fmalita2016-02-22
| | | | | | | | | To facilitate upcoming context selection changes. R=reed@google.com,mtklein@google.com,herb@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1720933002 Review URL: https://codereview.chromium.org/1720933002
* Change ScalarTo256 to more efficient implementation.Gravatar benjaminwagner2016-02-12
| | | | | | | | | The previous implementation was likely more efficient when SkScalar was SkFixed. BUG=skia:4632 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1693683002 Review URL: https://codereview.chromium.org/1693683002
* remove legacy definesGravatar caryclark2016-01-25
| | | | | | | | | | | | | | | | | | The defines SK_SUPPORT_LEGACY_ARCTO SK_SUPPORT_LEGACY_CONIC_MEASURE SK_SUPPORT_LEGACY_DASH_MEASURE SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS SK_SUPPORT_LEGACY_PATH_MEASURE_TVALUE have been removed from Chrome. This removes the obsolete code from Skia as well. R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1627703002 Review URL: https://codereview.chromium.org/1627703002
* resolution dependent path measureGravatar caryclark2016-01-21
| | | | | | | | | | | | | | | | | When a dash is drawn through a canvas with a scaled up matrix, path measure needs the pixel resolution through the matrix to construct the dash with sufficient resolution. Pass the resolution through to path measure. Replicate chrome bug in skia GM. R=reed@google.com BUG=530095 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1608353002 Review URL: https://codereview.chromium.org/1608353002
* SkTreatAsSprite should take AA into accountGravatar fmalita2016-01-07
| | | | | | | | | | | | | | | | | | | Currently we always call SkTreatAsSprite with 0 subpixel bits, which means subpixel translations are ignored. This is incorrect for the anti-aliased case (drawSprite always pixel-snaps, so we lose edge AA). The CL updates SkTreatAsSprite to take an SkPaint argument and use 8 subpixel bits when AA is requested. Also remove unused SkTreatAsSpriteFilter. BUG=skia:4761 R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1566943002 Committed: https://skia.googlesource.com/skia/+/983dc2541a729609037a05eba731b3eb9788c517 Review URL: https://codereview.chromium.org/1566943002
* Revert of SkTreatAsSprite should take AA into account (patchset #5 id:80001 ↵Gravatar reed2016-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1566943002/ ) Reason for revert: Need to use SkLeftShift since the arg could be negative Original issue's description: > SkTreatAsSprite should take AA into account > > Currently we always call SkTreatAsSprite with 0 subpixel bits, which means > subpixel translations are ignored. This is incorrect for the anti-aliased > case (drawSprite always pixel-snaps, so we lose edge AA). > > The CL updates SkTreatAsSprite to take an SkPaint argument and use 8 subpixel > bits when AA is requested. > > Also remove unused SkTreatAsSpriteFilter. > > BUG=skia:4761 > R=reed@google.com > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1566943002 > > Committed: https://skia.googlesource.com/skia/+/983dc2541a729609037a05eba731b3eb9788c517 TBR=fmalita@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4761 Review URL: https://codereview.chromium.org/1569873003
* SkTreatAsSprite should take AA into accountGravatar fmalita2016-01-07
| | | | | | | | | | | | | | | | | Currently we always call SkTreatAsSprite with 0 subpixel bits, which means subpixel translations are ignored. This is incorrect for the anti-aliased case (drawSprite always pixel-snaps, so we lose edge AA). The CL updates SkTreatAsSprite to take an SkPaint argument and use 8 subpixel bits when AA is requested. Also remove unused SkTreatAsSpriteFilter. BUG=skia:4761 R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1566943002 Review URL: https://codereview.chromium.org/1566943002
* Start using <type_traits> and <utility> (C++11).Gravatar bungeman2016-01-05
| | | | | | | | | | | | | | SkUtility.h and SkTLogic.h implement a number of type traits now available through <type_traits> and <utility>. This removes SkUtility.h, replacing it with <utility>, and moves a number of traits in SkTLogic.h to use the std:: equivelents. This change only uses C++11 parts of the standard library; SkTLogic.h will continue to provide C++14 and beyond for now in the skstd namespace. The changes to SkTLogic.h are being done gradually so that safe changes may be landed confidently, with more risky changes in the future. Review URL: https://codereview.chromium.org/1561683002
* Add default ctor to SkMaskGravatar robertphillips2015-12-17
| | | | | | | | | The minimal fix here seems to be handling BoxBlur's return value in SkBlurMaskFilter.cpp::GrRRectBlurEffect::Create. We seem to do enough special handling of the fImage field though that always initialializing it may not be a bad idea. BUG=570232 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1539553002 Review URL: https://codereview.chromium.org/1539553002
* Switch SkAutoMalloc to SkAutoTMalloc to avoid castGravatar scroggo2015-12-10
| | | | | | | | | | | | Make SkAutoTMalloc's interface look more like SkAutoMalloc: - add free(), which does what you expect - make reset() return a pointer fPtr No public API changes (SkAutoTMalloc is in include/private) BUG=skia:2148 Review URL: https://codereview.chromium.org/1516833003
* add support for capped hairlinesGravatar caryclark2015-12-09
| | | | | | | | | Extend the ends of hairline and haircurve segments when the paint is set to square or round, and the line or curve is at the start or end of a contour. R=reed@google.com BUG=skia:4599 Review URL: https://codereview.chromium.org/1491843006
* Simplify D1G so that it can inline DrawOneGlyph, and fix a bug in codegenGravatar herb2015-12-07
| | | | | | that only happens on ARM64 using GCC 4.9. Review URL: https://codereview.chromium.org/1507633004
* Revert of Simplify draw one glyph (patchset #3 id:40001 of ↵Gravatar herb2015-12-01
| | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1403573002/ ) Reason for revert: This seems to break nexus 9 release. Original issue's description: > Replace D1G with a simpler implementation. > > Committed: https://skia.googlesource.com/skia/+/001e74426672e00f3f2783ccf728031662d4a358 TBR=bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1486723004
* Replace D1G with a simpler implementation.Gravatar herb2015-12-01
| | | | Review URL: https://codereview.chromium.org/1403573002
* Remove SkDrawProcsGravatar herb2015-11-24
| | | | | | TBR=reed@google.com Review URL: https://codereview.chromium.org/1476563002
* Move glyph choosing to the find and place glyph code.Gravatar herb2015-11-20
| | | | | | | | | | This duplicates the functionality of the (private) SkPaint::getDrawCacheProc method into SkFindAndPlaceGlyph::LookupGlyph. Eventually LookupGlyph should replace getDrawCacheProc, at which point it should be removed. The remaining users are gpu and pdf. Review URL: https://codereview.chromium.org/1458193003
* Convert drawText to using the find and place code.Gravatar herb2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1448453002
* Replace glyph find and position with common code for the gpu bitmap case.Gravatar herb2015-11-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1424173005
* Extract glyph find and position code in preparation to use it in XPS and GPU ↵Gravatar herb2015-11-09
| | | | | | | | code. BUG=skia: Review URL: https://codereview.chromium.org/1409123010
* Fix compile error mac 10.8.Gravatar herb2015-11-09
| | | | | | | | The mac 10.8 compiler seems to get the constructor wrong. Remove the SkNoCopy. BUG=skia:4037 Review URL: https://codereview.chromium.org/1421863004
* Extract the glyph picking and placing code.Gravatar herb2015-11-09
| | | | | | | | | | | | | | | There is a common piece of code which finds and positions glyphs and is used in four places. Some places copied the code, some places added callbacks. Here is a list of code: SkDraw::drawPosText GrAtlasTextContext::internalDrawBMPPosText GrAtlasTextContext::internalDrawDFPosText SkXPSDevice::drawPosText This only extracts the code from SkDraw::drawPosText. I would like to use it in the other three places. I think this code is performance neutral. BUG=skia: Review URL: https://codereview.chromium.org/1420973005
* Revert of Parallel cache - preliminary (patchset #24 id:460001 of ↵Gravatar herb2015-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1264103003/ ) Reason for revert: Breaks DrMemory in the chrome roll. Original issue's description: > Parallel cache. > > TBR=reed@google.com > > BUG=skia:1330,528560 > > Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f > > Committed: https://skia.googlesource.com/skia/+/bf2988833e5a36c6b430da6fdd2cfebd0015adec > > Committed: https://skia.googlesource.com/skia/+/014ffdb01ea5317614a1569efc30c50f06434222 TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:1330,528560 Review URL: https://codereview.chromium.org/1345903002
* Forward declare SkStrokeRec in SkPathEffectGravatar halcanary2015-09-15
| | | | Review URL: https://codereview.chromium.org/1312163008
* Parallel cache.Gravatar herb2015-09-15
| | | | | | | | | | | | TBR=reed@google.com BUG=skia:1330,528560 Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f Committed: https://skia.googlesource.com/skia/+/bf2988833e5a36c6b430da6fdd2cfebd0015adec Review URL: https://codereview.chromium.org/1264103003
* Revert of Parallel cache - preliminary (patchset #23 id:440001 of ↵Gravatar jyasskin2015-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1264103003/ ) Also reverts https://codereview.chromium.org/1333003002/ which was layered on top. Reason for revert: Appears to leak GDI handles: http://build.chromium.org/p/chromium.memory.fyi/builders/Windows%20Unit%20%28DrMemory%20full%29%20%282%29/builds/8247 ~~Dr.M~~ Error #1: HANDLE LEAK: GDI handle 0x03050a84 and 3 similar handle(s) were opened but not closed: ~~Dr.M~~ # 0 system call NtGdiCreateDIBSection ~~Dr.M~~ # 1 GDI32.dll!CreateDIBSection +0xdc (0x768ead23 <GDI32.dll+0x1ad23>) ~~Dr.M~~ # 2 skia.dll!HDCOffscreen::draw [third_party\skia\src\ports\skfonthost_win.cpp:499] ~~Dr.M~~ # 3 skia.dll!SkScalerContext_GDI::generateImage [third_party\skia\src\ports\skfonthost_win.cpp:1233] ~~Dr.M~~ # 4 skia.dll!SkScalerContext::getImage [third_party\skia\src\core\skscalercontext.cpp:530] ~~Dr.M~~ # 5 skia.dll!SkGlyphCache::OnceFillInImage [third_party\skia\src\core\skglyphcache.cpp:252] ~~Dr.M~~ # 6 skia.dll!sk_once_slow<> [third_party\skia\include\core\skonce.h:76] ~~Dr.M~~ # 7 skia.dll!SkGlyphCache::findImage [third_party\skia\src\core\skglyphcache.cpp:260] ~~Dr.M~~ # 8 skia.dll!D1G_RectClip [third_party\skia\src\core\skdraw.cpp:1479] ~~Dr.M~~ # 9 skia.dll!SkDraw::drawPosText [third_party\skia\src\core\skdraw.cpp:1838] ~~Dr.M~~ #10 skia.dll!SkBitmapDevice::drawPosText [third_party\skia\src\core\skbitmapdevice.cpp:348] ~~Dr.M~~ #11 skia.dll!SkCanvas::onDrawPosText [third_party\skia\src\core\skcanvas.cpp:2433] ~~Dr.M~~ #12 skia.dll!SkCanvas::drawPosText [third_party\skia\src\core\skcanvas.cpp:2507] ~~Dr.M~~ #13 skia.dll!SkRecords::Draw::draw<> [third_party\skia\src\core\skrecorddraw.cpp:109] ~~Dr.M~~ #14 skia.dll!SkRecord::Record::visit<> [third_party\skia\src\core\skrecord.h:170] ~~Dr.M~~ #15 skia.dll!SkRecordDraw [third_party\skia\src\core\skrecorddraw.cpp:55] ~~Dr.M~~ #16 skia.dll!SkBigPicture::playback [third_party\skia\src\core\skbigpicture.cpp:43] ~~Dr.M~~ #17 skia.dll!SkCanvas::onDrawPicture [third_party\skia\src\core\skcanvas.cpp:2800] ~~Dr.M~~ #18 skia.dll!SkCanvas::drawPicture [third_party\skia\src\core\skcanvas.cpp:2770] ~~Dr.M~~ #19 cc.dll!cc::DrawingDisplayItem::Raster [cc\playback\drawing_display_item.cc:51] ~~Dr.M~~ #20 cc.dll!cc::DisplayItemList::Raster [cc\playback\display_item_list.cc:107] ~~Dr.M~~ #21 cc.dll!cc::DisplayListRasterSource::RasterCommon [cc\playback\display_list_raster_source.cc:122] ~~Dr.M~~ #22 cc.dll!cc::DisplayListRasterSource::PlaybackToCanvas [cc\playback\display_list_raster_source.cc:100] ~~Dr.M~~ #23 cc.dll!cc::TileTaskWorkerPool::PlaybackToMemory [cc\raster\tile_task_worker_pool.cc:208] ~~Dr.M~~ #24 cc.dll!cc::OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread [cc\raster\one_copy_tile_task_worker_pool.cc:413] ~~Dr.M~~ #25 cc.dll!cc::`anonymous namespace'::RasterBufferImpl::Playback [cc\raster\one_copy_tile_task_worker_pool.cc:53] ~~Dr.M~~ #26 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::Raster [cc\tiles\tile_manager.cc:131] ~~Dr.M~~ #27 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::RunOnWorkerThread [cc\tiles\tile_manager.cc:90] ~~Dr.M~~ #28 cc.dll!cc::TaskGraphRunner::RunTaskWithLockAcquired [cc\raster\task_graph_runner.cc:418] ~~Dr.M~~ #29 cc.dll!cc::TaskGraphRunner::Run [cc\raster\task_graph_runner.cc:361] ~~Dr.M~~ #30 base.dll!base::SimpleThread::ThreadMain [base\threading\simple_thread.cc:66] ~~Dr.M~~ #31 base.dll!base::`anonymous namespace'::ThreadFunc [base\threading\platform_thread_win.cc:82] ~~Dr.M~~ #32 KERNEL32.dll!BaseThreadInitThunk +0x11 (0x7570337a <KERNEL32.dll+0x1337a>) ~~Dr.M~~ Note: @0:15:51.087 in thread 196 ~~Dr.M~~ Note: handles created with the same callstack are closed here: ~~Dr.M~~ Note: # 0 system call NtGdiDeleteObjectApp ~~Dr.M~~ Note: # 1 GDI32.dll!DeleteObject +0x149 (0x768e57d3 <GDI32.dll+0x157d3>) ~~Dr.M~~ Note: # 2 skia.dll!HDCOffscreen::draw [third_party\skia\src\ports\skfonthost_win.cpp:471] ~~Dr.M~~ Note: # 3 skia.dll!SkScalerContext_GDI::generateImage [third_party\skia\src\ports\skfonthost_win.cpp:1233] ~~Dr.M~~ Note: # 4 skia.dll!SkScalerContext::getImage [third_party\skia\src\core\skscalercontext.cpp:530] ~~Dr.M~~ Note: # 5 skia.dll!SkGlyphCache::OnceFillInImage [third_party\skia\src\core\skglyphcache.cpp:252] ~~Dr.M~~ Note: # 6 skia.dll!sk_once_slow<> [third_party\skia\include\core\skonce.h:76] ~~Dr.M~~ Note: # 7 skia.dll!SkGlyphCache::findImage [third_party\skia\src\core\skglyphcache.cpp:260] ~~Dr.M~~ Note: # 8 skia.dll!D1G_RectClip [third_party\skia\src\core\skdraw.cpp:1479] ~~Dr.M~~ Note: # 9 skia.dll!SkDraw::drawPosText [third_party\skia\src\core\skdraw.cpp:1838] ~~Dr.M~~ Note: #10 skia.dll!SkBitmapDevice::drawPosText [third_party\skia\src\core\skbitmapdevice.cpp:348] ~~Dr.M~~ Note: #11 skia.dll!SkCanvas::onDrawPosText [third_party\skia\src\core\skcanvas.cpp:2433] ~~Dr.M~~ Note: #12 skia.dll!SkCanvas::drawPosText [third_party\skia\src\core\skcanvas.cpp:2507] ~~Dr.M~~ Note: #13 skia.dll!SkRecords::Draw::draw<> [third_party\skia\src\core\skrecorddraw.cpp:109] ~~Dr.M~~ Note: #14 skia.dll!SkRecord::Record::visit<> [third_party\skia\src\core\skrecord.h:170] ~~Dr.M~~ Note: #15 skia.dll!SkRecordDraw [third_party\skia\src\core\skrecorddraw.cpp:55] ~~Dr.M~~ Note: #16 skia.dll!SkBigPicture::playback [third_party\skia\src\core\skbigpicture.cpp:43] ~~Dr.M~~ Note: #17 skia.dll!SkCanvas::onDrawPicture [third_party\skia\src\core\skcanvas.cpp:2800] ~~Dr.M~~ Note: #18 skia.dll!SkCanvas::drawPicture [third_party\skia\src\core\skcanvas.cpp:2770] ~~Dr.M~~ Note: #19 cc.dll!cc::DrawingDisplayItem::Raster [cc\playback\drawing_display_item.cc:51] ~~Dr.M~~ Note: #20 cc.dll!cc::DisplayItemList::Raster [cc\playback\display_item_list.cc:107] ~~Dr.M~~ Note: #21 cc.dll!cc::DisplayListRasterSource::RasterCommon [cc\playback\display_list_raster_source.cc:122] ~~Dr.M~~ Note: #22 cc.dll!cc::DisplayListRasterSource::PlaybackToCanvas [cc\playback\display_list_raster_source.cc:100] ~~Dr.M~~ Note: #23 cc.dll!cc::TileTaskWorkerPool::PlaybackToMemory [cc\raster\tile_task_worker_pool.cc:208] ~~Dr.M~~ Note: #24 cc.dll!cc::OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread [cc\raster\one_copy_tile_task_worker_pool.cc:413] ~~Dr.M~~ Note: #25 cc.dll!cc::`anonymous namespace'::RasterBufferImpl::Playback [cc\raster\one_copy_tile_task_worker_pool.cc:53] ~~Dr.M~~ Note: #26 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::Raster [cc\tiles\tile_manager.cc:131] ~~Dr.M~~ Note: #27 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::RunOnWorkerThread [cc\tiles\tile_manager.cc:90] ~~Dr.M~~ Note: #28 cc.dll!cc::TaskGraphRunner::RunTaskWithLockAcquired [cc\raster\task_graph_runner.cc:418] ~~Dr.M~~ Note: #29 cc.dll!cc::TaskGraphRunner::Run [cc\raster\task_graph_runner.cc:361] ~~Dr.M~~ Note: #30 base.dll!base::SimpleThread::ThreadMain [base\threading\simple_thread.cc:66] ~~Dr.M~~ Note: #31 base.dll!base::`anonymous namespace'::ThreadFunc [base\threading\platform_thread_win.cc:82] ~~Dr.M~~ Note: #32 KERNEL32.dll!BaseThreadInitThunk +0x11 (0x7570337a <KERNEL32.dll+0x1337a>) Original issue's description: > Parallel cache. > > TBR=reed@google.com > > BUG=skia:1330 > > Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f > > Committed: https://skia.googlesource.com/skia/+/bf2988833e5a36c6b430da6fdd2cfebd0015adec TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org,herb@google.com BUG=skia:1330 [mtklein mucking around] NOTREECHECKS=true Review URL: https://codereview.chromium.org/1339493002
* Remove race.Gravatar herb2015-09-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1327193003