aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
Commit message (Collapse)AuthorAge
* Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor*Gravatar bsalomon2015-08-28
| | | | Review URL: https://codereview.chromium.org/1316513002
* change colortable to use factory for reinflating, check for emptyGravatar reed2015-08-28
| | | | | | BUG=525763 Review URL: https://codereview.chromium.org/1307023004
* Replace SkPin32 with SkTPin and remove.Gravatar bungeman2015-08-28
| | | | | | | SkPin32 is already just forwarding to SkTPin, so convert existing users and remove SkPin32. Review URL: https://codereview.chromium.org/1314583003
* Remove sys/types.h include from SkTypes.h.Gravatar bungeman2015-08-28
| | | | | | | It appears this was added to support SkToOffT, but SkToOffT is no longer used, so it is removed as well. Review URL: https://codereview.chromium.org/1306963004
* Clean up SkTLogic.Gravatar bungeman2015-08-28
| | | | | | | | | This change regularizes Skia's type traits so that when <type_traits> can finally be used the transition is easier. Various traits are renamed to match <type_traits> and placed in the skstd namespace. Current users of these traits are updated. Review URL: https://codereview.chromium.org/1317593004
* Convert child FPs from refs to pending executions when parent convertsGravatar bsalomon2015-08-27
| | | | Review URL: https://codereview.chromium.org/1315923004
* Remove overly complicated GR_CREATE_STATIC_PROCESSOR macroGravatar mdempsky2015-08-27
| | | | | | | | | | | | | | | | | | | This macro was responsible for producing code like: static SkAlignedStorage<sizeof(Foo)> g_gFoo_Storage; static Foo* gFoo = new(g_gFoo_Storage.get()) Foo; static SkAutoTDestroy<Foo> gFoo_ad(gFoo); which would allocate static storage for an object of type Foo (g_gFoo_Storage), lazily instantiate the object in that memory (via gFoo's initializer), and then ensure that at global destruction time the object is destroyed (via gFoo_Ad's destructor). However, the exact same effect is achieved by just writing: static Foo gFoo; Review URL: https://codereview.chromium.org/1314763009
* skia: add ability to load command_buffer_gles2Gravatar hendrikw2015-08-27
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1306823003
* [tracing] Add support for skia caches to dump memory statsGravatar ssid2015-08-27
| | | | | | | | | Dump the memory statistics of resource cache and glyph cache using the SkTraceMemoryDump interface. BUG=chromium:503168 Review URL: https://codereview.chromium.org/1313793004
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-27
| | | | | | Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 Review URL: https://codereview.chromium.org/1307223004
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* zero-length cap fixGravatar caryclark2015-08-26
| | | | | | | | | | | | | | | | | | Re-land; layout tests are suppressed and gm differences are understood. A merge conflict prevented a automatic reland. If the endcap is not butt, draw the endcaps even when the line has zero length. If the dash length is zero, generate a zero length line segment. Treat a move followed by a close as a move followed by a zero-length line. TBR=reed@google.com BUG=422974 Review URL: https://codereview.chromium.org/1314213002
* Revert of Remove GrStagedProcessor, remove the word Stage as it applies to ↵Gravatar rmistry2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ ) Reason for revert: Causes bot failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639 https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702 https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223 Original issue's description: > Remove GrStagedProcessor, remove the word Stage as it applies to FPs > > Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1306803003
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-26
| | | | Review URL: https://codereview.chromium.org/1307223004
* Remove include of stdlib.h from SkTypes.h.Gravatar bungeman2015-08-26
| | | | | | | | | | | | | | | Unfortunately, immintrin.h (which is also included by SkTypes) includes xmmintrin.h which includes mm_malloc.h which includes stdlib.h for malloc even though, from the implementation, it is difficult to see why. Fortunately, arm_neon.h does not seem to be involved in such shenanigans, so building for Android will keep things sane. TBR=reed@google.com Doesn't change Skia API, just moves an include. Review URL: https://codereview.chromium.org/1313203003
* Remove SK_OFFSETOF from SkTypes, clean up offsetof usage.Gravatar bungeman2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The motivation for this was to remove SK_OFFSETOF from SkTypes, but this CL is mostly about cleaning up our use of offsetof generally. SK_OFFSETOF is removed to SkTypes and added to the two places it is actually used (for the non standard behavior of finding the offset of fields in types which are not standard layout). Older versions of gcc required POD for offsetof to be used without warning. Newer versions require the more relaxed standard layout. Now that we no longer build on older versions of gcc, remove the old warning suppressions. PODMatrix is renamed to AggregateMatrix. SkMatrix is already POD (trivial and standard layout). The PODMatrix name implies that the POD-ness is needed for the offsetof, but it is actually the aggregate attribute which is needed for compile time constant initialization. This makes it more obvious that this can be revisited after we can rely on constexpr constructors. This also adds skstd::declval since this allows removal of existing awkward code which casts a constant to a pointer to find the size of a field. TBR=reed@google.com No API change, only removes unused macro. Review URL: https://codereview.chromium.org/1309523003
* Enable debug builds in the Android frameworkGravatar djsollen2015-08-24
| | | | Review URL: https://codereview.chromium.org/1297093004
* Explicitly friend ::SkPrivateEffectInitializer to flattenables.Gravatar mtklein2015-08-24
| | | | | | | | | | | | | Looks like the -Wmicrosoft warnings in the bug are coming up specificically because many the effects in SkLightingImageFilter are defined inside an anonymous namespace (spanning, I think, lines 33-702 today). BUG=skia:4091 No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/1311783004
* Add build targets for advanced Intel instruction sets (1 of 3).Gravatar mtklein2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | CL (1 of 3) adds empty lists in our .gypi, and builds the files in those empty lists with the appropriate flags. CL (2 of 3) will have Chrome's GYP and GN files read these lists, and build them with the appropriate flags. CL (3 of 3) will add runtime detection and stub files to the lists with empty Init_sse42(), Init_avx(), Init_avx2() methods. After that, we should be able to use SSE 4.2, AVX, and AVX2 if desired. Some motivation: - SSE 4.2 adds some sweet string-oriented methods that can help us write fast high quality 32-bit hashes. - AVX is SSE doubled, e.g. 8 floats or two SkPMFloat at a time. - AVX2 is SSE2 doubled, e.g. 8 pixels at a time. BUG=skia:4117 Review URL: https://codereview.chromium.org/1290423007
* Revert of experiment with zero-length round capped line segments (patchset ↵Gravatar caryclark2015-08-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #4 id:60001 of https://codereview.chromium.org/1309753002/ ) Reason for revert: More GMs changed than I expected. Will probably affect layout tests as well; reverting until I can verify that the changes are correct. Original issue's description: > experiment with zero-length round capped line segments > > If the endcap is not butt, draw the endcaps even when the line > has zero length. > > If the dash length is zero, generate a zero length line segment. > > Treat a move followed by a close as a move followed by a zero-length > line. > > R=reed@google.com,schenney@google.com > BUG=422974 > > Committed: https://skia.googlesource.com/skia/+/dd3c165828fffb369d0f4b13b48381169a0249a9 TBR=reed@google.com,schenney@google.com,schenney@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=422974 Review URL: https://codereview.chromium.org/1304163008
* experiment with zero-length round capped line segmentsGravatar caryclark2015-08-21
| | | | | | | | | | | | | | | If the endcap is not butt, draw the endcaps even when the line has zero length. If the dash length is zero, generate a zero length line segment. Treat a move followed by a close as a move followed by a zero-length line. R=reed@google.com,schenney@google.com BUG=422974 Review URL: https://codereview.chromium.org/1309753002
* Create separate entry points for the various flavors of drawRectGravatar joshualitt2015-08-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1308503002
* Reland of Implement canComputeFastBounds() for image filters. (patchset #1 ↵Gravatar senorblanco2015-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/1300403003/ ) Reason for revert: The Mac compile issue was fixed here: https://chromium.googlesource.com/chromium/src/+/fdd331a42ae0b9a6909a121020735161ab61c6e5 Original issue's description: > Revert of Implement canComputeFastBounds() for image filters. (patchset #8 id:130001 of https://codereview.chromium.org/1296943002/ ) > > Reason for revert: > This causes a syntax error. > > http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/87819/steps/compile%20%28with%20patch%29/logs/stdio > > Original issue's description: > > Implement canComputeFastBounds() for image filters. > > > > Image filters have never implemented this check, which means that > > filters which affect transparent black falsely claim they can compute > > their bounds. > > > > Implemented an affectsTransparentBlack() virtual for image > > filters, and a similar helper function for color filters. > > > > This will affect the following GMs: imagefiltersscaled > > (lighting, perlin noise now filter to clip), > > colorfilterimagefilter (new test case), imagefiltersclipped > > (perlin noise now filters to clip). > > > > Note: I de-inlined SkPaint::canComputeFastBounds() to avoid adding > > a dependency from SkPaint.h to SkImageFilter.h.h. Skia benches show > > no impact from this change, but will watch the perf bots carefully. > > > > BUG=4212 > > > > Committed: https://skia.googlesource.com/skia/+/915881fe743f9a789037695f543bc6ea189cd0cb > > TBR=reed@google.com,senorblanco@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=4212 > > Committed: https://skia.googlesource.com/skia/+/12d8472d31ea5edb636d7d5214db253570115c40 TBR=reed@google.com,herb@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=4212 Review URL: https://codereview.chromium.org/1301823005
* Add ANGLE workaround to prefer flushes over VRAM usageGravatar robertphillips2015-08-20
| | | | | | | | | | | On the whole, https://codereview.chromium.org/1286203002/ (Defer flushes if kPreferNoIO is specified) improved performance but it did cause a performance regression on ANGLE. This CL disables the deferral of flushes on ANGLE until we can add a separate incremental flushing mechanism. TBR=bsalomon@google.com BUG=skia:4201 BUG=521529 Review URL: https://codereview.chromium.org/1287193008
* Revert of Implement canComputeFastBounds() for image filters. (patchset #8 ↵Gravatar herb2015-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:130001 of https://codereview.chromium.org/1296943002/ ) Reason for revert: This causes a syntax error. http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/87819/steps/compile%20%28with%20patch%29/logs/stdio Original issue's description: > Implement canComputeFastBounds() for image filters. > > Image filters have never implemented this check, which means that > filters which affect transparent black falsely claim they can compute > their bounds. > > Implemented an affectsTransparentBlack() virtual for image > filters, and a similar helper function for color filters. > > This will affect the following GMs: imagefiltersscaled > (lighting, perlin noise now filter to clip), > colorfilterimagefilter (new test case), imagefiltersclipped > (perlin noise now filters to clip). > > Note: I de-inlined SkPaint::canComputeFastBounds() to avoid adding > a dependency from SkPaint.h to SkImageFilter.h.h. Skia benches show > no impact from this change, but will watch the perf bots carefully. > > BUG=4212 > > Committed: https://skia.googlesource.com/skia/+/915881fe743f9a789037695f543bc6ea189cd0cb TBR=reed@google.com,senorblanco@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=4212 Review URL: https://codereview.chromium.org/1300403003
* SkImage method for detecting lazy decodingGravatar fmalita2015-08-20
| | | | | | | BUG=skia:4224 R=reed@google.com Review URL: https://codereview.chromium.org/1305453007
* Introduce interface for memory dumpsGravatar primiano2015-08-20
| | | | | | BUG=chromium:503168 Review URL: https://codereview.chromium.org/1300103004
* Use static_assert instead of SK_COMPILE_ASSERT.Gravatar bungeman2015-08-20
| | | | | | | Now that static_assert is allowed, there is no need to use a non- standard compile time assertion Review URL: https://codereview.chromium.org/1306443004
* Implement canComputeFastBounds() for image filters.Gravatar senorblanco2015-08-20
| | | | | | | | | | | | | | | | | | | | | | Image filters have never implemented this check, which means that filters which affect transparent black falsely claim they can compute their bounds. Implemented an affectsTransparentBlack() virtual for image filters, and a similar helper function for color filters. This will affect the following GMs: imagefiltersscaled (lighting, perlin noise now filter to clip), colorfilterimagefilter (new test case), imagefiltersclipped (perlin noise now filters to clip). Note: I de-inlined SkPaint::canComputeFastBounds() to avoid adding a dependency from SkPaint.h to SkImageFilter.h.h. Skia benches show no impact from this change, but will watch the perf bots carefully. BUG=4212 Review URL: https://codereview.chromium.org/1296943002
* Update SkLightingShader to support rotationGravatar robertphillips2015-08-20
| | | | | | | | | | | | | This also: makes the SkLightingShader handle normal maps where the rects aren't aligned between the diffuse and normal maps. adds a light aggregating class (Lights) to SkLightingShader (along with a Builder nested class). Split out of https://codereview.chromium.org/1261433009/ (Add SkCanvas::drawLitAtlas call) Committed: https://skia.googlesource.com/skia/+/45b59ed6e4e231814dbdb9f707b3d2a7ee50de84 Review URL: https://codereview.chromium.org/1291783003
* SkColorCubeFilter: require alpha == 0xFF.Gravatar mtklein2015-08-19
| | | | | | | | This is about a 12% improvement on my desktop, from 134 to 118ms on our bench. BUG=skia: Review URL: https://codereview.chromium.org/1295873004
* Revert "Update SkLightingShader to support rotation"Gravatar robertphillips2015-08-19
| | | | | | | | This reverts commit 45b59ed6e4e231814dbdb9f707b3d2a7ee50de84. TBR=herb@google.com Review URL: https://codereview.chromium.org/1304673002
* private iterator to visit all resource cache entriesGravatar reed2015-08-19
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1271033002
* Move SkTemplates.h to private.Gravatar bungeman2015-08-19
| | | | | | | | SkTemplates.h contains a number of Skia specific utilities which are not designed for external use. In addition to reducing the external support burden, this will allow Skia to freely refactor this file. Review URL: https://codereview.chromium.org/1272293004
* change asABitmap to isABitmap on shaderGravatar reed2015-08-19
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1287263005
* No need to re-declare pure virtual name().Gravatar mtklein2015-08-19
| | | | | | | | | Fixes inconsistent override warning. BUG=skia: TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1293413003
* Update SkLightingShader to support rotationGravatar robertphillips2015-08-19
| | | | | | | | | | | This also: makes the SkLightingShader handle normal maps where the rects aren't aligned between the diffuse and normal maps. adds a light aggregating class (Lights) to SkLightingShader (along with a Builder nested class). Split out of https://codereview.chromium.org/1261433009/ (Add SkCanvas::drawLitAtlas call) Review URL: https://codereview.chromium.org/1291783003
* Revert of cast SK_ARRAY_COUNT to make it sign agnostic (patchset #1 id:1 of ↵Gravatar caryclark2015-08-19
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1299943002/ ) Reason for revert: fails on chrome build on windows Original issue's description: > cast SK_ARRAY_COUNT to make it sign agnostic > > By adding a cast to SK_ARRAY_COUNT, the compiler treats the > compile-time value as if it were a const int, and like regular > numbers, permits it to be compared to signed and unsigned > numbers freely. > > R=reed@google.com > > Committed: https://skia.googlesource.com/skia/+/bca86202a48b2afa527b6e40d8b360ce3bc7c2e7 TBR=reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1285263007
* cast SK_ARRAY_COUNT to make it sign agnosticGravatar caryclark2015-08-19
| | | | | | | | | | | By adding a cast to SK_ARRAY_COUNT, the compiler treats the compile-time value as if it were a const int, and like regular numbers, permits it to be compared to signed and unsigned numbers freely. R=reed@google.com Review URL: https://codereview.chromium.org/1299943002
* Use calloc to allocate data that will be uploaded to vertex/index buffers in ↵Gravatar bsalomon2015-08-19
| | | | | | | | | Chrome BUG=chromium:454267 BUG=chromium:522315 Review URL: https://codereview.chromium.org/1300123002
* This change is in preparation for updating how processor keys and meta keys ↵Gravatar wangyix2015-08-19
| | | | | | | | are generated for frag procs. BUG=skia:4182 Review URL: https://codereview.chromium.org/1298233002
* remove SkDeferredCanvasGravatar reed2015-08-19
| | | | | | | | Waiting a day or so to see if the blink-removal of SkDeferredCanvas sticks BUG=skia: Review URL: https://codereview.chromium.org/1269093002
* Allow setting of GrBatchFontCache atlas sizesGravatar joshualitt2015-08-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1255943006
* Test scaling for small imagesGravatar msarett2015-08-18
| | | | | | | | | | We don't want to test small images on Gold because they are not interested to look at. Instead, I wrote a unit test to verify that scaling small images does not cause crashes. BUG=skia: Review URL: https://codereview.chromium.org/1287863004
* When getGLInstance is called on a frag proc, the resulting ↵Gravatar wangyix2015-08-18
| | | | | | | | GrGLFragmentProcessor will be the root of a tree of GrGLFragmentProcessors that mirrors the GrFragmentProcessor's tree. This allows setData() to be called recursively (removing the responsibility from compose shader) and allows gl instances direct access to their children gl instances so they can emit their code. BUG=skia:4182 Review URL: https://codereview.chromium.org/1287023009
* Add subsets to SkImageGenerator and SkImageCacheratorGravatar reed2015-08-18
| | | | | | | | ... to support subsets in SkImage! BUG=skia: Review URL: https://codereview.chromium.org/1301633002
* Deduplicate typefaces across sub-picturesGravatar mtklein2015-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Old flow to serialize a picture: 1) serialize picture ops 2) serialize all sub pictures recursively 3) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go 4) serialize the factories and typefaces 5) serialize the bytes from 3) This allows the data in step 5) to refer to the deduplicated factories and typefaces from step 4). But, each sub picture in step 2) is completely siloed, so they can't dedup with the parent picture or each other. New flow: 1) serialize picture ops 2) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go 3) dummy-serialize sub pictures into /dev/null, with the effect of adding any new typefaces to our dedup set 4) serialize the factories and typefaces 5) serialize the bytes from 2) 6) serialize all sub pictures recursively, with perfect deduplication because of step 3). Now all typefaces in the top-level picture and all sub pictures recursively should end up deduplicated in the top-level typeface set. Decoding changes are similar: we just thread through the top-level typefaces to the sub pictures. What's convenient / surprising is that this new code correctly reads old pictures if we just have each picture prefer its local typeface set over the top-level one: old pictures always just use their own typefaces, and new pictures always use the top-level ones. BUG=skia:4092 Review URL: https://codereview.chromium.org/1233953004
* Made isEqual in GrFragmentProcessor recursiveGravatar wangyix2015-08-18
| | | | | | | | | | Added comment about how computeInvariantOutput() is non-recursive in GrFragmentProcessor Made isEqual() recursive in GrFragmentProcessor BUG=skia:4182 Review URL: https://codereview.chromium.org/1287343005
* Added class AutoFragmentChildProcAdvance to be constructed before a child ↵Gravatar wangyix2015-08-18
| | | | | | | | | | | | | | | | | | emitCode and destructed after Fixed wrong indent Changed auto child advance back to backwards linear search for getting subset of coords and samplers array of a child Used offset from parent instead of backwards linear search to find a child proc's coords and transforms in Auto...Advance append mangleString to variable name in nameVariable() BUILDS! Added AutoFragmentChildProcAdvance class; fixed a few errors from previous commits BUG=skia:4182 Review URL: https://codereview.chromium.org/1286293002
* Revert[8] "move some public headers into private"Gravatar reed2015-08-17
| | | | | | | | | This reverts commit fb28cd2b13d76c324570341e1155aaadc1b532b6. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1298833002