aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* DM+VB: WallTimer -> SkTime::GetNSecs().Gravatar mtklein2015-11-03
| | | | | | | | The same timer with a simpler interface. BUG=skia: Review URL: https://codereview.chromium.org/1427033003
* Simplify SkGpuBlurUtils.Gravatar senorblanco2015-11-03
| | | | | | | | | | | | | We compute a lot of { srcRect, dstRect } pairs in this code, but they're always the same width and height, and dstRect often has a zero origin. So pass only one or the other and an offset, where required. Among other things, this simplifies the code in convolve_gaussian(), since we only have to 3-patch the dstRect. BUG=skia:4502 Review URL: https://codereview.chromium.org/1430593006
* Revert of stop using drawSprite (at least w/ no filters) as it is going away ↵Gravatar robertphillips2015-11-03
| | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:20001 of https://codereview.chromium.org/1411173010/ ) Reason for revert: Breaking the bots Original issue's description: > stop using drawSprite (at least w/ no filters) as it is going away > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/4a21602982d411bb764e46dc47e009b12bd5cb39 TBR=senorblanco@google.com,senorblanco@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1413363011
* SkScan_Antihair: assert in debug and potentialy lost last pixelsGravatar aleksandar.stojiljkovic2015-11-02
| | | | | | | | | alpha: (uint8_t) 256 is clamped to 255 before static cast to uint8_t in SkToU8. BUG=4406 Review URL: https://codereview.chromium.org/1424253002
* Make SkBlurImageFilter capable of cropping during blur (raster path)Gravatar senorblanco2015-11-02
| | | | | | | | | | | | | | | | | | SkBlurImageFilter can currently only process a source image which is larger than or equal to the destination rect. If the source image (or crop rect) is smaller, it is padded out to dest size with transparent black via the 6-param version of applyCropRect(). Fixing this requires modifying all the flavours of RGBA box_blur() to accept a src crop rect. BUG=skia:4502, skia:4526 CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Release-Trybot;client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/1b82ceb737c73327412f2e8a91748481e1aec9e4 Review URL: https://codereview.chromium.org/1415653003
* Add bleed GM variants for bmp backed by an oversized textureGravatar bsalomon2015-11-02
| | | | Review URL: https://codereview.chromium.org/1426253002
* stop using drawSprite (at least w/ no filters) as it is going awayGravatar reed2015-11-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1411173010
* Revert of Make SkBlurImageFilter capable of cropping during blur (patchset ↵Gravatar senorblanco2015-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #16 id:400001 of https://codereview.chromium.org/1415653003/ ) Reason for revert: ASAN failures (see https://codereview.chromium.org/1415653003/) Original issue's description: > Make SkBlurImageFilter capable of cropping during blur (raster path) > > SkBlurImageFilter can currently only process a source image > which is larger than or equal to the destination rect. If > the source image (or crop rect) is smaller, it is padded > out to dest size with transparent black via the 6-param > version of applyCropRect(). > > Fixing this requires modifying all the flavours of RGBA > box_blur() to accept a src crop rect. > > BUG=skia:4502, skia:4526 > CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Release-Trybot;client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > Committed: https://skia.googlesource.com/skia/+/1b82ceb737c73327412f2e8a91748481e1aec9e4 TBR=mtklein@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4502, skia:4526 Review URL: https://codereview.chromium.org/1428053002
* Allow max tile size to be overridden separately from max texture size.Gravatar bsalomon2015-11-02
| | | | | | This allows internal Gr texture creation code to succeed for extraneous textures while running the bleed GM. This means we can turn on the shader variants. Review URL: https://codereview.chromium.org/1418473004
* Enable building Skia for iOS with bazel.Gravatar iroth2015-11-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1429863002
* Make SkBlurImageFilter capable of cropping during blur (raster path)Gravatar senorblanco2015-11-02
| | | | | | | | | | | | | | | | SkBlurImageFilter can currently only process a source image which is larger than or equal to the destination rect. If the source image (or crop rect) is smaller, it is padded out to dest size with transparent black via the 6-param version of applyCropRect(). Fixing this requires modifying all the flavours of RGBA box_blur() to accept a src crop rect. BUG=skia:4502, skia:4526 CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Release-Trybot;client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1415653003
* bin/sync-and-gyp: gclient hackeryGravatar halcanary2015-11-02
| | | | Review URL: https://codereview.chromium.org/1427183003
* Start making all .cpp files compile-able on all platforms.Gravatar mtklein2015-11-02
| | | | | | | | | | | | | | | | | | | | | | | I sometimes dream to hone our build process down to something as simple as $ find src -name '*.cpp' | xargs c++ <some cflags> -c -o skia.o To start, it helps if we can compile all files on all platforms. Each non-portable file guards itself with defines provided by SkTypes.h. This does not convert all non-portable code, but it's a good representative chunk. E.g. instead of having to remember which SkDebug_*.cpp to compile on which platform we can just compile all three and let the code itself sort it out. This has the nice side effect of making non-portable code declare the conditions under which it can compile explicitly. I've been testing mostly with the CMake build as it's easiest, but this should apply equally to BUILD, Gyp, and GN files... to any build system really. BUG=skia:4269 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot Review URL: https://codereview.chromium.org/1411283005
* [SkDebugger] Remove unneeded SkDebuggerGUI includesGravatar fmalita2015-11-02
| | | | | | R=robertphillips@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/1411963006
* SkRemote: all paint effects except typefaceGravatar mtklein2015-11-02
| | | | | | | | | Changes: https://gold.skia.org/search2?issue=1408383007&unt=true&query=source_type%3Dgm&master=false&include=true BUG=skia: Review URL: https://codereview.chromium.org/1408383007
* Fix assert in GrGLShaderBuilder regarding shader outputsGravatar egdaniel2015-11-02
| | | | | | | | Fixes crashing bot. BUG=skia: Review URL: https://codereview.chromium.org/1408063009
* path ops: fix fuzz-found divide by zeroGravatar caryclark2015-11-02
| | | | | | | TBR=reed@google.com BUG=542391 Review URL: https://codereview.chromium.org/1427913005
* Move shader compiling to ProgramBuilder and various ShaderBuilder cleanups.Gravatar egdaniel2015-11-02
| | | | | | | | An additional positive of this CL is that GrGLShaderBuilder is now GL independent besides GrGLProgramBuilder BUG=skia: Review URL: https://codereview.chromium.org/1431433003
* In BUILD.public, specify alwayslink for skia library.Gravatar benjaminwagner2015-11-02
| | | | | | | | | | Some Skia classes use SkTRegistry, which requires the source files be linked in order to be registered. Also replace "*CG*" with "SkImageDecoder_CG.cpp" for clarity. BUG=skia: Review URL: https://codereview.chromium.org/1405023013
* Update SKP versionGravatar update-skps2015-11-01
| | | | | | | | | Automatic commit by the RecreateSKPs bot. TBR= NO_MERGE_BUILDS Review URL: https://codereview.chromium.org/1423633004
* path ops; remove obsolete reduceGravatar caryclark2015-10-30
| | | | | | | | | | | Cubics and quads tried to detect linearness directly, once. This is handled later in the pipeline and need not be handled here. TBR=reed@google.com Review URL: https://codereview.chromium.org/1421553010
* 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
* More conic-specific tests revealed a few conic-specific bugs. Because ↵Gravatar caryclark2015-10-30
| | | | | | | | | | | | | | | | | | | | | | | | javascript / canvas make visualizing conics tricky, new native tools are required. The utility SubsetPath removes parts of a potentially very large path to isolate a minimal test case. SubsetPath is very useful for debugging path ops, but is not path ops specific. PathOpsBuilderConicTest compares the output of the Path Ops Builder, sequential calls to Simplify, and SkRegions for some number of rotated ovals. Some tests caused path ops to hang. It was caught adding a loop of curves because the head was not found by the tail. Even though the root cause has been fixed, SkSegment::addCurveTo callers now abort the path op if the same curve was added twice. The subdivided conic weight was been computed anew. Fortunately, it's a simpler computation that the one it replaces. Some Simplify() subroutines returned false to signal that the results needed assembling. Change these to abort the current operation instead. Coincident curve intersection triggered two small bugs; one where no perpendicular could be found for coincident curves, and one where no coincident curves remain after looping. The SixtyOvals test can be run through multiple processes instead of multiple threads. This strategy allows a 48 core machine to saturate all cores at 100%. The DEBUG_VISUALIZE_CONICS code in PathOpsConicIntersectionTest acknowleges that it is easier to visualize conics with Skia than with script and html canvas. This test also verifies that path ops subdivision matches geometry chopping. TBR=reed@google.com Review URL: https://codereview.chromium.org/1405383004
* Dependencies are now added between the drawTargets in GrPipelineGravatar robertphillips2015-10-30
| | | | | | | | | | | | This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting) BUG=skia:4094 Committed: https://skia.googlesource.com/skia/+/45a1c34f607a970933e5cd05e1df6cd8090db1be Committed: https://skia.googlesource.com/skia/+/869c5e82a725a6928a45cd1fa6945ac783b8b3d8 Review URL: https://codereview.chromium.org/1414903002
* Don't run nvpr on TSAN botGravatar bsalomon2015-10-30
| | | | Review URL: https://codereview.chromium.org/1405223006
* DEPS: roll zlib: 20 new commitsGravatar halcanary2015-10-30
| | | | | | | | | | List of changes at https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/4ba7cdd0e7bf49d671645264f839838fc56e1492..c4e33043fb071b6ea0a153845da625d7ed633d3d Of particular interest is "Fix VC++ 2015 64-bit truncation warning in zlib". Review URL: https://codereview.chromium.org/1416043007
* Dedup SkPaths by gen-ID when going to .skpGravatar mtklein2015-10-30
| | | | | | | | | | | | | | | We're all set up to serialize and deserialze paths by an integer ID, but we're just not deduping any paths (every path gets a new ID). This turns on deduping. This should mean the number of paths in a deserialized SkPicture are the same as when it was recorded. No diffs: https://gold.skia.org/search2?issue=1409373011&unt=true&query=source_type%3Dgm&master=false BUG=skia:4527 Review URL: https://codereview.chromium.org/1409373011
* Minor cleanup of clip mask managerGravatar robertphillips2015-10-30
| | | | | | | | | | Follow up to https://codereview.chromium.org/1418073005/ (Remove gpu-side clip mask merging from clip mask manager). The path renderer chain is only ever allocated when it is about to be used (so the delayed initialization doesn't buy us anything). We can now reduce the lifetime of the pipelineBuilder in createAlphaClipMask Review URL: https://codereview.chromium.org/1416113006
* For BUILD.public, let SkPreConfig.h set SK_RELEASE based on NDEBUG.Gravatar benjaminwagner2015-10-29
| | | | | | | | | | | | | | | | | Use DumpStackTrace in SkASSERT in GOOGLE3. There are extra assertions enabled in debug mode that cause RecordDraw_TextBounds to fail. New include causes a naming conflict with global name "base". Corresponding internal cl/106495354 No public API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1423013004
* Clarify subrect semantics for GrTextureAdjuster and handle mip maps correctly.Gravatar bsalomon2015-10-29
| | | | Review URL: https://codereview.chromium.org/1410383008
* [SkDebugger] Show detailed drawImage infoGravatar fmalita2015-10-29
| | | | | | R=robert.phillips@google.com Review URL: https://codereview.chromium.org/1409393007
* Remove GrPipelineBuilder from getPathRenderer callGravatar robertphillips2015-10-29
| | | | | | | | | | | | | Logically this CL: Moves the PathRendererChain from GrContext to GrDrawManager - this was needed to untangled the Path-Chain/Renderer header mess - this entailed adding getDrawingMgr so the CMM could access the PathRenderingChain - this also entailed re-adding freeGpuResources to the GrDrawingMgr Moves the CanDrawArgs struct up stack Removes the GrPipelineBuilder from the CanDrawArgs struct Review URL: https://codereview.chromium.org/1407883004
* Pull texture-backed bitmap resampler out of GrTextureParamsAdjuster code ↵Gravatar bsalomon2015-10-29
| | | | | | into its own class. Review URL: https://codereview.chromium.org/1420963008
* Remove SK_SAVE_LAYER_BOUNDS_ARE_FILTERED #define.Gravatar senorblanco2015-10-29
| | | | | | | | It's no longer used in Chrome. BUG=skbug:3194 Review URL: https://codereview.chromium.org/1422183008
* Add generationID to debugger's path informationGravatar robertphillips2015-10-29
| | | | Review URL: https://codereview.chromium.org/1412013005
* Use only one CGFont/CTFont per scaler context on Mac.Gravatar bungeman2015-10-29
| | | | | | | | | | The unrotated CTFont was introduced to fix color emoji scaling. Use only the unrotated CTFont and apply the rotations manually. This allows removal of one CTFont and allows us to apply (correctly) the transformation CoreText would otherwise need to apply (which it appears to do inconsistently). Review URL: https://codereview.chromium.org/1360663002
* Attempt to update Xfermode comments to have parallel structure.Gravatar pkasting2015-10-29
| | | | | | | BUG=none TEST=none Review URL: https://codereview.chromium.org/1406413003
* Remove GrGLProcessor and create GrGLSLTextureSampler class.Gravatar egdaniel2015-10-29
| | | | | | | | Part ??? of separating glsl and gl BUG=skia: Review URL: https://codereview.chromium.org/1425013003
* Initial gyp files for SDLGravatar joshualitt2015-10-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1411033003
* Protect apply_paint_to_bounds_sans_imagefilter() with an #ifdef.Gravatar senorblanco2015-10-28
| | | | | | | | | | Its only caller is protected by the same #ifdef. NOPRESUBMIT=true TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1404353010
* SkBlurImageFilter_opts: optimize NEON box_blur_double in separate loops.Gravatar senorblanco2015-10-28
| | | | | | | | | | | | | | Stop leaning so hard on the branch predictor, and pull the conditionals out of the loops for box_blur_double() (NEON). This is conceptually the same change as https://codereview.chromium.org/1426583004/ for the NEON double-pixel loop. R=mtklein@google.com BUG=skia:4526 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1412793009
* Make SkImageFilter::applyCropRect() optionally compute srcBounds.Gravatar senorblanco2015-10-28
| | | | | | BUG=skia:4526 Review URL: https://codereview.chromium.org/1410553007
* Rename SkScaledCodec.cpp to SkSampledCodec.cppGravatar scroggo2015-10-28
| | | | Review URL: https://codereview.chromium.org/1413363008
* Android framework builds can't see cpu-features.hGravatar mtklein2015-10-28
| | | | | | | | Don't try to do NEON detection for Android framework builds. BUG=skia: Review URL: https://codereview.chromium.org/1423953004
* Update deps to pull sdlGravatar joshualitt2015-10-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1425033003
* 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
* Change saveLayer() semantics to take unfiltered bounds.Gravatar senorblanco2015-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | For optimizing saveLayer() offscreens, it is useful to know the bounds of the primitive being drawn. Currently, the bounds passed to saveLayer() are filtered, which makes it difficult to know the original bounds of the primitive. This CL changes the semantics to accept unfiltered bounds. This actually simplifies the callsites too. In order to result in the correct pixels being produced, we then call computeFastBounds() inside clipRectBounds(). The old behaviour is wrapped in #ifdef SK_SAVE_LAYER_BOUNDS_ARE_FILTERED, until we can update Chrome's callsites (see https://codereview.chromium.org/1316243002/). This change will affect the following GMs: testimagefilters: saveLayer bounds no longer cause clipping imagefiltersbase: slight pixel diffs resizeimagefilter: slight pixel diffs on the "high quality" test case imagefilterscropexpand: displacement results are now correct filterfastbounds: slight pixel diffs matriximagefilter: slight pixel diffs BUG=skia:3194 skia:4526 Review URL: https://codereview.chromium.org/1304883004
* Remove gpu-side clip mask merging from clip mask managerGravatar robertphillips2015-10-28
| | | | | | | | | | | | | In the clip mask merging path, the CMM creates new renderTargets and draws to them. In the non-MDB world this is okay b.c. all the draws land in the same drawTarget anyway. In the MDB world the draws for the new renderTargets have to land in different drawTargets. This can be resolved by a lot of plumbing and refactoring to create drawContexts for the created renderTargets or by removing the mask-merging drawing path. Since, https://codereview.chromium.org/1424853002/ (Disable gpu-side clip mask merging in the clip mask manager), appears to have stuck, this CL removes the clip mask merging code. BUG=skia:4094 BUG=skia:4519 Review URL: https://codereview.chromium.org/1418073005
* SkBlurImageFilter_opt.h: break conditions into separate loops.Gravatar senorblanco2015-10-28
| | | | | | | | | | | This gives ~15% improvement on blur_image on Linux Z620, and should allow me to implement cropping without incurring a perf hit. BUG=skia: CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review URL: https://codereview.chromium.org/1426583004
* add a noteGravatar mtklein2015-10-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1405083008