aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Start objectifying GrAtlasTextBlobGravatar joshualitt2015-12-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1503193002
* Fix up signed-integer-overflow warningsGravatar tomhudson2015-12-07
| | | | | | | | | | | | | | | | | When checking whether a matrix was a pure scale, we subtracted 0x3f800000 from the diagonals; if the diagonal value was already very negative, we'd underflow. Replace subtraction with XOR. When dealing with repeating tiled bitmaps, when the bitmap was very large, we'd multiply an offset by 65535, possibly causing underflow. Throw in a cast to long (casting to unsigned also silences the warning and wouldn't involve extension, but I can't convince myself that it's correct). BUG=skia:4635 R=mtklein@google.com Review URL: https://codereview.chromium.org/1504933002
* Always use high precision on NDS transformGravatar joel.liang2015-12-07
| | | | | | | | | To fix the Chrome fillRect issue on Galaxy S6. We should use high precision for position related calculation. BUG=chromium:552999 Review URL: https://codereview.chromium.org/1500393002
* SkAlphaThresholdFilter.h allow flatteningGravatar halcanary2015-12-07
| | | | | | | | | | | | | Motivation: allows this: #include "SkAlphaThresholdFilter.h" void init() { SkAlphaThresholdFilter::InitializeFlattenables(); } BUG=skia:4613 Review URL: https://codereview.chromium.org/1500373003
* Pin result in SkATan2_255Gravatar robertphillips2015-12-07
| | | | | | BUG=555544 Review URL: https://codereview.chromium.org/1506913002
* better NEON div255Gravatar mtklein2015-12-07
| | | | | | | | | | | | | | | | | | | | | | | We were doing (x+127)/255 = ((x+128) + (x+128)>>8)>>8 in three instructions: 1) x += 128 2) shift x right 8 bits 3) add x and x>>8 together, then shift right more 8 bits Now do it as two instructions: 1) shift (x+128) right 8 bits 2) add x and (x+128)>>8 and 128 all together, then shift right 8 more bits On ARM this will be a 5-10% speedup for SrcATop, DstATop, Xor, Multiply, Difference, HardLight, Darken, and Lighten xfermodes. When we have a mask (e.g. text), *all* xfermodes except Plus will get a similar boost. This should mean now that (a*b).div255() is the same speed as a.approxMulDiv255(b) on both x86 and ARM, and of course it's perfect instead of approximate. So we should eliminate approxMulDiv255(), but I'll leave it to another CL, as it'll need Blink rebaselines. This CL should not change GMs or Blink. https://gold.skia.org/search2?issue=1502843002&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;client.skia.android:Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot,Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Release-Trybot Review URL: https://codereview.chromium.org/1502843002
* Matrix convolution bounds fix; affectsTransparentBlack fixes.Gravatar senorblanco2015-12-07
| | | | | | | | | | | | | | | | | | | | | Because the convolution kernel is (currently) applied in device space, there's no way to know which object-space pixels will be touched. So return false from canComputeFastBounds(). The results from the matrixconvolution GM were actually wrong, since they were showing edge differences on the clip boundaries, where they should really only show on crop boundaries. I added a crop to the GM to keep the results the same (which are useful to test the different convolution tile modes). While I was at it, SkImageFilter::affectsTransparentBlack() was inapplicable on most things except color filters, and its use on leaf nodes was confusing. So I removed it, and made SkImageFilter::canComputeFastBounds() virtual instead. BUG=skia:4630 Review URL: https://codereview.chromium.org/1500923004
* Add transfer buffer to GLCapsGravatar jvanverth2015-12-07
| | | | | | | | | Adds a check for PBO/transfer buffer support to GrGLCaps, and uses that to pick the correct buffer type. BUG=skia:4604 Review URL: https://codereview.chromium.org/1503593002
* detect when we can filter bitmaps/images directly, w/o a tmp layerGravatar reed2015-12-05
| | | | | | | | | | | | | | | | visual bench run on Mac Pro curr/maxrss loops min median mean max stddev samples config bench 100/100 MB 16 412µs 413µs 413µs 414µs 0% ▄▁▇▄▄▄▄█▄▃▅ gpu warmupbench 101/102 MB 32 547µs 548µs 611µs 1.24ms 34% █▁▁▁▁▁▁▁▁▁▁ gpu image-filter-sprite-draw-image 102/103 MB 32 547µs 548µs 721µs 1.23ms 41% █▁▇▁▁█▁▁▁▁▁ gpu image-filter-sprite-draw-bitmap 103/103 MB 64 546µs 546µs 546µs 547µs 0% ▆▄▂▁▇█▅▇▅▇▃ gpu image-filter-sprite-draw-sprite Should have no effect on Chrome while SK_SUPPORT_LEGACY_LAYER_BITMAP_IMAGEFILTERS is defined (which it is in chrome) BUG=skia:1073 Review URL: https://codereview.chromium.org/1491293002
* Revert of Matrix convolution bounds fix; affectsTransparentBlack fixes. ↵Gravatar senorblanco2015-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/1500923004/ ) Reason for revert: Introduced memory leak; pixel changes in Chrome. Original issue's description: > Matrix convolution bounds fix; affectsTransparentBlack fixes. > > Because the convolution kernel is (currently) applied in device space, > there's no way to know which object-space pixels will be touched. So > return false from canComputeFastBounds(). > > The results from the matrixconvolution GM were actually wrong, since > they were showing edge differences on the clip boundaries, where they > should really only show on crop boundaries. I added a crop to the GM > to keep the results the same (which are useful to test the different > convolution tile modes). > > While I was at it, SkImageFilter::affectsTransparentBlack() was > inapplicable on most things except color filters, and its use on > leaf nodes was confusing. So I removed it, and made > SkImageFilter::canComputeFastBounds() virtual instead. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/8705ec80518ef551994b82ca5ccaeb0241d6adec TBR=reed@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1497083005
* report back colorfilters in luaGravatar reed2015-12-04
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1498293002
* Matrix convolution bounds fix; affectsTransparentBlack fixes.Gravatar senorblanco2015-12-04
| | | | | | | | | | | | | | | | | | | | | Because the convolution kernel is (currently) applied in device space, there's no way to know which object-space pixels will be touched. So return false from canComputeFastBounds(). The results from the matrixconvolution GM were actually wrong, since they were showing edge differences on the clip boundaries, where they should really only show on crop boundaries. I added a crop to the GM to keep the results the same (which are useful to test the different convolution tile modes). While I was at it, SkImageFilter::affectsTransparentBlack() was inapplicable on most things except color filters, and its use on leaf nodes was confusing. So I removed it, and made SkImageFilter::canComputeFastBounds() virtual instead. BUG=skia: Review URL: https://codereview.chromium.org/1500923004
* use RawIter in hairpath (simplifies)Gravatar reed2015-12-04
| | | | | | | | no impact on nanobench BUG=skia: Review URL: https://codereview.chromium.org/1497283002
* Fix overflow caught by ASAN.Gravatar benjaminwagner2015-12-04
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1498923002
* Make SkAndroidCodec support icoGravatar msarett2015-12-04
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1472933002
* Speculative fix for win8 bot crash in ~GrAutoLocaleSetterGravatar bsalomon2015-12-04
| | | | Review URL: https://codereview.chromium.org/1493913008
* Revert of Make SkAndroidCodec support ico (patchset #7 id:130002 of ↵Gravatar scroggo2015-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1472933002/ ) Reason for revert: Crashing: https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-CPU-SSE4-x86-Release/builds/1499/steps/dm/logs/stdio Also, related ASAN failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/3676/steps/dm/logs/stdio Original issue's description: > Make SkAndroidCodec support ico > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1603e9310f62cf0dd543cdb09dea06aa78373f13 TBR=djsollen@google.com,msarett@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1498903004
* Reduce calls sites where both the GrDrawContext & GrRenderTarget are both passedGravatar robertphillips2015-12-04
| | | | | | TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1494083003
* Make SkAndroidCodec support icoGravatar msarett2015-12-04
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1472933002
* Load ANGLE EGL library correctly on LinuxGravatar kkinnunen2015-12-03
| | | | | | | | Assign dynamically loaded ANGLE EGL library to correct variable. BUG=skia: Review URL: https://codereview.chromium.org/1494963002
* Skip dm GPU configs when context creation failsGravatar kkinnunen2015-12-03
| | | | | | | Skip dm GPU configs when context creation fails instead of stopping the whole dm run. Review URL: https://codereview.chromium.org/1497713002
* Add option to draw wireframe batch boundsGravatar bsalomon2015-12-03
| | | | | | Committed: https://skia.googlesource.com/skia/+/26489ef21ff5df33b8cb5943fddfd4604e203960 Review URL: https://codereview.chromium.org/1494473005
* Add currScanline() getter to SkCodec APIGravatar msarett2015-12-03
| | | | | | | | | | | | | This is more correct than using nextScanline() for the SkGifCodec scanline decoder (since we will get a strange result in the interlaced case) and is necessary if we want to add scanline decoding to SkIcoCodec. This does not actually fix bugs or change behavior. BUG=skia: Review URL: https://codereview.chromium.org/1489163002
* Revert of Add option to draw wireframe batch bounds (patchset #6 id:100001 ↵Gravatar scroggo2015-12-03
| | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1494473005/ ) Reason for revert: Looks to be responsible for breaking builds e.g. https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/3030/steps/dm/logs/stdio Original issue's description: > Add option to draw wireframe batch bounds > > Committed: https://skia.googlesource.com/skia/+/26489ef21ff5df33b8cb5943fddfd4604e203960 TBR=joshualitt@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1492633007
* Add option to draw wireframe batch boundsGravatar bsalomon2015-12-03
| | | | Review URL: https://codereview.chromium.org/1494473005
* Create GLSLUniformHandler class for gpu backendGravatar egdaniel2015-12-03
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1490283004
* Add transfer buffer support.Gravatar jvanverth2015-12-03
| | | | | | | | BUG=skia:4604 Committed: https://skia.googlesource.com/skia/+/fa498fe12239988578465d0dee69f0d5645bb361 Review URL: https://codereview.chromium.org/1490473003
* Don't use the Sk4f gradient impl without SIMDGravatar fmalita2015-12-03
| | | | | | | | | | | Also remove the SK_SUPPORT_LEGACY_LINEAR_GRADIENT_TABLE guard since it is no longer used in Chromium. BUG=chromium:563492 R=reed@google.com,mtklein@google.com CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1489233005
* Revert of Add transfer buffer support. (patchset #9 id:160001 of ↵Gravatar egdaniel2015-12-03
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1490473003/ ) Reason for revert: speculative revert for deps roll failures Original issue's description: > Add transfer buffer support. > > BUG=skia:4604 > > Committed: https://skia.googlesource.com/skia/+/fa498fe12239988578465d0dee69f0d5645bb361 TBR=bsalomon@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4604 Review URL: https://codereview.chromium.org/1496843003
* API to support native scaling by image-generatorGravatar reed2015-12-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1396323007
* Wire up resource cache stats dumping in nanobenchGravatar joshualitt2015-12-02
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1495543003
* reset shader compilations for statsGravatar joshualitt2015-12-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1491823003
* Add transfer buffer support.Gravatar jvanverth2015-12-02
| | | | | | BUG=skia:4604 Review URL: https://codereview.chromium.org/1490473003
* Revert of skstd -> std for unique_ptr (patchset #17 id:320001 of ↵Gravatar mtklein2015-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1436033003/ ) Reason for revert: Chromium bots can't handle forward declared types, e.g. struct Foo { int x,y; std::unique_ptr<Foo> next; }; https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/86497 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 > > CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot > > Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065 > > Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c > > Committed: https://skia.googlesource.com/skia/+/dadfc245cc9a0279ff7b73da3344f2ca5d139907 TBR=bungeman@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4564 Review URL: https://codereview.chromium.org/1498583002
* skstd -> std for unique_ptrGravatar mtklein2015-12-02
| | | | | | | | | | | | | | | | | TBR=reed@google.com No public API changes. BUG=skia:4564 Committed: https://skia.googlesource.com/skia/+/755c553c17b82bb5de3d9cc8d3b2a866ff9e9e50 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot;client.skia:Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release-Trybot,Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release-Trybot Committed: https://skia.googlesource.com/skia/+/06189155d987db5c7e69015f6ea87c2168d6a065 Committed: https://skia.googlesource.com/skia/+/70e8dfca4a7f5bce97b8021a6e378c4828b09c8c Review URL: https://codereview.chromium.org/1436033003
* Reduce use of GrRenderTarget in GrTextContextsGravatar robertphillips2015-12-02
| | | | | | Cleanup prior to switching over to GrRenderTargetProxy. Review URL: https://codereview.chromium.org/1485973004
* Began logging more gpu stats from nanobenchGravatar joshualitt2015-12-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1489033004
* Remove plumbing of clipRect thoughout the TextContextsGravatar robertphillips2015-12-02
| | | | | | The RenderTarget was only being passed around to be able to recreate the clipRect. Review URL: https://codereview.chromium.org/1486323002
* Allow SkAndroidCodec to use SkPngChunkReaderGravatar msarett2015-12-02
| | | | | | | | | Also update documentation of SkPngChunkReader in SkCodec. BUG=skia: Review URL: https://codereview.chromium.org/1487583003
* 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
* Add in shader blending for CoverageSetOp XPGravatar egdaniel2015-12-01
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1488213002
* Retract GrRenderTarget a bitGravatar robertphillips2015-12-01
| | | | | | These sites don't necessarily need the full power of a GrRenderTarget object. This is a clean up for switching over to GrRenderTargetProxys. Review URL: https://codereview.chromium.org/1486923004
* Fix Google3 fonts. Use fontconfig rather than custom_directory_factory. Add ↵Gravatar benjaminwagner2015-12-01
| | | | | | | | | | Google3 font caching. Some future dependents require these changes. Depends on internal cl/108287941. Review URL: https://codereview.chromium.org/1471033002
* Replace D1G with a simpler implementation.Gravatar herb2015-12-01
| | | | Review URL: https://codereview.chromium.org/1403573002
* Add an SkPath conic conversion utility.Gravatar fmalita2015-12-01
| | | | | | | | | Expose SkConic::chopIntoQuadsPOW2() as SkPath::ConvertConicToQuads(). BUG=chromium:315277 R=reed@google.com Review URL: https://codereview.chromium.org/1484373002
* Revert of Make NVPR a GL context option instead of a GL context (patchset #2 ↵Gravatar bsalomon2015-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1448883002/ ) Reason for revert: BUG=skia:4609 skbug.com/4609 Seems like GrContextFactory needs to fail when the NVPR option is requested but the driver version isn't sufficiently high. 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 TBR=mtklein@google.com,jvanverth@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:2992 Review URL: https://codereview.chromium.org/1486153002
* Add Sk4f::ToBytes(uint8_t[16], Sk4f, Sk4f, Sk4f, Sk4f)Gravatar mtklein2015-12-01
| | | | | | | | | | | | This is a big speedup for float -> byte. E.g. gradient_linear_clamp_3color: x86-64 147µs -> 103µs (Broadwell MBP) arm64 2.03ms -> 648µs (Galaxy S6) armv7 1.12ms -> 489µs (Galaxy S6, same device!) BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.android:Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot Review URL: https://codereview.chromium.org/1483953002
* Make NVPR a GL context option instead of a GL contextGravatar kkinnunen2015-12-01
| | | | | | | | | | | | | 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 Review URL: https://codereview.chromium.org/1448883002
* Fix stroking of zero length paths with end caps on NVPRGravatar kkinnunen2015-12-01
| | | | | | | | | | Fix stroking of zero length paths with end caps on NVPR. In case of such paths, stroke them using Skia and just fill the path with NVPR. BUG=skia:4427 Review URL: https://codereview.chromium.org/1471763002
* Disable using dev bounds in Gr clip reduction code.Gravatar Brian Salomon2015-11-30
| | | | | | | | Enabling this broke GPU raster in Chrome. Disabling until bug diagnosed/fixed. TBR=joshualitt@googole.com Review URL: https://codereview.chromium.org/1484973002 .