aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* remove premature discard optimizationGravatar reed2015-06-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1212613005
* SoftLight with SkPMFloatGravatar mtklein2015-06-29
| | | | | | | | | | | | | | SSE speeds up about 4.5x over existing integer SSE, NEON speeds up about 3x over serial integer code. We expect 1-2 bit component diffs in the usual GMs. Still guarded by SK_SUPPORT_LEGACY_XFERMODES, which I'll now try to lift in Chrome. BUG=skia: Review URL: https://codereview.chromium.org/1221493002
* add getTextureHandle to SkSurfaceGravatar reed2015-06-29
| | | | | | BUG=485243 Review URL: https://codereview.chromium.org/1210303003
* add drawArraysInstanced to capsGravatar joshualitt2015-06-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1202383006
* Make SkPaint::glyphsToUnichars use explicit SkSurfacePropsGravatar robertphillips2015-06-26
| | | | | | BUG=skia:3984,skia:3934 Review URL: https://codereview.chromium.org/1211413003
* remove SkInstCntGravatar mtklein2015-06-26
| | | | | | | | | | | | | | It's been outclassed by Valgrind and leak sanitizer, and it seems to be causing problems for external folks building Skia. I'm not sure why our own builds seem unaffected. Latest thread: https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0 BUG=skia: Review URL: https://codereview.chromium.org/1217573002
* Turn off buffer mapping in ChromiumGravatar bsalomon2015-06-26
| | | | | | BUG=chromium:496224 Review URL: https://codereview.chromium.org/1211363006
* Add extra braces for uintNNxMx4_t initializers.Gravatar mtklein2015-06-26
| | | | | | | | | | | | These structs are always implemented as struct uintNNxMx4_t { uintNNxM val[4]; }; So, the first set of braces is for the struct, the second for val. BUG=skia: Review URL: https://codereview.chromium.org/1221453002
* Color dodge and burn with SkPMFloat.Gravatar mtklein2015-06-26
| | | | | | | | | | | | | | | | | Both 25-35% faster with SSE. With NEON, Burn measures as a ~10% regression, Dodge a huge 2.9x improvement. The Burn regression is somewhat artificial: we're drawing random colored rects onto an opaque white dst, so we're heavily biased toward the (d==da) fast path in the serial code. In the vector code there's no short-circuiting and we always pay a fixed cost for ColorBurn regardless of src or dst content. Dodge's fast paths, in contrast, only trigger when (s==sa) or (d==0), neither of which happens any more than randomly in our benchmark. I don't think (d==0) should happen at all. Similarly, the (s==0) Burn fast path is really only going to happen as often as SkRandom allows. In practice, the existing Burn benchmark is hitting its fast path 100% of the time. So I actually feel really great that this only dings the benchmark by 10%. Chrome's still guarded by SK_SUPPORT_LEGACY_XFERMODES, which I'll lift after finishing the last xfermode, SoftLight. BUG=skia: Review URL: https://codereview.chromium.org/1214443002
* Revert of Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 ↵Gravatar reed2015-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1203983003/) Reason for revert: fixes have landed in android Original issue's description: > Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1200323005/) > > Reason for revert: > Breaking the Android build. > > Original issue's description: > > remove SK_SUPPORT_LEGACY_PATHOP_ENUMS > > > > BUG=skia: > > TBR= > > > > Committed: https://skia.googlesource.com/skia/+/8bcc7a00febd737f7e82513bd5e4a697526626de > > TBR=reed@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ba9a4aa8550c982c480d03cb6ba2cabaf6209b41 TBR=scroggo@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1218523002
* Fix SkTileImageFilter clipping/cropRect interaction issueGravatar robertphillips2015-06-26
| | | | | | BUG=499499 Review URL: https://codereview.chromium.org/1210053003
* add/fix copyrightsGravatar reed2015-06-26
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1212393002
* Revert of Revert of added stroking support to ↵Gravatar fmalita2015-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrAALinearizingConvexPathRenderer (patchset #1 id:1 of https://codereview.chromium.org/1212833002/) Reason for revert: Manual roll is in: https://codereview.chromium.org/1212373002 Let's re-land this. Original issue's description: > Revert of added stroking support to GrAALinearizingConvexPathRenderer (patchset #6 id:100001 of https://codereview.chromium.org/1180903006/) > > Reason for revert: > speculative revert to try to fix DEPS roll (layouttests) > > Original issue's description: > > added stroking support to GrAALinearizingConvexPathRenderer > > > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/2436f191e6602953b32a51cf50f2d7a4e2af90fd > > TBR=bsalomon@google.com,robertphillips@google.com,ethannicholas@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/9730f4a663534009d216c2f6d834bd534dd44a3d TBR=bsalomon@google.com,robertphillips@google.com,ethannicholas@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1209003004
* Revert of added stroking support to GrAALinearizingConvexPathRenderer ↵Gravatar reed2015-06-26
| | | | | | | | | | | | | | | | | | | | | | (patchset #6 id:100001 of https://codereview.chromium.org/1180903006/) Reason for revert: speculative revert to try to fix DEPS roll (layouttests) Original issue's description: > added stroking support to GrAALinearizingConvexPathRenderer > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/2436f191e6602953b32a51cf50f2d7a4e2af90fd TBR=bsalomon@google.com,robertphillips@google.com,ethannicholas@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1212833002
* Revert of Revert of Return GrGLContext from GrTestTarget (patchset #1 id:1 ↵Gravatar reed2015-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1211123004/) Reason for revert: un-referting, did not help DEPS roll Original issue's description: > Revert of Return GrGLContext from GrTestTarget (patchset #3 id:40001 of https://codereview.chromium.org/1207393002/) > > Reason for revert: > speculative revert to unblock DEPS roll (layout-tests) > > Original issue's description: > > Return GrGLContext from GrTestTarget > > > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/b6d93ea428ca5d13641c35faca7d0380980a3a17 > > TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1852ec2b46a2a0efbb3550ff4d8b640f56a810e9 TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1215593002
* Revert of Return GrGLContext from GrTestTarget (patchset #3 id:40001 of ↵Gravatar reed2015-06-25
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1207393002/) Reason for revert: speculative revert to unblock DEPS roll (layout-tests) Original issue's description: > Return GrGLContext from GrTestTarget > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/b6d93ea428ca5d13641c35faca7d0380980a3a17 TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1211123004
* implement drawAtlas natively on gpu-deviceGravatar reed2015-06-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1216433002
* Return GrGLContext from GrTestTargetGravatar joshualitt2015-06-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1207393002
* added stroking support to GrAALinearizingConvexPathRendererGravatar ethannicholas2015-06-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1180903006
* fix up virtual / override stuffGravatar reed2015-06-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1210283002
* add drawImageNineGravatar reed2015-06-25
| | | | | | | | this also exposes nine-patch drawing directly to devices, and creates a shared iterator for unrolling a nine-patch into single rect->rect draws. BUG=skia: Review URL: https://codereview.chromium.org/1211583003
* What did we learn today? 255 != 256Gravatar mtklein2015-06-25
| | | | | | | | | vcvt_n_f32_u32 and _u32_f32 work in power-of-2 fixed point, so (...,8) meant 'please multiply or divide by 256'. We need to use 255. :( BUG=skia: Review URL: https://codereview.chromium.org/1204363002
* Convert SkPMFloat to [0,1] range and prune its API.Gravatar mtklein2015-06-25
| | | | | | | | | | | | | | | | | | | | | | | | Now that Sk4px exists, there's a lot less sense in eeking out every cycle of speed from SkPMFloat: if we need to go _really_ fast, we should use Sk4px. SkPMFloat's going to be used for things that are already slow: large-range intermediates, divides, sqrts, etc. A [0,1] range is easier to work with, and can even be faster if we eliminate enough *255 and *1/255 steps. This is particularly true on ARM, where NEON can do the *255 and /255 steps for us while converting float<->int. We have lots of experimental SkPMFloat <-> SkPMColor APIs that I'm now removing. Of the existing APIs, roundClamp() is the sanest, so I've kept only that, now called round(). The 4-at-a-time APIs never panned out, so they're gone. There will be small diffs on: colormatrix coloremoji colorfilterimagefilter fadefilter imagefilters_xfermodes imagefilterscropexpand imagefiltersgraph tileimagefilter BUG=skia: Review URL: https://codereview.chromium.org/1201343004
* Revert of Cleanup legacy NVPR-related definitions (patchset #3 id:40001 of ↵Gravatar fmalita2015-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1177243004/) Reason for revert: Broke the GPU SAN bots: https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/779/steps/dm/logs/stdio Original issue's description: > Cleanup legacy NVPR-related definitions > > Fixed-function NVPR codepaths were removed a while ago. Only NVPR API > version 1.3 (PathFragmentInputGen) was left working. Remove > backwards-compatibility code that was left behind. > > Remove some NVPR API function typedefs that were left from initial > commits. > > Remove PathCoords function pointer from GrGLInterface, it has > never been called and causes problems in the future, since it will > not be implemented in the Chromium pseudo extension. > > Committed: https://skia.googlesource.com/skia/+/fb8d6884e0e01d0c2f8596adf5af1efb0d08de7e TBR=joshualitt@google.com,cdalton@nvidia.com,bsalomon@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1206333003
* Cleanup legacy NVPR-related definitionsGravatar kkinnunen2015-06-25
| | | | | | | | | | | | | | | Fixed-function NVPR codepaths were removed a while ago. Only NVPR API version 1.3 (PathFragmentInputGen) was left working. Remove backwards-compatibility code that was left behind. Remove some NVPR API function typedefs that were left from initial commits. Remove PathCoords function pointer from GrGLInterface, it has never been called and causes problems in the future, since it will not be implemented in the Chromium pseudo extension. Review URL: https://codereview.chromium.org/1177243004
* Implement four more xfermodes with Sk4px.Gravatar mtklein2015-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | HardLight, Overlay, Darken, and Lighten are all ~2x faster with SSE, ~25% faster with NEON. This covers all previously-implemented NEON xfermodes. 3 previous SSE xfermodes remain. Those need division and sqrt, so I'm planning on using SkPMFloat for them. It'll help the readability and NEON speed if I move that into [0,1] space first. The main new concept here is c.thenElse(t,e), which behaves like (c ? t : e) except, of course, both t and e are evaluated. This allows us to emulate conditionals with vectors. This also removes the concept of SkNb. Instead of a standalone bool vector, each SkNi or SkNf will just return their own types for comparisons. Turns out to be a lot more manageable this way. BUG=skia: Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot Review URL: https://codereview.chromium.org/1196713004
* Revert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of ↵Gravatar mtklein2015-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1180983002/) Reason for revert: https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-MipsDSP2-Debug-Android/builds/1136/steps/build%20most/logs/stdio Original issue's description: > Add libjpeg-turbo library (depends on yasm) > Mangle external function names to avoid conflict with libjpeg > Take advantage of direct color conversion (RGBA, BGRA, 565) > Prepare to use jpeg_skip_scanlines (when it is upstreamed) > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1199253006
* Add libjpeg-turbo library (depends on yasm)Gravatar msarett2015-06-24
| | | | | | | | | | Mangle external function names to avoid conflict with libjpeg Take advantage of direct color conversion (RGBA, BGRA, 565) Prepare to use jpeg_skip_scanlines (when it is upstreamed) BUG=skia: Review URL: https://codereview.chromium.org/1180983002
* Revert of remove workaround for dx9 angle slow rgba pixel ops (patchset #1 ↵Gravatar bsalomon2015-06-24
| | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/1207003002/) Reason for revert: users are still on dx9 angle :( Original issue's description: > remove workaround for dx9 angle slow rgba pixel ops > > TBR=robertphillips@google.com > > Committed: https://skia.googlesource.com/skia/+/1e1adc33ba1acb9a2ad41c0a5a9b6166ee9d7a2a TBR=robertphillips@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1205183002
* Revert of Implement four more xfermodes with Sk4px. (patchset #16 id:290001 ↵Gravatar mtklein2015-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1196713004/) Reason for revert: 64-bit ARM build failures. Original issue's description: > Implement four more xfermodes with Sk4px. > > HardLight, Overlay, Darken, and Lighten are all > ~2x faster with SSE, ~25% faster with NEON. > > This covers all previously-implemented NEON xfermodes. > 3 previous SSE xfermodes remain. Those need division > and sqrt, so I'm planning on using SkPMFloat for them. > It'll help the readability and NEON speed if I move that > into [0,1] space first. > > The main new concept here is c.thenElse(t,e), which behaves like > (c ? t : e) except, of course, both t and e are evaluated. This allows > us to emulate conditionals with vectors. > > This also removes the concept of SkNb. Instead of a standalone bool > vector, each SkNi or SkNf will just return their own types for > comparisons. Turns out to be a lot more manageable this way. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc TBR=reed@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1205703008
* Implement four more xfermodes with Sk4px.Gravatar mtklein2015-06-24
| | | | | | | | | | | | | | | | | | | | | | | HardLight, Overlay, Darken, and Lighten are all ~2x faster with SSE, ~25% faster with NEON. This covers all previously-implemented NEON xfermodes. 3 previous SSE xfermodes remain. Those need division and sqrt, so I'm planning on using SkPMFloat for them. It'll help the readability and NEON speed if I move that into [0,1] space first. The main new concept here is c.thenElse(t,e), which behaves like (c ? t : e) except, of course, both t and e are evaluated. This allows us to emulate conditionals with vectors. This also removes the concept of SkNb. Instead of a standalone bool vector, each SkNi or SkNf will just return their own types for comparisons. Turns out to be a lot more manageable this way. BUG=skia: Review URL: https://codereview.chromium.org/1196713004
* remove workaround for dx9 angle slow rgba pixel opsGravatar bsalomon2015-06-24
| | | | | | TBR=robertphillips@google.com Review URL: https://codereview.chromium.org/1207003002
* Clarify iOS flush-to-zero status.Gravatar bungeman2015-06-24
| | | | | | | | | | | Modern processors support flush-to-zero and denormalized-are-zero for floating point operations (with ARM NEON unable to disable them). However, iOS on ARM is the only current system which defaults processes to using both all the time. However, this is only iOS on ARM, iOS on x86 (the simulator) does not. Correctly defining this allows the math tests to run error free in the simulator. Review URL: https://codereview.chromium.org/1203533003
* Cleanup: Comment and ordering changes.Gravatar herb2015-06-24
| | | | | | | This should be a whitespace only change. BUG=skia: Review URL: https://codereview.chromium.org/1194423004
* Add default for GrGLSLCaps::fGLSLGenerationGravatar jvanverth2015-06-24
| | | | Review URL: https://codereview.chromium.org/1203153002
* add SkCanvas::drawAtlasGravatar reed2015-06-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1181913003
* Alter shader code for soft light to avoid driver bug.Gravatar egdaniel2015-06-24
| | | | | | | | | | | | | | On the n5 there seems to be an issue where negating a variable at the start of an equation doesn't work. Moving the negated variable to a subtract at the end works around the issue (as would multiplying by -1.0). The main bug was caused by the -DaCub in the else if block, but I also adjusted the else block to make sure the same issue doesn't appear there at some later date. BUG=chromium:502434 Review URL: https://codereview.chromium.org/1210573002
* Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of ↵Gravatar scroggo2015-06-24
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1200323005/) Reason for revert: Breaking the Android build. Original issue's description: > remove SK_SUPPORT_LEGACY_PATHOP_ENUMS > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/8bcc7a00febd737f7e82513bd5e4a697526626de TBR=reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1203983003
* Move GLSL-specific routines/classes to separate glsl directoryGravatar jvanverth2015-06-24
| | | | | | | The purpose is to begin separating our GLSL-specific code from our GL-specific code, so it can be used with the GL45 platform Review URL: https://codereview.chromium.org/1202293002
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-24
| | | | | | Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a Review URL: https://codereview.chromium.org/1139753002
* remove SK_SUPPORT_LEGACY_PATHOP_ENUMSGravatar reed2015-06-23
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1200323005
* remove SK_SUPPORT_LEGACY_FILTERLEVEL_ENUMGravatar reed2015-06-23
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1205803002
* Make SkGpuDevice know its alpha typeGravatar bsalomon2015-06-23
| | | | | | | | Make SkImage_Gpu snapshots opaque if surface is opaque. BUG=skia:3965 Review URL: https://codereview.chromium.org/1205643002
* Make SkNSView's window accept mouseMoved eventsGravatar bsalomon2015-06-23
| | | | | | TBR=reed@google.com Review URL: https://codereview.chromium.org/1206563003
* Rename SkFontConfigParser_android SkFontMgr_android_parser.Gravatar bungeman2015-06-23
| | | | | | | | | There are a number of files with 'FontConfig' in their names which just have to do with font configuration, but nothing to do with the FontConfig project or even with each other. This clarifies that these files deal with parsing for the Android font manager. Review URL: https://codereview.chromium.org/1200103008
* Implement SkGLContext swapBuffers with fence syncsGravatar cdalton2015-06-23
| | | | | | | | | | | Improves the GPU measuring accuracy of nanobench by using fence syncs. Fence syncs are very widely supported and available on almost every platform. NO_MERGE_BUILDS BUG=skia: Review URL: https://codereview.chromium.org/1194783003
* Revert of Refactor GrBufferAllocPools to use resource cache (patchset #15 ↵Gravatar robertphillips2015-06-23
| | | | | | | | | | | | | | | | | | | id:280001 of https://codereview.chromium.org/1139753002/) Reason for revert: Will reland after Chromium branch Original issue's description: > Refactor GrBufferAllocPools to use resource cache > > Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a TBR=bsalomon@google.com,joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1204773003
* remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELSGravatar reed2015-06-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1201233002
* Revert of SkPDF: Annotations are clipped by canvas clip stack. (patchset #2 ↵Gravatar halcanary2015-06-23
| | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1148263005/) Reason for revert: http://crbug.com/503541 Original issue's description: > SkPDF: Annotations are clipped by canvas clip stack. > > Also, remove some SkPDFDevice functions. > > Will fix this GM: http://crrev.com/1159273003 > > BUG=skia:3872 > > Committed: https://skia.googlesource.com/skia/+/eee0e4e9d343d8b6c5ae2da7f17196f00d8859bc TBR=tomhudson@google.com,reed@google.com BUG=skia:3872 BUG=503541 Review URL: https://codereview.chromium.org/1200193003
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-23
| | | | Review URL: https://codereview.chromium.org/1139753002