aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Normalize SkXfermode_opts.h argument order as d,s[,aa].Gravatar mtklein2015-08-12
| | | | | | | | | | | | | | At head they're s,d[,aa] in SkXfermode_opts.h but Sk4px::Map* expect d,s[,aa] so we ended up having to write weird little lambda shims to match impedance. There's no reason for these to disagree, and d,s[,aa] is the One True Order (because no matter what you're doing in graphics, there's always a dst). Should be no perf or image diff, though I'm suspicious it might help MSVC code generation. BUG=skia:4117 Review URL: https://codereview.chromium.org/1289903002
* Refactor to put SkXfermode_opts inside SK_OPTS_NS.Gravatar mtklein2015-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this refactor I was getting warnings previously about having code inside namespace SK_OPTS_NS (e.g. namespace sse2, namespace neon) referring to code inside an anonymous namespace (Sk4px, SkPMFloat, Sk4f, etc) [1]. That low-level code was in an anonymous namespace to allow multiple independent copies of its methods to be instantiated without the linker getting confused / offended about violating the One Definition Rule. This was only happening in Debug mode where the methods were not being inlined. To fix this all, I've force-inlined the methods of the low-level code and removed the anonymous namespace. BUG=skia:4117 [1] Here is what those errors looked like: In file included from ../../../../src/core/SkOpts.cpp:18:0: ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fProc4' whose type uses the anonymous namespace [-Werror] class Sk4pxXfermode : public SkProcCoeffXfermode { ^ ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fAAProc4' whose type uses the anonymous namespace [-Werror] ../../../../src/opts/SkXfermode_opts.h:235:7: error: 'portable::SkPMFloatXfermode' has a field 'portable::SkPMFloatXfermode::fProcF' whose type uses the anonymous namespace [-Werror] class SkPMFloatXfermode : public SkProcCoeffXfermode { ^ cc1plus: all warnings being treated as errors Review URL: https://codereview.chromium.org/1286093004
* All child GrFragmentProcs' transforms and textures will be stored in the ↵Gravatar wangyix2015-08-12
| | | | | | | | | | | | | | | | | | | | | | root GrFragmentProc in preorder Changed childProcessor(i) to return const referencd Fixed rootProc/parentProc offset issues; renamed a few things. added nonempty check to gatherTransforms to avoid segfault removed recursive append_gr_coord_transforms() from GrGLProgramBuilder BUILDS! Changed num*includeProc() calls to num() calls added gatherCoordTransforms(). added coordTransforms() for root proc only Modified GrFragmentProcessor to append child proc transforms and textures to root proc's arrays. BUG=skia:4182 Review URL: https://codereview.chromium.org/1275853005
* Update CodexTest to test valid_alpha.Gravatar scroggo2015-08-12
| | | | | | | | | | | | | Add a static function to CodexTest, which consolidates decoding, comparing to an expected SkCodec::Result, and optionally comparing to a digest. Test decoding non-opaque to opaque (fails) and premul to unpremul/vice versa (succeeds). BUG=skia:3475 Review URL: https://codereview.chromium.org/1277253003
* Revise DrawAtlasBatch to get rid of one copy when generating the batch.Gravatar jvanverth2015-08-12
| | | | | | | | This doesn't appear to have much affect on perf in SampleApp, but it should avoid some copies and replaces a couple of STArrays with one that just does a memcpy in the copy constructor. Review URL: https://codereview.chromium.org/1279343004
* Remove trace marker support from GrBufferedDrawTargetGravatar bsalomon2015-08-12
| | | | Review URL: https://codereview.chromium.org/1284983002
* Fix bmp RLE "bug"Gravatar msarett2015-08-12
| | | | | | | | | | | | | | | | | Chromium's test suite contains an RLE image that reports a certain file size in the header, but then contains additional encoded data. Our bmp decoder would only decode half of the image, before stopping. With this fix, we check for additional data before returning kIncompleteInput. If this lands, I will upload the test image to the bots. Also adding an invalid image test to CodexTest. BUG=skia: Review URL: https://codereview.chromium.org/1273853004
* C API: add radial, sweep, and two-point conical gradient shadersGravatar halcanary2015-08-12
| | | | Review URL: https://codereview.chromium.org/1263773006
* Consolidate SkCodec functions for handling rewindGravatar scroggo2015-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, many of our codec implementations followed the same pattern (often in a function named handleRewind): switch (this->rewindIfNeeded()) { case CouldNotRewind: return CouldNotRewind; case NoRewindNecessary: // keep going break; case Rewound: <re-read header etc> break; } In this CL, remove the enum, and put the piece that happens in the Rewound case into a virtual function, onRewind. rewindIfNeeded now contains the common pieces from various functions named handleRewind. In SkBmpCodec, add a function that returns whether the BMP is in ICO, so it can have a common implementation for onRewind. BUG=skia:3257 Review URL: https://codereview.chromium.org/1288483002
* Move AAFillRect into CPP for templatizationGravatar joshualitt2015-08-12
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1278043003
* Revert[3] "move some public headers into private"Gravatar reed2015-08-12
| | | | | | | | | | | This reverts commit 9d20ee57d72a3850a6b51f2f2b00e00978be3864. BUG=skia: TBR= failures here: https://codereview.chromium.org/1286103004 Review URL: https://codereview.chromium.org/1290733002
* Revert[2] "move some public headers into private"Gravatar reed2015-08-12
| | | | | | | | | | This reverts commit 4cf9e7e14797f87f08b2078fa1afaf731cbf8f52. BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/1284173002
* Make GrBatch carry its own GrPipelineGravatar bsalomon2015-08-11
| | | | Review URL: https://codereview.chromium.org/1278643006
* Switching Skia to chromium's libjpeg-turboGravatar msarett2015-08-11
| | | | | | | | | | | Compile SkJpegCodec and SkImageDecoder_libjpeg with chromium's libjpeg-turbo. SkImageDecoder_libjpeg still uses libjpeg on Android and the Android framework. SkJpegCodec is still not compiled on the Android framework. BUG=skia: Review URL: https://codereview.chromium.org/1275773004
* decrement lockcount if we failed to get pixelsGravatar reed2015-08-11
| | | | | | BUG=519581 Review URL: https://codereview.chromium.org/1284953002
* SkPDF: allow PDF module to be disabled in DM and SampleAppGravatar halcanary2015-08-11
| | | | | | | | | | | To disable PDF: GYP_DEFINES='skia_pdf=0' bin/sync-and-gyp ninja -C out/Debug dm SampleApp When disabled, SkDocument::CreatePDF() always returns NULL. Review URL: https://codereview.chromium.org/1279123007
* Revert "move some public headers into private"Gravatar reed2015-08-11
| | | | | | | | | | This reverts commit eedf0fb20489bc6c3706539dd6ab499f41cbe048. BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/1270313005
* move some public headers into privateGravatar reed2015-08-11
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1289483002
* Make initBatchTracker private, move towards pipeline on batchGravatar bsalomon2015-08-10
| | | | Review URL: https://codereview.chromium.org/1282893002
* Sk4px blit mask.Gravatar mtklein2015-08-10
| | | | | | | | | | | | | | | | Local SKP nanobenching ranges SSE between 1.05x and 0.87x, much more heavily weighted toward <1.0x ratios (speedups). I profiled the top five regressions (1.05x-1.01x) and they look like noise. Will follow up after broad bot results. NEON looks similar but less extreme than SSE changes, ranging between 1.02x and 0.95x, again mostly speedups in 0.99x-0.97x range. The old code trifurcated into black, opaque-but-not-black, and general versions as a function of the constant src color. I did not see a significant difference between general and opaque-but-not-black, and I don't think a black version would be faster using SIMD. So we have here just one version of the code, the general version. Somewhat fantastically, I see no pixel diffs on GMs or SKPs. I will be following up with more CLs for the other procs called by SkBlitMask. BUG=skia: Review URL: https://codereview.chromium.org/1278253003
* Remove GrPipelineOptimizations member from GrPipelineGravatar bsalomon2015-08-10
| | | | Review URL: https://codereview.chromium.org/1275003004
* trivial CL to add drawBatch to GrDrawContextGravatar joshualitt2015-08-10
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1282883002
* Expand functionality of GrRectBatchFactory with AARectsGravatar joshualitt2015-08-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1279303002
* Fix to call SkDelete_array instead of SkDelete to fix ASAN error.Gravatar egdaniel2015-08-10
| | | | | | | | TBR=mtklein@google.com BUG=skia: Review URL: https://codereview.chromium.org/1282333002
* Revert of [TextBlob] Fall back to TightRunBounds when the font bounds are ↵Gravatar egdaniel2015-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | empty (patchset #1 id:1 of https://codereview.chromium.org/1284693002/ ) Reason for revert: Breaking DEPS roll on Assert in SkTextBlobBuilder::TightRunBounds. Original issue's description: > [TextBlob] Fall back to TightRunBounds when the font bounds are empty > > Empty font bounds are likely an indication of a font bug. As a best > effort, we can use TightRunBounds in this easily detectable case. > > BUG=507022 > R=reed@google.com,bungeman@google.com > > Committed: https://skia.googlesource.com/skia/+/d6b99cc6b84b3ec864221cbe9945d203bd9eb072 TBR=bungeman@google.com,reed@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=507022 Review URL: https://codereview.chromium.org/1283853002
* Rename GrPipelineInfo to GrPipelineOptimizationsGravatar bsalomon2015-08-10
| | | | | | TBR=joshualitt@google.com Review URL: https://codereview.chromium.org/1274513005
* Move GrStrokeRectBatch creation to behind factoryGravatar joshualitt2015-08-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1282283002
* Create GrRectBatchFactoryGravatar joshualitt2015-08-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1287433003
* This is a speculative fix for the crash on IOSGravatar egdaniel2015-08-10
| | | | | | TBR=mtklein Review URL: https://codereview.chromium.org/1277433005
* [TextBlob] Fall back to TightRunBounds when the font bounds are emptyGravatar fmalita2015-08-10
| | | | | | | | | | Empty font bounds are likely an indication of a font bug. As a best effort, we can use TightRunBounds in this easily detectable case. BUG=507022 R=reed@google.com,bungeman@google.com Review URL: https://codereview.chromium.org/1284693002
* move Stroke Rect and AAFill Rect to their own fileGravatar joshualitt2015-08-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1282723004
* SkPDF: add assert for that SkWStream behaves.Gravatar halcanary2015-08-10
| | | | | | | | Motivation: this might catch future issues like this. BUG=skia:4181 Review URL: https://codereview.chromium.org/1287443002
* Use a factory function to create GrPipeline and remove unused memberGravatar bsalomon2015-08-10
| | | | Review URL: https://codereview.chromium.org/1273803004
* Wire up testcreate function for GrDrawAtlasBatchGravatar joshualitt2015-08-10
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1285593002
* Remove an unused function.Gravatar thakis2015-08-10
| | | | | | BUG=chromium:505316 Review URL: https://codereview.chromium.org/1282143002
* remove unneeded _DRAWIMAGERECT flagsGravatar reed2015-08-07
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1281123002
* fixup precision with configurable atlasGravatar joshualitt2015-08-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1276383003
* GrDrawVertices to batchesGravatar joshualitt2015-08-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1276333004
* Move GrDrawAtlasBatch to separate fileGravatar jvanverth2015-08-07
| | | | | | Committed: https://skia.googlesource.com/skia/+/b091c44c33edbad3466601b29d60bc2eaa4453fa Review URL: https://codereview.chromium.org/1274013003
* Revert of Move GrDrawAtlasBatch to separate file (patchset #1 id:1 of ↵Gravatar jvanverth2015-08-07
| | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1274013003/ ) Reason for revert: Build failures Original issue's description: > Move GrDrawAtlasBatch to separate file > > Committed: https://skia.googlesource.com/skia/+/b091c44c33edbad3466601b29d60bc2eaa4453fa TBR=joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1276173003
* Move GrDrawAtlasBatch to separate fileGravatar jvanverth2015-08-07
| | | | Review URL: https://codereview.chromium.org/1274013003
* Make folder for batchesGravatar joshualitt2015-08-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1277233002
* First pass at drawAtlas batching.Gravatar jvanverth2015-08-07
| | | | | | | | | | Moves drawAtlas setup into its own method in GrDrawContext, and adds DrawAtlasBatch. Uses pre-built index buffer for quads. TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1277933003
* Break LCD and Bitmap text dependency on hardcoded atlas valuesGravatar joshualitt2015-08-07
| | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/846b022f6b469cfde285372f26e0d5c593d122ac Review URL: https://codereview.chromium.org/1271873002
* The compiler can generate smulbb perfectly well nowadays.Gravatar mtklein2015-08-07
| | | | | | BUG=skia:4117 Review URL: https://codereview.chromium.org/1273203002
* Add Batch loggingGravatar joshualitt2015-08-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1276913002
* This iOS crash makes little sense to me. Add some debugging.Gravatar mtklein2015-08-07
| | | | | | | | | | | | We called new float[...]. The pointer returned should be aligned for float writes. See https://uberchromegw.corp.google.com/i/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release BUG=skia: Committed: https://skia.googlesource.com/skia/+/30e4d75c3aebf49b179c265a91adbb6012970d2b Review URL: https://codereview.chromium.org/1270403006
* This iOS crash makes little sense to me. Add some debugging.Gravatar mtklein2015-08-07
| | | | | | | | | | We called new float[...]. The pointer returned should be aligned for float writes. See https://uberchromegw.corp.google.com/i/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release BUG=skia: Review URL: https://codereview.chromium.org/1270403006
* Fix warnings on VS2015 x86_64 buildGravatar bsalomon2015-08-06
| | | | | | TBR=bungeman@google.com Review URL: https://codereview.chromium.org/1276133002
* Split SkBmpCodec into three separate classesGravatar msarett2015-08-06
| | | | | | | | | | | | | | Will regress behavior on gold on test32bfv4.bmp, where we will no longer fix transparent decodes. TODO: Start fixing transparent decodes again, or decide that we don't want to fix them and remove isTransparent from SkSwizzler. I think this may become more clear when I start implementing the scanline decoder. BUG=skia: Review URL: https://codereview.chromium.org/1258863008