aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
Commit message (Collapse)AuthorAge
* Combine native sampling with samplingGravatar scroggo2015-11-03
| | | | | | | | | | | | In SkSampledCodec, allow the native codec to do its scaling first, then sample on top of that. Since the only codec which can do native scaling is JPEG, and we know what it can do, hard-code for JPEG. Check to see if the sampleSize is something JPEG supports, or a multiple of something it supports. If so, use JPEG directly or combine them. BUG=skia:4320 Review URL: https://codereview.chromium.org/1417583009
* Add cropped-then-expanded test cases to blur_image_filter tests.Gravatar senorblanco2015-10-30
| | | | | | | | | | These are benches similar to the imagefilterscropexpand GM: an input filter is cropped to a smaller size, then the blur is re-expanded out to a larger size. BUG=skbug:4502 Review URL: https://codereview.chromium.org/1412373004
* nanobench: fix and simplify --samplingTimeGravatar mtklein2015-10-28
| | | | | | | | | | | | | | | | | | | | Recent changes to WallTimer broke --samplingTime. In particular, this idiom became nonsensical: WallTimer timer; timer.start(); do { ... timer.end(); } while(timer.fWall < ...); WallTimer started making private use of fWall between when start() and end() were called, so the second time around the loop we end up with nonsense. If that makes no sense, don't worry. The code here using now_ms() is just as fast, just as precise, and clearer. I took the opportunity to simplify --samplingTime <complicated string parsing> to --ms <int>, and to simplify the code that depends on it. BUG=skia: Review URL: https://codereview.chromium.org/1419103004
* Refactor SkBitmapRegionDecoderInterface for AndroidGravatar msarett2015-10-27
| | | | | | | | | | The result SkBitmap, the pixel allocator, and the alpha preference need to be communicated from the client to the region decoder. BUG=skia: Review URL: https://codereview.chromium.org/1418093006
* Flush GrContext between benchmark draw loopsGravatar cdalton2015-10-26
| | | | | | | | | | | | This change updates a small subset of benchmarks to flush the GrContext between draw loops (specifically SKP benchmarks, SampleApp, and the warmup in visualbench). This helps improve timing accuracy by not allowing the gpu to batch across draw boundaries in the affected benchmarks. BUG=skia: Review URL: https://codereview.chromium.org/1427533002
* Make appending default precision be controled by GLSLGravatar egdaniel2015-10-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1403373012
* Simplify linkages to Android framework internalsGravatar tomhudson2015-10-26
| | | | | | | | | | We've migrated SkHwuiRenderer into the Android Framework as android::uirenderer::TestWindowContext in response to an internal bug; we now delete that class and change our build references here. R=djsollen@google.com Review URL: https://codereview.chromium.org/1407053009
* Image filters: simplify filterInputGPU().Gravatar senorblanco2015-10-26
| | | | | | | | | | | | Remove a call to canFilterImageGPU() / filterImageGPU() from filterInputGPU(). There's no reason to do this, since the subsequent filterImage() call will do it for us anyway. And this call actually defeats caching (as demonstrated by the attached bench). BUG=skia: Review URL: https://codereview.chromium.org/1411013004
* Add version string and force highp NDS transfrom to GLSLCapsGravatar egdaniel2015-10-22
| | | | | | | | | | This also include the use of any() in the shaders. BUG=skia: Committed: https://skia.googlesource.com/skia/+/cef4bce8e260b49bf3417eadbac806cf7d39cdc8 Review URL: https://codereview.chromium.org/1417993004
* Implementation of SkBitmapRegionDecoder using SkAndroidCodecGravatar msarett2015-10-22
| | | | | | | | Includes testing in DM and nanobench BUG=skia: Review URL: https://codereview.chromium.org/1402863002
* Revert of Add version string and force highp NDS transfrom to GLSLCaps ↵Gravatar egdaniel2015-10-22
| | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1417993004/ ) Reason for revert: breaking bots Original issue's description: > Add version string and force highp NDS transfrom to GLSLCaps > > This also include the use of any() in the shaders. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/cef4bce8e260b49bf3417eadbac806cf7d39cdc8 TBR=bsalomon@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1420033002
* Add version string and force highp NDS transfrom to GLSLCapsGravatar egdaniel2015-10-22
| | | | | | | | This also include the use of any() in the shaders. BUG=skia: Review URL: https://codereview.chromium.org/1417993004
* Move GrGLShaderVar to GrGLSLGravatar egdaniel2015-10-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1417123002
* Move shader precision modifier check onto GLSLCapsGravatar egdaniel2015-10-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1414373002
* Valgrind experimentGravatar msarett2015-10-20
| | | | | | | | | | | | | | I don't really expect this to fix the errors, but I think it's worth it to try shaking up the valgrind bot overnight. There's some strange behavior with regard to color type on the valgrind bot that I can't reproduce and that we aren't seeing on any of the other bots. TBR=mtklein,scroggo BUG=skia: Review URL: https://codereview.chromium.org/1418723002
* nanobench: Add some Valgrind failure paranoia.Gravatar mtklein2015-10-20
| | | | | | | | | | Trying to figure out http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind/builds/586/steps/nanobench/logs/stdio BUG=skia:4482 Review URL: https://codereview.chromium.org/1418633002
* Add SkTTopoSortGravatar robertphillips2015-10-19
| | | | | | BUG=skia:4094 Review URL: https://codereview.chromium.org/1414503003
* Misc: Don't run etc1 bench with invalid image and fix VS2015 build warningGravatar bsalomon2015-10-19
| | | | Review URL: https://codereview.chromium.org/1409993003
* Renable image benchmarkingGravatar scroggo2015-10-15
| | | | | | | | | | | | | | | - Remove --images '' to renable image benchmarking - Add a flag to disable testing JPEG's buildTileIndex, since it also leaks memory - Do not run images on GPU - Do not run large interlaced images on 32 bit bots - When buildTileIndex is not being used in the subset benches, do not use it for BRD BUG=skia:3418 BUG=skia:4469 BUG=skia:4471 BUG=skia:4360 Review URL: https://codereview.chromium.org/1396113002
* Remove unnecessary allocation in nanobenchGravatar scroggo2015-10-14
| | | | Review URL: https://codereview.chromium.org/1408593002
* Stop benching PNG buildTileIndex by defaultGravatar scroggo2015-10-13
| | | | | | | | | | It leaks memory and kills the bots. Supply an option to run it for local comparison. BUG=skia:4360 BUG=skia:3418 Review URL: https://codereview.chromium.org/1396613007
* Add subsetting to SkScanlineDecoderGravatar msarett2015-10-13
| | | | | | | | | | | | This CL allows the SkScanlineDecoder to decode partial scanlines. This is a first step in efficiently implementing subsetting in SkScaledCodec. BUG=skia:4209 Review URL: https://codereview.chromium.org/1390213002
* Fix codec memory leaks in nanobenchGravatar scroggo2015-10-09
| | | | | | | | | | | | SubsetTranslateBench.cpp: Unref the color table, so it gets deleted. SkBitmapRegionDecoderInterface.cpp: Delete the stream if it is not used. BUG=skia:3418 Review URL: https://codereview.chromium.org/1396113003
* Fill incomplete images in SkCodec parent classGravatar msarett2015-10-09
| | | | | | | | | | | | | | | | | | | | | | | | | Rather than implementing some sort of "fill" in every SkCodec subclass for incomplete images, let's make the parent class handle this situation. This includes an API change to SkCodec.h SkCodec::getScanlines() now returns the number of lines it read successfully, rather than an SkCodec::Result enum. getScanlines() most often fails on an incomplete input, in which case it is useful to know how many lines were successfully decoded - this provides more information than kIncomplete vs kSuccess. We do lose information when the API is used improperly, as we are no longer able to return kInvalidParameter or kScanlineNotStarted. Known Issues: Does not work for incomplete fFrameIsSubset gifs. Does not work for incomplete icos. BUG=skia: Review URL: https://codereview.chromium.org/1332053002
* Update Subset benches to support interlacing and fix bugsGravatar scroggo2015-10-08
| | | | | | | | | | | | | | | | | | | | | Instead of decoding one line at a time, if the ScanlineOrder is kNone, decode all of the lines in one pass, and then copy the subset into the output. This will allow us to more realistically test subset decodes for interlaced png. It also makes running them not take forever. Do *not* support other modes (besides kTopDown), since they are not used by the big three we need to replace BitmapRegionDecoder implementation (skbug.com/4428). Fix a bug in SubsetTranslateBench and SubsetZoomBench: When we decode another subset, we need to reset the scanline decode first. This bug appears to have been present since the introduction of these tests in crrev.com/1160953002 BUG=skia:4205 BUG=skia:3418 Review URL: https://codereview.chromium.org/1387233002
* Revert "Revert of factories should return baseclass, allowing the impl to ↵Gravatar reed2015-10-06
| | | | | | | | | | | specialize (patchset #4 id:60001 of https://codereview.chromium.org/1390523005/ )" This reverts commit 95376a0dde3cdf414eb97a20cef3af19ed7e0151. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1389083002
* Revert of factories should return baseclass, allowing the impl to specialize ↵Gravatar schenney2015-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/1390523005/ ) Reason for revert: Breaks Chrome with this link error: ../../third_party/skia/include/effects/SkMorphologyImageFilter.h:75: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)' ../../third_party/skia/include/effects/SkMorphologyImageFilter.h:104: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)' Presumably due to code in third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp that contains: #include "SkMorphologyImageFilter.h" ... if (m_type == FEMORPHOLOGY_OPERATOR_DILATE) return adoptRef(SkDilateImageFilter::Create(radiusX, radiusY, input.get(), &rect)); return adoptRef(SkErodeImageFilter::Create(radiusX, radiusY, input.get(), &rect)); Original issue's description: > factories should return baseclass, allowing the impl to specialize > > waiting on https://codereview.chromium.org/1386163002/# to land > > BUG=skia:4424 > > Committed: https://skia.googlesource.com/skia/+/80a6dcaa1b757826ed7414f64b035d512d9ccbf8 TBR=senorblanco@google.com,robertphillips@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4424 Review URL: https://codereview.chromium.org/1389063002
* factories should return baseclass, allowing the impl to specializeGravatar reed2015-10-06
| | | | | | | | waiting on https://codereview.chromium.org/1386163002/# to land BUG=skia:4424 Review URL: https://codereview.chromium.org/1390523005
* Cleanup timing state machineGravatar joshualitt2015-10-05
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1386933002
* Specify bench_type & source_type for image benchesGravatar scroggo2015-10-05
| | | | | | | | | This will allow us to use perf filtering for comparing SkImageDecoder to SkCodec. BUG=skia:3418 Review URL: https://codereview.chromium.org/1387863002
* Factor out VisualBench timing code into a helper classGravatar joshualitt2015-10-05
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1375363003
* S4 only has 8 texture units on the GLContext we createGravatar joshualitt2015-10-02
| | | | | | BUG=skia:4373 Review URL: https://codereview.chromium.org/1386643002
* Remove const from `const int loops`.Gravatar mtklein2015-10-01
| | | | | | | | This drives me nuts, and prevents `while (loops --> 0)`. BUG=skia: Review URL: https://codereview.chromium.org/1379923005
* Fix for nexus 5 crashing in GL benchesGravatar joshualitt2015-09-30
| | | | | | | | | | GLBenches do not expect gl state to change between onPerCanvasPreDraw and *PostDraw, but we do a clear and sometimes we clear as draw. This causes us to bind vertex objects / programs / etc. This change creates two new virtual methods which are called right before and immediately after timing. BUG=skia: Review URL: https://codereview.chromium.org/1379853003
* Merge SkCodec with SkScanlineDecoderGravatar scroggo2015-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benefits: - This mimics other decoding APIs (including the ones SkCodec relies on, e.g. a png_struct, which can be used to decode an entire image or one line at a time). - It allows a client to ask us to do what we can do efficiently - i.e. start from encoded data and either decode the whole thing or scanlines. - It removes the duplicate methods which appeared in both SkCodec and SkScanlineDecoder (some of which, e.g. in SkJpegScanlineDecoder, just call fCodec->sameMethod()). - It simplifies moving more checks into the base class (e.g. the examples in skbug.com/4284). BUG=skia:4175 BUG=skia:4284 ===================================================================== SkScanlineDecoder.h/.cpp: Removed. SkCodec.h/.cpp: Add methods, enums, and variables which were previously in SkScanlineDecoder. Default fCurrScanline to -1, as a sentinel that start has not been called. General changes: Convert SkScanlineDecoders to SkCodecs. General changes in SkCodec subclasses: Merge SkScanlineDecoder implementation into SkCodec. Most (all?) owned an SkCodec, so they now call this-> instead of fCodec->. SkBmpCodec.h/.cpp: Replace the unused rowOrder method with an override for onGetScanlineOrder. Make getDstRow const, since it is called by onGetY, which is const. SkCodec_libpng.h/.cpp: Make SkPngCodec an abstract class, with two subclasses which handle scanline decoding separately (they share code for decoding the entire image). Reimplement onReallyHasAlpha so that it can return the most recent result (e.g. after a scanline decode which only decoded part of the image) or a better answer (e.g. if the whole image is known to be opaque). Compute fNumberPasses early, so we know which subclass to instantiate. Make SkPngInterlaceScanlineDecoder use the base class' fCurrScanline rather than a separate variable. CodexTest.cpp: Add tests for the state changes in SkCodec (need to call start before decoding scanlines; calling getPixels means that start will need to be called again before decoding more scanlines). Add a test which decodes in stripes, currently only used for an interlaced PNG. TODO: Add tests for onReallyHasAlpha. Review URL: https://codereview.chromium.org/1365313002
* Move Mutexy things to private.Gravatar herb2015-09-29
| | | | | | | | | | There is no API change. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1368333004
* Move SkAtomics.h to private.Gravatar herb2015-09-28
| | | | | | | | | | There are no API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1369333004
* Remove SkBitmapSourceGravatar fmalita2015-09-25
| | | | | | | | | To avoid breaking existing SKPs, add a deserialization stub which unflattens SkBitmapSource records to SkImageSources. R=reed@google.com,mtklein@google.com,robertphillips@google.com Review URL: https://codereview.chromium.org/1363913002
* use override to make the new xcode happierGravatar reed2015-09-25
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1368673004
* stop scaling loops and improve warmup benchGravatar joshualitt2015-09-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1363663004
* Add warmup bench to visual benchGravatar joshualitt2015-09-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1358373003
* Add nanobench tests for BitmapRegionDecoderGravatar msarett2015-09-22
| | | | | | | | | | | | | | | | SkBitmapRegionDecoderInterface provides an interface for multiple implementations of Android's BitmapRegionDecoder. We already have correctness tests in DM that will enable us to compare the quality of our various BRD implementations. We also need these performance tests to compare the speed of our various implementations. BUG=skia:4357 Review URL: https://codereview.chromium.org/1344993003
* move mutex construction out of the benchmarks.Gravatar mtklein2015-09-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1345853004
* Delete the typefaces.Gravatar herb2015-09-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1353203002
* Font cache stress test.Gravatar herb2015-09-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1348883002
* Add shared mutex benchmark.Gravatar herb2015-09-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1352863004
* Benchmark all mutex implementations.Gravatar herb2015-09-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1342283004
* Forward declare SkStrokeRec in SkPathEffectGravatar halcanary2015-09-15
| | | | Review URL: https://codereview.chromium.org/1312163008
* Convert unit tests, GMs from SkBitmapSource to SkImagesourceGravatar fmalita2015-09-15
| | | | | | | | | | | This removes SkBitmapSource clients within Skia. http://crrev.com/1334173004 does the same for Blink, so we should be able to remove SkBitmapSource in a follow-up. R=reed@google.com,robertphillips@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/1343123002
* discardable pixelrefs are gone, update tests accordinglyGravatar reed2015-09-14
| | | | | | BUG=skia:4328 Review URL: https://codereview.chromium.org/1340803002