aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* ubsan shift fixesGravatar caryclark2015-12-09
| | | | | | | | | | | Use an inline function that does a normal shift. When built for the sanitizer, add casts so that the shift is unsigned. Also make a few fixes to do unsigned shifts or avoid the shift altogether; and add an argument spec to some macros. R=reed@google.com,mtklein@google.com BUG=skia:4633 Review URL: https://codereview.chromium.org/1503423003
* SkBitmap::installPixels(const SkPixmap&);Gravatar halcanary2015-12-09
| | | | Review URL: https://codereview.chromium.org/1505333002
* Prevent overflow in length() in GLCircularRRectEffectGravatar bsalomon2015-12-09
| | | | | | BUG=chromium:477684 Review URL: https://codereview.chromium.org/1517483002
* SkBitmap::getColor repsects swizzleGravatar halcanary2015-12-09
| | | | Review URL: https://codereview.chromium.org/1510253002
* Split big rrect aa effect up into separate imagesGravatar bsalomon2015-12-09
| | | | | | | | Needed to enlarge radii to surface bugs without exceeding max texture size on low end devices. BUG=chromium:477684 Review URL: https://codereview.chromium.org/1508003008
* Fix filter primitive bounds computations.Gravatar senorblanco2015-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make each filter responsible for expanding its destination bounds. Previously, we were using a union of all intermediate bounds sizes via join() calls in many image filters' computeFastBounds(), due to the fact that those filters could only produce bitmaps the same size as their inputs. Now, we compute optimal bounds for each filter as follows: 1) Pass the (unmodified) clip bounds to the root node of the DAG in the first recursive call to onFilterImage() as the Context's fClipBounds. 2) Reverse-map the clip: when recursing up the DAG in filterInput[GPU](), apply filter-specific expansion to the clip by calling calling onFilterNodeBounds(... kReverse). This allows upstream nodes to have a clip that respects the current node's requirements. This is done via helper function mapContext(). 3) Forward-map the source bitmap: just prior to applying the crop rect in applyCropRect(), we determine the filter's preferred bounds by mapping the source bitmap bounds forwards via onFilterNodeBounds(..., kForward). NOTE: GMs affected by this change: fast_slow_blurimagefilter: fast and slow paths now produce the same result spritebitmap: drawSprite() and drawBitmap() paths now produce the same result filterfastbounds: fast bounds are optimized; all drop-shadow results now appear apply-filter: snug and not-snug cases give same results dropshadowimagefilter: drawSprite() results now show shadows draw-with-filter: no artifacts on erode edges; blur edges no longer clipped displacement, imagefiltersbase, imagefiltersclipped, imagefilterscropexpand, imagefiltersscaled, matriximagefilter, resizeimagefilter, localmatriximagefilter, testimagefilters: fixed incorrect clipping imagefilterstransformed, morphology: no artifacts on erode edges BUG=skia:1062,skia:3194,skia:3939,skia:4337,skia:4526 Review URL: https://codereview.chromium.org/1308703007
* fix a couple flaky nonnull attribute ubsan warningsGravatar mtklein2015-12-09
| | | | | | | | | | | | | | | Errors this should fix: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/3779/steps/dm/logs/stdio https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/3779/steps/nanobench/logs/stdio CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot TBR=reed@google.com No API changes. BUG=skia: Review URL: https://codereview.chromium.org/1504313005
* Fix bug with GrAtlasTextContext color regenGravatar joshualitt2015-12-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1513723002
* DM: tally notes at the end rather than showing them as they finish.Gravatar mtklein2015-12-09
| | | | | | | | | | This should make the (veto) and (skipped: ) both less verbose and easier to grok. Looks like this'll bring the log files down from ~50M to ~1.5M. BUG=skia: Review URL: https://codereview.chromium.org/1516563002
* Boost GrGLConicEffect's variables to all high precisionGravatar robertphillips2015-12-09
| | | | | | | | BUG=555779 Committed: https://skia.googlesource.com/skia/+/624c59a1c7af38eb83e803f345a6f3e225475a08 Review URL: https://codereview.chromium.org/1513483002
* try stifling integer overflow errorGravatar mtklein2015-12-09
| | | | | | | | | | first time we've done this, let's see if it works! BUG=skia:4667 Looks ok now. Red ASAN bot is different errors. Review URL: https://codereview.chromium.org/1507063007
* Cap filtering to kMedium_SkFilterQuality when downsamplingGravatar fmalita2015-12-09
| | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/1510673002
* Revert of Boost GrGLConicEffect's variables to all high precision (patchset ↵Gravatar robertphillips2015-12-09
| | | | | | | | | | | | | | | | | | | | | | #1 id:1 of https://codereview.chromium.org/1513483002/ ) Reason for revert: Broke build Original issue's description: > Boost GrGLConicEffect's variables to all high precision > > BUG=555779 > > Committed: https://skia.googlesource.com/skia/+/624c59a1c7af38eb83e803f345a6f3e225475a08 TBR=egdaniel@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=555779 Review URL: https://codereview.chromium.org/1514553002
* Revert of Make NVPR a GL context option instead of a GL context (patchset #9 ↵Gravatar borenet2015-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:160001 of https://codereview.chromium.org/1448883002/ ) Reason for revert: "Could not create surface" on Linux GTX660 bots Original issue's description: > Make NVPR a GL context option instead of a GL context > > Make NVPR a GL context option instead of a GL context. > This may enable NVPR to be run with command buffer > interface. > > No functionality change in DM or nanobench. NVPR can > only be run with normal GL APIs. > > BUG=skia:2992 > > Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1 > > Committed: https://skia.googlesource.com/skia/+/64492c43c3faee7ab0f69b1c84e0267616f85e52 TBR=mtklein@google.com,bsalomon@google.com,jvanverth@google.com,scroggo@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:2992 Review URL: https://codereview.chromium.org/1513703002
* A small text cleanupGravatar joshualitt2015-12-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1508853005
* Boost GrGLConicEffect's variables to all high precisionGravatar robertphillips2015-12-09
| | | | | | BUG=555779 Review URL: https://codereview.chromium.org/1513483002
* Attempt to land cache purge again [and regen bot logs if still failing]Gravatar bsalomon2015-12-09
| | | | | | TBR= Review URL: https://codereview.chromium.org/1510103002
* Revert of default SkPixelSerializer (patchset #2 id:20001 of ↵Gravatar halcanary2015-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: I was overconfident. Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b > > Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce TBR=reed@google.com,scroggo@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1511183002
* Use correct config variable in command buffer gl contextGravatar kkinnunen2015-12-08
| | | | | | | | | | | | | Use correct config variable in command buffer gl context. Before, the fConfig was errorneously used to initialize the local variable. eglChooseConfig would update the local variable and the fConfig member variable would never be updated. Also add error checks to all initialization function calls. BUG=skia: Review URL: https://codereview.chromium.org/1505233002
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b Review URL: https://codereview.chromium.org/1507123002
* [SkDebugger] Show more text blob detailsGravatar fmalita2015-12-08
| | | | | | | | | | * run count * glyph count (per run) * run paint (per run) R=robertphillips@google.com Review URL: https://codereview.chromium.org/1507033003
* Remove spew in GrDefaultPathRendererGravatar joshualitt2015-12-08
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1509913003
* Make SkCodec support peek() and read()Gravatar scroggo2015-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update SkCodec's dox to point out that some of the data must be read twice in order to decode - Add an accessor that reports how much is needed for reading twice - Make SkCodec default to use peek() If an input stream supports peek()ing, peek() instead of reading. This way the stream need not implement rewind() - Make SkCodec use read() + rewind() as a backup So that streams without peek() implemented can still function properly (assuming they can rewind). - read everything we may need to determine the format once In SkCodec::NewFromStream, peek()/read() 14 bytes, which is enough to read all of the types we support. Pass the buffer to each subtype, which will have enough info to determine whether it is the right type. This simplifies the code and results in less reading and rewinding. - NOTE: SkWbmpCodec needs the following number of bytes for the header + 1 (type) + 1 (reserved) + 3 (width - bytes needed to support up to 0xFFFF) + 3 (height - bytes needed to support up to 0xFFFF) = 8 - in SkWebpCodec, support using read + rewind as a backup if peek does not work. A change in Android will add peek() to JavaInputStreamAdapter. BUG=skia:3257 Review URL: https://codereview.chromium.org/1472123002
* Move texture drawing utility method to SkGpuDeviceGravatar jvanverth2015-12-08
| | | | | | BUG=skia:4542 Review URL: https://codereview.chromium.org/1506203002
* Add RTTI to all sanitizers.Gravatar herb2015-12-08
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1510843003
* Remove staging for SkImageDecoder::PeekerGravatar scroggo2015-12-08
| | | | | | | | | | Will no longer be needed once ag/817367 lands - Android will be inheriting directly from SkPngChunkReader, so no need for the intermediate. BUG=skia:4574 Review URL: https://codereview.chromium.org/1470913004
* Disable sanitizers with a blacklist.Gravatar mtklein2015-12-08
| | | | | | | | | | | | We think this might be more flexible. It allows, e.g, function-level blacklisting, and here an easy one-stop-shop blacklist for all of third_party/externals. BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot NOTREECHECKS=true Review URL: https://codereview.chromium.org/1509733003
* Add sk_careful_memcpy to catch undefined behavior in memcpy.Gravatar mtklein2015-12-08
| | | | | | | | | | | | | | | | | | It's undefined behavior to pass null as src or dst to memcpy, even if len is 0. This currently triggers -fsanitize=attribute-nonnull warnings, but also can lead to very unexpected code generation with GCC. sk_careful_memcpy() checks len first before calling memcpy(), which prevents that weird undefined situation. This allows me to mark all sanitizers as no-recover, i.e. make-the-bots-red fatal. CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot BUG=skia:4641 NOTREECHECKS=true Review URL: https://codereview.chromium.org/1510683002
* Revert of default SkPixelSerializer (patchset #1 id:1 of ↵Gravatar reed2015-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: Breaking DEPS roll (linker error) Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b TBR=scroggo@google.com,halcanary@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1505203003
* Stop wrapping images backed by generators as bitmaps in SkGpuDevice (except ↵Gravatar bsalomon2015-12-08
| | | | | | when tiling) Review URL: https://codereview.chromium.org/1510903002
* spin off remaining integer overflow fixesGravatar mtklein2015-12-08
| | | | | | | | | | | - Carmack rsqrt uses an int where it wants a uint32_t. - turn off all santizers (including signed-integer-overflow) in third_party/externals/sftntly. CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot BUG=skia:4635 Review URL: https://codereview.chromium.org/1511643002
* Improve nvpr glyph batchingGravatar cdalton2015-12-08
| | | | | | | | | | Batches together path range draws whose view matrices differ by a simple translation by pre-translating the individual path transforms during the copy. BUG=skia: Review URL: https://codereview.chromium.org/1507203002
* Allow LCD text to batch across colorchanges. This will always useGravatar joshualitt2015-12-08
| | | | | | | | color vertices, even when we can't batch across color changes BUG=skia: Review URL: https://codereview.chromium.org/1502253003
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Review URL: https://codereview.chromium.org/1507123002
* Remove drawPathsFromRange from GrDrawContextGravatar cdalton2015-12-08
| | | | | | | | | | Replaces drawPathsFromRange with a more general drawPathBatch method. While this still isn't perfect, it's a step in the right direction that removes the need for path range draws to fit in a public API. BUG=skia: Review URL: https://codereview.chromium.org/1506823004
* simplify the way we disable sanitizers for yasmGravatar mtklein2015-12-08
| | | | | | | | | | seems to work fine CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot BUG=skia: Review URL: https://codereview.chromium.org/1505013003
* Enable gpudft on GalaxyS3Gravatar joshualitt2015-12-08
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1509193002
* Loosen check for zero vectors in GrPathUtils::convert_noninflect_cubic_to_quadsGravatar robertphillips2015-12-08
| | | | | | | | In the repro case the conic in question has a replicated control point at the end. These points end up being slightly different by the time they get to convert_noninflect_cubic_to_quads so the initial checks for a zero vector don't fire. The following checks, in the constrainWithinTangents path, do fire however leading to a premature termination of conversion to quads. BUG=skia:4611 Review URL: https://codereview.chromium.org/1504983003
* Zero length lines may have caps, but do not need joins.Gravatar caryclark2015-12-08
| | | | | | | | | | Check to see if the point is preceeded or followed by a line with a computable tangent before adding the join. R=reed@google.com BUG=566075 Review URL: https://codereview.chromium.org/1504043002
* Make NVPR a GL context option instead of a GL contextGravatar kkinnunen2015-12-08
| | | | | | | | | | | | | | | Make NVPR a GL context option instead of a GL context. This may enable NVPR to be run with command buffer interface. No functionality change in DM or nanobench. NVPR can only be run with normal GL APIs. BUG=skia:2992 Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1 Review URL: https://codereview.chromium.org/1448883002
* Use correct fill type and bounds for NVPR paths that are stroked with SkiaGravatar kkinnunen2015-12-07
| | | | | | | | | | | | When using NVPR, sometimes paths must be stroked by Skia and then drawn with fill using NVPR. In these cases, use the fill type and bounds of the stroked path, not the original path. Fixes degeneratesegments for nvprmsaa backends. BUG=skia:4608 Review URL: https://codereview.chromium.org/1504753003
* SkPNGImageEncoder encodes all SkColorTypesGravatar halcanary2015-12-07
| | | | Review URL: https://codereview.chromium.org/1506663002
* Remove SK_IGNORE_GL_TEXTURE_TARGET from skia_for_chromium_defines.gypiGravatar bsalomon2015-12-07
| | | | | | This has been added to Chrome's SkUserConfig.h Review URL: https://codereview.chromium.org/1503173003
* fix funky formatting in SkNVRefCntGravatar mtklein2015-12-07
| | | | | | | | BUG=skia: TBR=reed@google.com No API change. Review URL: https://codereview.chromium.org/1505023002
* When was SkPDiff last used?Gravatar mtklein2015-12-07
| | | | | | BUG=skia:1451,skia:1463,skia:1798,skia:1859,skia:2710,skia:2711,skia:2712,skia:2713 Review URL: https://codereview.chromium.org/1502173003
* Make GrAtlasTextBlob non-virtualGravatar joshualitt2015-12-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1503213003
* Minor code cleanups in SkCanvas.Gravatar senorblanco2015-12-07
| | | | | | | | | | | Since the SK_SAVE_LAYER_BOUNDS_ARE_FILTERED path is long gone from SkCanvas, remove or localize some temporary variables. Cleanup only; no user-visible changes. BUG=skia: Review URL: https://codereview.chromium.org/1508823002
* SkPixelSerializer: support indexed pixelsGravatar halcanary2015-12-07
| | | | | | By taking a SkPixmap, SkPixelSerializer::encode() can now handle colortables. Review URL: https://codereview.chromium.org/1501303002
* add signed-integer-overflow to yasm exceptionsGravatar mtklein2015-12-07
| | | | | | | | BUG=skia:4635 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot Review URL: https://codereview.chromium.org/1509613002
* A small cleanup of GrAtlasTextContextGravatar joshualitt2015-12-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1502323002