aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Remove FP16 support from ANGLE. Previous workaround was incomplete.Gravatar brianosman2016-08-29
| | | | | | | | | | | | | ANGLE is using the wrong external type (GL_HALF_FLOAT) when querying for ReadPixels format, but it validates parameters to TexImage2D against the correct type (GL_HALF_FLOAT_OES). Rather than introduce a lot of complexity to work around the inconsistency, I'm just going to remove support for now. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288233002 Review-Url: https://codereview.chromium.org/2288233002
* if the winding of the top can't be computed, give upGravatar caryclark2016-08-26
| | | | | | | | TBR=reed@google.com BUG=641478 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2283993002 Review-Url: https://codereview.chromium.org/2283993002
* SkPDF: Glyph validation changeGravatar halcanary2016-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of mapping invaid glyphIDs to zero or maxGlyphID, don't draw them at all. Validate glyphs when glyph is written, not ahead of time. Don't allocate array to copy user-provided glyphs. Easy early exit from SkPDFDevice::internalDrawText() GlyphPositioner::flush() called ~GlyphPositioner() SkScopeExit class now exists. Assume SkTypeface* pointers are now never null in more places. precalculate alignmentFactor to clean up code. SkPDFDevice::updateFont must be called with validated glyphID. Skip bad glyphs to make this true. SkPDFDevice::updateFont always succeeds. SkPDFFont::GetFontResource always succeeds (preconditions are asserted). If GetMetrics fails, don't call GetFontResource. SkPDFFont::glyphsToPDFFontEncodingCount() becomes SkPDFFont::countStretch() and is inlined. SkPDFFont::glyphsToPDFFontEncoding now works one Glyph at a time and is inlined. SkPDFFont::noteGlyphUsage() operates one glyph at a time. Add SkScopeExit.h; also a unit test for it. SkPostConfig: Fix SK_UNUSED for Win32. No public API changes. TBR=reed@google.com BUG=625995 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2278703002 Review-Url: https://codereview.chromium.org/2278703002
* drawBitmapRect() should not touch the CTM when mask filters are presentGravatar fmalita2016-08-26
| | | | | | | | | | | Blur sigma calculations are CTM dependent, so we cannot take the drawBitmap() fast path in the presence of mask filters. BUG=skia:5682 R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2286873002 Review-Url: https://codereview.chromium.org/2286873002
* Reduce CPU overhead on drawRegion()Gravatar msarett2016-08-26
| | | | | | | | | | | | | | | | | | Only batch when the view matrices are the same. This allows us to skip applying the matrix and uploading local coords. drawregion Bench on Nexus 6P: Before 4.69ms After 2.83ms This puts SkiaGL nearly on par with OpenGL. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2282983003 Review-Url: https://codereview.chromium.org/2282983003
* Don't add the resolve attachment to vulkan render passes.Gravatar egdaniel2016-08-26
| | | | | | | | | Also includes some other msaa bug fixes BUG=skia:5127 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256843002 Review-Url: https://codereview.chromium.org/2256843002
* fixed 'corners' of paths in GrAAConvexTessellatorGravatar ethannicholas2016-08-26
| | | | | | | BUG=skia:5671 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2280943003 Review-Url: https://codereview.chromium.org/2280943003
* Converts a drawPaint through a rrect clip to a drawRRect in GrDrawContext.Gravatar bsalomon2016-08-26
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271053004 Review-Url: https://codereview.chromium.org/2271053004
* Update ANGLE to latest as of August 25, 2016Gravatar brianosman2016-08-26
| | | | | | | | | | | | | | | | | | With this version, it's now exposing GL_EXT_color_buffer_half_float, but it's (incorrectly) using GL_HALF_FLOAT rather than GL_HALF_FLOAT_OES. In addition, release builds were crashing in EGLImageTest due to an apparent disagreement about calling convention on function-pointer to exported symbol. There is a proper typedef for that in one of their headers, but I can't seem to include it without creating more problems, so I just fixed the decoration on our local typedef. With those changes, all tests pass, and (on my Windows machine), all GMs and SKPs produce identical results vs. master in angle and angle-gl. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2282733003 Review-Url: https://codereview.chromium.org/2282733003
* Restrict supported font formats in Chrome contextGravatar drott2016-08-26
| | | | | | | | | | | | | | | | | | Chrome's complex text path uses HarfBuzz OpenType glyph lookup functions. These do not support glyph lookup in Type 1 / Postscript fonts and we do not wish to support those in Chrome any longer. In order to avoid matching fonts against Type 1 fonts possible present on Linux installations and exposed through fontconfig, this CL filters those out in Skia's font matching code. This change might not be desirable for all context in which Skia is used, hence making it conditional on a Chrome context define. BUG=skia:5685 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2280053002 Review-Url: https://codereview.chromium.org/2280053002
* avoid generating degenerate conic from arcGravatar caryclark2016-08-26
| | | | | | | | R=bsalomon@google.com BUG=skia:5672 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2281953002 Review-Url: https://codereview.chromium.org/2281953002
* Added distance attenuation and diffuse shading to PointLightsGravatar vjiaoblack2016-08-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246463004 Review-Url: https://codereview.chromium.org/2246463004
* Fix for fat stroked roundrects.Gravatar jvanverth2016-08-26
| | | | | | | | | The original method did not correctly compute the distance value along the inner edge, so the antialiasing was not quite correct. This fixes that by adding additional vertices and setting a different outerRadius. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275423002 Review-Url: https://codereview.chromium.org/2275423002
* SkOSFile instead of dirent in android font parser.Gravatar bungeman2016-08-26
| | | | | | | | | This makes the parser more portable while making essentially the same file system calls on Android. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2279033004 Review-Url: https://codereview.chromium.org/2279033004
* drawRegion() cleanupsGravatar msarett2016-08-26
| | | | | | | | | | (1) Move implementation to the cpp. (2) Check for the isRect() case. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2286693002 Review-Url: https://codereview.chromium.org/2286693002
* 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