aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Ignore fill when stroke & filling convex line-only pathsGravatar robertphillips2016-08-26
| | | | | | | | | | | | | | | | | | This seems to work well for miter and bevel joins with the resulting stroke and fill path remaining convex. There seems to be an issue with round joins where the outer generated shell is usually not convex. Without this CL the resulting stroke & filled paths are always concave. Perf-wise (on Windows): convex-lineonly-paths-stroke-and-fill bench (in ms) w/o w/CL %decrease 8888 2.88 2.01 30.2 gpu 4.4 1.38 68.6 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275243003 Review-Url: https://codereview.chromium.org/2275243003
* GPU implementation of drawRegion()Gravatar msarett2016-08-25
| | | | | | | | | | | Nexus 6P drawregion Bench Performance Before 48.0ms After 3.57ms BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267273006 Review-Url: https://codereview.chromium.org/2267273006
* GN: AndroidGravatar mtklein2016-08-25
| | | | | | | | | | | | | | | | Once you have downloaded an android NDK, you can set the ndk GN arg to use it. E.g. my gn.args looks like: is_debug = false ndk = "/opt/android-ndk" This should be enough to get you going for an arm64 build. You ought to be able to tweak that to other architectures by changing target_cpu to "arm", "x86", "x86-64", etc. That won't quite work until I follow this up a bit, but the skeleton is there. This is enough to get me compiled, linked, and running to completion on my N5x. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275983004 Review-Url: https://codereview.chromium.org/2275983004
* Add drawRegion() API to SkCanvasGravatar msarett2016-08-25
| | | | | | | | | | | | | | This will allow us to optimize for the RectGrid macrobench. Currently, SkiaGL is much slower than OpenGL. SkiaGL 12 items/s OpenGL 160 items/s This contains everything except for the fast implementation on GPU. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2277053002 Review-Url: https://codereview.chromium.org/2277053002
* Add support for getting vulkan descriptor sets without a GrVkUniformHandler.Gravatar egdaniel2016-08-25
| | | | | | | | | | | This change allows us to use the current descriptor set system for doing copies as draws. This is a step towards being able to track resources for draws that don't go through out normal pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275633002 Review-Url: https://codereview.chromium.org/2275633002
* Respecify SkCanvas::drawArc, consolidate conversion to SkPath, add GM for ↵Gravatar bsalomon2016-08-25
| | | | | | | | | | oddball drawArcs Allows the arc to wind more than 360 degrees when useCenter is true, specs that nothing draws if the oval is empty or the sweep angle is 0. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2281653002 Review-Url: https://codereview.chromium.org/2281653002
* path ops stream-liningGravatar caryclark2016-08-25
| | | | | | | | | | | | | | | | The addT() function is a workhorse of pathops. Make it simpler, removing branches and parameters. Separate addOpp() into const and modify parts. Add more debugging that asserts if the function fails and the data is not extreme (e.g., fuzzer generated). TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2273293004 Review-Url: https://codereview.chromium.org/2273293004
* SkPDF: Stop `#include PREPROCESSOR_DEFINE` patternGravatar halcanary2016-08-25
| | | | | | | | | | | | | | | | | | No more: #include SK_SFNTLY_SUBSETTER #include ZLIB_INCLUDE Also, rename SK_SFNTLY_SUBSETTER to SK_PDF_USE_SFNTLY to follow my pattern of prefixing SkPDF-specific defines with 'SK_PDF_'. The ZLIB_INCLUDE define is no longer is used by anyone. TODO: rename Sfntly to something pronounceable. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2273343002 Review-Url: https://codereview.chromium.org/2273343002
* Remove pixel config fallback - failing is a better option.Gravatar brianosman2016-08-25
| | | | | | | | | | | | This produces surprising results in some cases. For example: Attempt to make an F16 SkSurface on ANGLE. We can't render to F16, but this succeeds and gives you back an N32 surface instead. Ran all tests and GMs in DM on ANGLE (where this is most likely to be an issue). No problems. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2272423004 Review-Url: https://codereview.chromium.org/2272423004
* Add Ganesh support for circular roundrects with strokes > 2*radii.Gravatar jvanverth2016-08-25
| | | | | | | | | Overstroked rrects are supported by adding additional geometry to the center of the nine patch, and setting constant offset vectors to fake out the distance calculation. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2272703004 Review-Url: https://codereview.chromium.org/2272703004
* Made shadows blurry (thru implementing variance mapping)Gravatar vjiaoblack2016-08-25
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2224163005 Review-Url: https://codereview.chromium.org/2224163005
* add pathops debuggingGravatar caryclark2016-08-25
| | | | | | | | | | | | | | | | | | | Pathops has many points of failure, most of which are triggered by extreme data generated by fuzzers. It's difficult to figure out which failure point was triggered when the operation gives up. Add instrumentation so that the failure can be debugged when the data is well-behaved. Also, add a check that looks for a sequence of coincident points on multiple edges that are out of order when compared to each other. TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274803003 Review-Url: https://codereview.chromium.org/2274803003
* We can't infer the right type for voidp for old png_jmpbuf()Gravatar mtklein2016-08-24
| | | | | | | | | | In libpng 1.2 it's just a macro that's ->jmpbuf, so there's nothing forcing the conversion to png_structp. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268953005 Review-Url: https://codereview.chromium.org/2268953005
* SkPDF: set SK_SFNTLY_SUBSETTER uniformlyGravatar halcanary2016-08-24
| | | | | | | | | | | | | | When Skia is built into the Android framework, SK_SFNTLY_SUBSETTER="sample/chromium/font_subsetter.h". This #includes the same value for GOOGLE3. Once Chrome is also using this value, we can do away with the `#ifdef GOOGLE3` line. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2272103002 Review-Url: https://codereview.chromium.org/2272103002
* SkPngCodec: voidp instead of forward-declares for png.h types.Gravatar mtklein2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2277903002 Review-Url: https://codereview.chromium.org/2277903002
* s/invertable/invertibleGravatar bungeman2016-08-24
| | | | | | | | English orthography is often made difficult by poor phonology. TBR=oxford-english-dictionary,mtklein Review-Url: https://codereview.chromium.org/2272083002
* SkPDF: vector canvases can't hint!Gravatar halcanary2016-08-24
| | | | | | | BUG=637571 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2273073002 Review-Url: https://codereview.chromium.org/2273073002
* GN: more optional components: jpeg, pdf, png, xmlGravatar mtklein2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267343004 Review-Url: https://codereview.chromium.org/2267343004
* remove point aliasesGravatar caryclark2016-08-24
| | | | | | | | | | | | | | | | This removes the notion of keeping track of every different t value that resolves to the same or a similar point. Other fixes make this concept unnecessary, and removing it simplifies the code. This removes an allocation, and speeds up paths with many overlapping curves. As a bonus, four fuzzer tests that failed before now succeed. TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275703003 Review-Url: https://codereview.chromium.org/2275703003
* SkPDF: vertical writing: draw nothingGravatar halcanary2016-08-24
| | | | | | | BUG=skia:5665 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274153002 Review-Url: https://codereview.chromium.org/2274153002
* Add simple font fallback on Mac.Gravatar bungeman2016-08-24
| | | | | | | | | | | | Implement SkFontMgr_Mac::onMatchFamilyStyleCharacter. This is a simple implementation which provides basic fallback. This also renames and refactors several static functions to reduce code duplication. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268663002 Review-Url: https://codereview.chromium.org/2268663002
* Make GrTextureStripAtlas flush pending IO on newly acquired textureGravatar ajuma2016-08-24
| | | | | | | | | | | GrTextureStripAtlas uses its own lock counts to protect against overwriting its own earlier writes, but that doesn't protect against IO that was pending when a texture was first acquired. BUG=chromium:637678 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2262233002 Review-Url: https://codereview.chromium.org/2262233002
* Parse ICC profiles from webpsGravatar msarett2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2269333002 Review-Url: https://codereview.chromium.org/2269333002
* Add addtional resolve calls to vulkan backendGravatar egdaniel2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215363003 Review-Url: https://codereview.chromium.org/2215363003
* Warn on bad rendering intents (instead of valid ones)Gravatar msarett2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274843002 Review-Url: https://codereview.chromium.org/2274843002
* New helper for creating a color space from another, with linear gammaGravatar brianosman2016-08-24
| | | | | | | | | | Going to need this in many places once we expliclty require F16 surfaces to have linear gamma color spaces. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2270103002 Review-Url: https://codereview.chromium.org/2270103002
* combine setRectFan and mapRectGravatar reed2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276603002 Review-Url: https://codereview.chromium.org/2276603002
* Fix generic color space xform, ColorSpaceXformTestGravatar msarett2016-08-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275563002 Review-Url: https://codereview.chromium.org/2275563002
* Make singleton SkColorSpaces thread safeGravatar msarett2016-08-23
| | | | | | | | | | | | | | SkColorSpaces may be once-ptrs, so we can reuse common color spaces. This means that they must be thread safe. SkMatrix44 is not thread safe because it maintains a mutable type mask. This CL ensures that we precompute the type mask so we can use const SkMatrix44's safely. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2277463002 Review-Url: https://codereview.chromium.org/2277463002
* Remove SkPixelRef::getTexture()Gravatar bsalomon2016-08-23
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264293003 Review-Url: https://codereview.chromium.org/2264293003
* Skip non-AA intersect rects in GrReducedClipGravatar csmartdalton2016-08-23
| | | | | | | | | | Skips non-AA rects whose op is intersect or replace, and who do not precede elements that grow the clip, by tightening fIBounds. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271493002 Review-Url: https://codereview.chromium.org/2271493002
* SkScalerContextRec::computeMatrices to return status.Gravatar bungeman2016-08-23
| | | | | | | | | | | | | | | | | | | | | When computing the matricies for a scaler context, there is a special case when the matrix is determined to be singular. No port properly handles zero sized text, so we detect this case and return a 'normal' text size and a zero matrix for all computed transformations. This CL causes computeMatricies to return 'false' in this case. This is used in the constructor of SkScalerContext_Mac in order to avoid calling CGAffineTransformInvert on non-invertible transformations. CGAffineTransformInvert documents that if the transform is non-invertible it will return the passed transform unchanged. It does so, but then also prints a message to stdout. Since the information is already available to avoid this chatty behavior, use it to keep things quiet. BUG=skia:3231,chromium:630169 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276583003 Review-Url: https://codereview.chromium.org/2276583003
* Assume all TURBO_HAS_* are true.Gravatar mtklein2016-08-23
| | | | | | | | | Should be everyone's on libjpeg-turbo >= 1.5.0. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274643002 Review-Url: https://codereview.chromium.org/2274643002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-23
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 Committed: https://skia.googlesource.com/skia/+/a97a1ab5719d5c355f7900b7f17dec1e467cf57e Review-Url: https://codereview.chromium.org/2255803003
* Revert of Moving SkBlurImageFilter into core (patchset #9 id:160001 of ↵Gravatar bungeman2016-08-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2255803003/ ) Reason for revert: Breaking internal roll. Still needs 'Create'. Original issue's description: > Moving SkBlurImageFilter into core > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 > > Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 > Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 > Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 > Committed: https://skia.googlesource.com/skia/+/a97a1ab5719d5c355f7900b7f17dec1e467cf57e TBR=reed@google.com,fmalita@chromium.org,vjiaoblack@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/2274603003
* fix conic path fuzzGravatar caryclark2016-08-23
| | | | | | | | | | | | The test conic has a very large weight, so it reduces to a pair of lines. Detect this case rather than subdividing the conic so much that the answers are meaningless. R=herb@google.com, reed@google.com BUG=638223 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268073004 Review-Url: https://codereview.chromium.org/2268073004
* SkMultiSKP: version 2Gravatar halcanary2016-08-23
| | | | | | | | | | Measurable size improvement. BUG=skia:5370 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255333003 Review-Url: https://codereview.chromium.org/2255333003
* SkPDF: PDFDevice cleanup.Gravatar halcanary2016-08-23
| | | | | | | | | | | | | Remove unused fContentSize. Combine SkPDFDevice::writeContent and SkPDFDevice::content. Remove unused SkPDFDevice::initialTransform(). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264113003 Review-Url: https://codereview.chromium.org/2264113003
* f16<->f32 ftz is an optional thing for speed.Gravatar mtklein2016-08-23
| | | | | | | | | | | | | The ARMv8 asm path actually does it right... that should be okay. My Nexus 5x fails `dm -m _finite_ftz` before this and passes after it. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276533002 TBR=msarett@google.com Review-Url: https://codereview.chromium.org/2276533002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-23
| | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 Review-Url: https://codereview.chromium.org/2255803003
* fix pathops fuzzGravatar caryclark2016-08-23
| | | | | | | | | | | Extreme cubics may split so that one half is a point. Discard this rather than generating a degenerate line. TBR=reed@google.com BUG=640025 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276503002 Review-Url: https://codereview.chromium.org/2276503002
* Reduce window rectangles cap to 8Gravatar csmartdalton2016-08-23
| | | | | | | | | | | | Lowers the cap to 8 and adds a warning message if this value is ever exceeded. The largest (only) implementation currently supports 8, so there isn't yet reason to go higher. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254013002 Committed: https://skia.googlesource.com/skia/+/52d721580ee22525c285e2d13cf3975a7a1b2843 Review-Url: https://codereview.chromium.org/2254013002
* Fix valgrind issue in CircleBatch__TestGravatar robertphillips2016-08-23
| | | | | | | TBR=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271653002 Review-Url: https://codereview.chromium.org/2271653002
* Fix Ganesh analytic blurred rect drawsGravatar robertphillips2016-08-22
| | | | | | | | | | | | | | This CL does two things: It fixes the SkBlurMaskFilterImpl::directFilterRRectMaskGPU draw path to explicitly handle rects It fixes the SkGpuDevice::drawTextureProducerImpl draw path to provide the correct (src & device space) inputs to directFilterRRectMaskGPU. How this was working before was that GrRRectBlurEffect::Make would reject rect-rrects and the code would fallback to GrBlurUtils::drawPathWithMaskFilter which mapped the rect-rrect into device space correctly (of course, the rect-ness of the path was removed at that point so it was going through the slow path). GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268583002 Review-Url: https://codereview.chromium.org/2268583002
* Fix GLSL int to float error in arc code in GrOvalRenderer.Gravatar bsalomon2016-08-22
| | | | | | | | | | | BUG=skia: TBR=robertphillips@google.com NOTRY=true NOTREECHECKS=true GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263213004 Review-Url: https://codereview.chromium.org/2263213004
* More robust check for sRGB gamma tablesGravatar msarett2016-08-22
| | | | | | | | | | | | | | | This is in response to a UMA showing that 5% dst gammas are unidentified tables. We want to see if some of these tables should be marked as sRGB. https://uma.googleplex.com/p/chrome/histograms?endDate=latest&dayCount=1&histograms=Blink.ColorSpace.Destination&fixupData=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial This check is not fast. If we find that it doesn't help us recognize sRGB curves, we should delete it. BUG=skia:5656 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263233003 Review-Url: https://codereview.chromium.org/2263233003
* Remove virtual from overrides in SkGpuDevice.hGravatar bsalomon2016-08-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265323002 Review-Url: https://codereview.chromium.org/2265323002
* Fix CircleBatch::TestCreate to always use a legal matrixGravatar bsalomon2016-08-22
| | | | | | | | | | TBR=robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267953002 NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2267953002
* Mark temporary paths created by SkCanvas for clipping as volatileGravatar bsalomon2016-08-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268723002 Review-Url: https://codereview.chromium.org/2268723002
* Flush denorm half floats to zero.Gravatar mtklein2016-08-22
| | | | | | | | | | | | | | | | | | I think we convinced ourselves that denorms, while a good chunk of half floats, cover a rather small fraction of the representable range, which is always close enough to zero to flush. This makes both paths of the conversion to or from float considerably simpler. These functions now work for zero-or-normal half floats (excluding infinite, NaN). I'm not aware of a term for this class so I've called them "ordinary". A handful of GMs and SKPs draw differently in --config f16, but all imperceptibly. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256023002 Review-Url: https://codereview.chromium.org/2256023002