aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* add SkRecordOptimize2 and an experimental API for more aggressive optsGravatar reed2015-11-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1462973002
* Fix UB in SkDivBitsGravatar mtklein2015-11-19
| | | | | | | | | | | | | DIVBITS_ITER was shifting bits up into the sign bit, which is a no-no. This turns numer into a uint32_t to make those defined, and adds a few notes. x >= 0 is always true for unsigned x, so we needed a few small logic refactors. BUG=skia:3562 Committed: https://skia.googlesource.com/skia/+/988adddd48322bfa3e3cb0c017cfce71fbbf1123 Review URL: https://codereview.chromium.org/1455163004
* Revert float xfermodes back to Sk4f (from Sk8f).Gravatar mtklein2015-11-19
| | | | | | | | | | | | | | | Generally this was a performance win, even on devices without AVX due to unrolling, but on ARM+NEON it looks like that unrolling hurt a bit. while (...) { blend a pixel } ~~~> while (...) { blend two pixels } if (n % 2) { blend last pixel } BUG=chromium:555278 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1465483002
* Fix BMP RLE bug: attempt 2Gravatar msarett2015-11-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1457213003
* Modernize SkRecordPattern.hGravatar mtklein2015-11-19
| | | | | | | | | | | | - Fold Or, Or3, Or4 into one flexible Or. - Fold Pattern1...Pattern7 into one flexible Pattern. - Rename Star Greedy Still fighting with a flexible get<N>() method instead of first, second, third, etc. BUG=skia: Review URL: https://codereview.chromium.org/1465443002
* Fix maybe unintialized warning for GrAutoLocaleSetterGravatar kkinnunen2015-11-19
| | | | | | | | | | | In function void test_GLPrograms(skiatest::Reporter*, GrContextFactory*): ../../../src/gpu/GrAutoLocaleSetter.h:47:35: error: als.GrAutoLocaleSetter::fOldLocale may be used uninitialized in this function [-Werror=maybe-uninitialized] From Build-Ubuntu-GCC-x86_64-Release-Trybot Review URL: https://codereview.chromium.org/1456383002
* Add SkRecord::defrag().Gravatar mtklein2015-11-19
| | | | | | | | | | | | | Called by SkRecordOptimize(), this moves all the NoOps to the end and slices them off. This implementation with std::remove_if() is linear and doesn't malloc. No diffs: https://gold.skia.org/search2?issue=1461663003&unt=true&query=source_type%3Dgm&master=false BUG=skia: Review URL: https://codereview.chromium.org/1461663003
* Move glsl onto EmitArgs struct for emitCodeGravatar egdaniel2015-11-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1453623003
* Fix leak in drawBitmapNineGravatar egdaniel2015-11-19
| | | | | | | | NOTREECHECKS=true BUG=skia: Review URL: https://codereview.chromium.org/1462893002
* [Reland] Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Make SkTLList prealloc its first block of nodesGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1458703005
* Make block size a template parameter of SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1457123002
* Revert SkBlitMask_opts.h back to hand-coded NEON.Gravatar mtklein2015-11-18
| | | | | | | | | SkPx has triggered a bunch of small (2-9%) regressions on NEON devices. BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1462783002
* Revert of Fix NVPR assert for equivalent ovals (patchset #1 id:1 of ↵Gravatar stephana2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1457073002/ ) Reason for revert: Causes failures on Android and Win8: ... ( 137/1245MB 9) 73.9ms unit test GpuLayerCachec:\0\build\slave\workdir\build\skia\include\private\skuniqueptr.h:164: failed assertion "get() != pointer()" Caught exception 2147483651 EXCEPTION_BREAKPOINT ... Original issue's description: > Fix NVPR assert for equivalent ovals > > For oval paths, GrPath ignores the point order and only uses the bounds > when building its key. This is problematic because > > 1) point order is important when dashing > 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal > to the cached SkPath - which is not the case for ovals with different > directions/different point order. > > With this CL we no longer use the reduced oval key when dashing, and > instead fall through to the more general path cases. The assert is > adjusted to accommodate "equivalent" ovals (when not dashing). > > Also re-enabled & updated the GpuDrawPath unit test (disabled in > https://codereview.chromium.org/1456463003/, presumably due to the use > of uninitialized SkRects). > > R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com > > Committed: https://skia.googlesource.com/skia/+/f9b1577d763988ebc043ddabf80674f71571ecff TBR=bsalomon@google.com,cdalton@nvidia.com,robertphillips@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1461913002
* simplify insertion methods for SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1459663002
* Fix NVPR assert for equivalent ovalsGravatar fmalita2015-11-18
| | | | | | | | | | | | | | | | | | | | | | For oval paths, GrPath ignores the point order and only uses the bounds when building its key. This is problematic because 1) point order is important when dashing 2) GrStencilAndCoverPathRenderer asserts that the lookup SkPath is equal to the cached SkPath - which is not the case for ovals with different directions/different point order. With this CL we no longer use the reduced oval key when dashing, and instead fall through to the more general path cases. The assert is adjusted to accommodate "equivalent" ovals (when not dashing). Also re-enabled & updated the GpuDrawPath unit test (disabled in https://codereview.chromium.org/1456463003/, presumably due to the use of uninitialized SkRects). R=bsalomon@google.com,robertphillips@google.com,cdalton@nvidia.com Review URL: https://codereview.chromium.org/1457073002
* Revert of Fix UB in SkDivBits (patchset #2 id:10002 of ↵Gravatar mtklein2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1455163004/ ) Reason for revert: Need to reland with #define guards for tiny layout test changes. (Yikes!) Original issue's description: > Fix UB in SkDivBits > > DIVBITS_ITER was shifting bits up into the sign bit, which is a no-no. > This turns numer into a uint32_t to make those defined, and adds a few notes. > > x >= 0 is always true for unsigned x, so we needed a few small logic refactors. > > BUG=skia:3562 > > Committed: https://skia.googlesource.com/skia/+/988adddd48322bfa3e3cb0c017cfce71fbbf1123 TBR=caryclark@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3562 Review URL: https://codereview.chromium.org/1457863002
* Make has GrBatchAtlas::ID() inlineableGravatar joshualitt2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1456113002
* Initial implementation of GPU no filter NinePatchGravatar joshualitt2015-11-18
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1454933002
* Fix GOOGLE3 Android build.Gravatar benjaminwagner2015-11-18
| | | | | | | | | | | DebugWriteToStderr isn't defined for Android. I'm not sure if I just didn't test compiling for Android or if this is due to a change in the base library. BUG=skia: No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/1438773003
* [debugger] Add visualization of center rect for drawBitmapNine callsGravatar robertphillips2015-11-18
| | | | Review URL: https://codereview.chromium.org/1462643002
* Fix has_aligned_samples helper for SkGpuDevice::drawTextureProducerGravatar Brian Salomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1454183002 .
* Fix BMP RLE bugGravatar msarett2015-11-18
| | | | | | | | decodeRows() should return an int, not an SkCodec::Result BUG=skia: Review URL: https://codereview.chromium.org/1457793003
* Convert SkGpuDevice::drawTextureAdjuster to SkGpuDevice::drawTextureProducerGravatar bsalomon2015-11-18
| | | | | | | | Move createFragmentProcessor to GrTextureProducer base class. Make non-tiled sw-bitmap draws go through drawTextureProducer. Review URL: https://codereview.chromium.org/1459433002
* Convert drawText to using the find and place code.Gravatar herb2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1448453002
* Fix buffer overrun, bit overrun and add a test.Gravatar herb2015-11-18
| | | | | | BUG=539691 Review URL: https://codereview.chromium.org/1453163002
* Fix UB in SkDivBitsGravatar mtklein2015-11-18
| | | | | | | | | | | DIVBITS_ITER was shifting bits up into the sign bit, which is a no-no. This turns numer into a uint32_t to make those defined, and adds a few notes. x >= 0 is always true for unsigned x, so we needed a few small logic refactors. BUG=skia:3562 Review URL: https://codereview.chromium.org/1455163004
* Add ShaderBuilders to EmitArgs and remove gettings from ProgBuilder.Gravatar egdaniel2015-11-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1457543003
* div255(x) as ((x+128)*257)>>16 with SSEGravatar mtklein2015-11-17
| | | | | | | | | | | | | | | | | _mm_mulhi_epu16 makes the (...*257)>>16 part simple. This seems to speed up every transfermode that uses div255(), in the 7-25% range. It even appears to obviate the need for approxMulDiv255() on SSE. I'm not sure about NEON yet, so I'll keep approxMulDiv255() for now. Should be no pixels change: https://gold.skia.org/search2?issue=1452903004&unt=true&query=source_type%3Dgm&master=false BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1452903004
* fix ninepatch iter from generating invalid rectsGravatar joshualitt2015-11-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1451183004
* trim some fat from SSE2 fixed point alpha codeGravatar mtklein2015-11-17
| | | | | | | | | | | | - extract alpha from a pixel: 5 1-cycle ops to 4 1-cycle ops - load alphas: drop 4 unnecessary ops Should be no pixel diffs. BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1447273004
* SkTextBlob should store per-run text alignmentGravatar fmalita2015-11-17
| | | | | | | | | | SkPaint::Align is only observed for kDefault_Positioning AFAICT, but part of the run logical font nevertheless. BUG=skia:4567 R=mtklein@google.com,halcanary@google.com Review URL: https://codereview.chromium.org/1447403003
* Make SkAndroidCodec support gifGravatar msarett2015-11-17
| | | | | | | | | Involves a few bug fixes in SkCodec_libgif and a bit more complexity in SkSwizzler. BUG=skia:4405 Review URL: https://codereview.chromium.org/1445313002
* Parametric SkPath oval/rect/rrect starting pointGravatar fmalita2015-11-17
| | | | | | | | | | | Extend the SkPath API to allow specifying the contour starting point. This will allow removing the explicit cubic code from Blink/Path. BUG=chromium:315277 R=reed@google.com,caryclark@google.com Review URL: https://codereview.chromium.org/1452203002
* Make SkAndroidCodec support bmpGravatar msarett2015-11-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1443783002
* Implement multi-color-stops in linear gradients using Sk4fGravatar reed2015-11-17
| | | | | | | | #define SK_SUPPORT_LEGACY_LINEAR_GRADIENT_TABLE to restore the old behavior BUG=skia:517 Review URL: https://codereview.chromium.org/1436663003
* Add decodeYUV8Planes to SkImageDecoder_emptyGravatar scroggo2015-11-17
| | | | | | BUG=skia:4562 Review URL: https://codereview.chromium.org/1456603002
* Respect SkPictureRecorder::kPlaybackDrawPicture_RecordFlag for SkDrawablesGravatar djsollen2015-11-17
| | | | Review URL: https://codereview.chromium.org/1452193002
* De-spam SkOpts.cppGravatar mtklein2015-11-16
| | | | | | | | | - stop printing when we detect sse4.2 and avx2 - that TODO is pretty well done BUG=skia: Review URL: https://codereview.chromium.org/1445343002
* Make SkAndroidCodec support wbmpGravatar msarett2015-11-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1445643002
* Only support jpeg, png, and webp for BRDGravatar msarett2015-11-16
| | | | | | | | | This a safety check to ensure that we don't accidentally ship subset decoders for non-required formats. BUG=skia: Review URL: https://codereview.chromium.org/1446543002
* Revert of skstd -> std for unique_ptr (patchset #9 id:160001 of ↵Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1436033003/ ) Reason for revert: 10.9 bots are too old too. Original issue's description: > skstd -> std for unique_ptr > > TBR=reed@google.com > No public API changes. > > BUG=skia:4564 > > Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 TBR=bungeman@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4564 Review URL: https://codereview.chromium.org/1446413002
* skstd -> std for unique_ptrGravatar mtklein2015-11-16
| | | | | | | | | TBR=reed@google.com No public API changes. BUG=skia:4564 Review URL: https://codereview.chromium.org/1436033003
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba Review URL: https://codereview.chromium.org/1436973003
* Optionally pass rendertarget to getTestTargetGravatar robertphillips2015-11-16
| | | | | | | | This shouldn't really make any difference but allocating and holding on to a GrRenderTarget for each test target generates image differences for Mali GPUs. This CL allows an existing render target to be used for the test target. TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1447113002
* Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 ↵Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1436973003/ ) Reason for revert: gotta put back *compute = 0. Original issue's description: > Switch uses of SkChecksum::Compute to Murmur3. > > SkChecksum::Compute is a very, very poorly distributed hash function. > This replaces all remaining uses with Murmur3. > > The only interesting stuff is in src/gpu. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac > > Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba TBR=bsalomon@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1448023005
* SkPDF: fix large-number bugGravatar halcanary2015-11-16
| | | | | | | | | Example: https://fiddle.skia.org/c/db95a3f6c928017635c4f4ddf25f2a7b BUG=skia:257 Review URL: https://codereview.chromium.org/1438503002
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Review URL: https://codereview.chromium.org/1436973003
* Increase the amount of debug information printed out by batchesGravatar robertphillips2015-11-16
| | | | | | | | | Untangling MDB bugs requires more information. In particular the render targets. BUG=skia:4094 TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1443763002
* Add support for EGLImage to GrGLInterfaceGravatar bsalomon2015-11-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1434813002