aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* move reinterpret_cast into SK_PREFETCHGravatar mtklein2015-10-28
| | | | | | | | | no public API changes TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1419573011
* Send SkDebugf through stderr and flush on Windows too.Gravatar mtklein2015-10-28
| | | | | | | | This makes it consistent with Linux/Mac. There, stderr is not buffered, so the flush is not needed / implicit. BUG=skia: Review URL: https://codereview.chromium.org/1419073003
* skia: Add ANGLE support on MacGravatar hendrikw2015-10-28
| | | | | | | I want to be able to compare ANGLE vs CommandBuffer for dm and nanobench on Mac, so enabling ANGLE on mac. Review URL: https://codereview.chromium.org/1395783003
* Remove min texture size supportGravatar bsalomon2015-10-28
| | | | | | BUG=skia:4524 Review URL: https://codereview.chromium.org/1430643002
* Create GLSL base class for ProgramDataManagerGravatar egdaniel2015-10-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1428543003
* Make SkOSWindow windows implementation use CS_OWNDC in its window classGravatar bsalomon2015-10-28
| | | | | | TBR=joshualitt@google.com Review URL: https://codereview.chromium.org/1413213005
* Disable CHROMIUM_bind_uniform_location due to a spec bugGravatar kkinnunen2015-10-28
| | | | | | | | | | | | | | | | | | | | Bound uniforms that are optimized away causes GL errors when they are used. The bound location becomes unused if its bound uniform is optimized away. Updating the inactive uniform using the bound location causes a GL error from the command buffer. Alternatively, command buffer may bind another free, unbound uniform to the bound location. This causes the uniform update to update the wrong uniform. Disable the extension until the spec can be clarified and the implementation fixed, if possible and needed. BUG=skia:4454 Review URL: https://codereview.chromium.org/1417633008
* Refactor SkBlurImageFilter_Opts.h.Gravatar senorblanco2015-10-27
| | | | | | | | | | | | Refactor box_blur() into a single driver function which SSE*, NEON and generic code paths can use. I've used macros to do this in order to keep debug performance reasonable, but it's fairly ugly. I'm open to other suggestions. 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/1408003007
* Add shared mutexes to the direct write cache code to get better parallelism.Gravatar herb2015-10-27
| | | | | | BUG=547182 Review URL: https://codereview.chromium.org/1424093002
* Make SkTextBlob::RunIterator public.Gravatar halcanary2015-10-27
| | | | | | | | | Motivation: This will be easier than adding a friend every time I want to create a one-off SkCanvas subclass or SkRemote::Encoder subclass. See also: SkPath::Iter. Review URL: https://codereview.chromium.org/1411723005
* skia: Fix command buffer support on the macGravatar hendrikw2015-10-27
| | | | | | | | | | | | | | | | | | The extension on the mac is .dylib, updated the name. EGL.h isn't available on mac (unless we include skia_angle.h). I've got a somewhat bad hack of defining the types that I need to get this running. GetProcedureAddress was somehow successfully grabbing gl functions from another lib. Removed this call, I copied it from ANGLE impl, but it isn't required. lib load path works differently, fixed in GYP BUG=skia:2992 Review URL: https://codereview.chromium.org/1403153002
* Disable gpu-side clip mask merging in the clip mask managerGravatar robertphillips2015-10-27
| | | | | | | | | | In the MDB world the clip mask manager would need to create a separate drawContext for each temporary mask (and we would need to support stencil draws in the drawContext). For now, disable the feature. Please see skbug.com/4519 (Re-enable gpu-side mask merging in Ganesh) BUG=skia:4094 Review URL: https://codereview.chromium.org/1424853002
* Remove SkJpegCodec.cpp from Google3 BUILD due to differing libjpeg_turbo ↵Gravatar benjaminwagner2015-10-27
| | | | | | | | versions. BUG=skia:4520 Review URL: https://codereview.chromium.org/1418423008
* Cosmetic portion of reverted "Fix ClipMaskManager's SW-fallback logic" CLGravatar robertphillips2015-10-27
| | | | | | This CL isolates the cosmetic portion so the functional portion is clearer. It relies on https://codereview.chromium.org/1412883005/ (Fix ClipMaskManager's SW-fallback logic (take 2)) Review URL: https://codereview.chromium.org/1422023003
* Fix ClipMaskManager's SW-fallback logic (take 2)Gravatar robertphillips2015-10-27
| | | | | | | | https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) had a logic error in it. It did not take into account createAlphaClipMask's fallback to non-Stenciled drawing (in drawElement). This CL adds that logic and strips out the unnecessary changes (for clarity). Review URL: https://codereview.chromium.org/1412883005
* Move scissor state to GrAppliedClipGravatar bsalomon2015-10-27
| | | | Review URL: https://codereview.chromium.org/1385233002
* Fix up the clip mask manager's creation of paths (w.r.t. volatility)Gravatar robertphillips2015-10-26
| | | | | | | | | | I don't expect this to make any difference (perf-wise) but it seems more correct. This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083 Review URL: https://codereview.chromium.org/1419403002
* Revert of Fix ClipMaskManager's SW-fallback logic (patchset #4 id:60001 of ↵Gravatar robertphillips2015-10-26
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1421533007/ ) Reason for revert: Logic may be incorrect Original issue's description: > Fix ClipMaskManager's SW-fallback logic > > > 'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent). > > Committed: https://skia.googlesource.com/skia/+/5c3ea4cd3921e8904d4f201bcdedfd5b8a726542 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1426443008
* Revert of Fix up the clip mask manager's creation of paths (w.r.t. ↵Gravatar robertphillips2015-10-26
| | | | | | | | | | | | | | | | | | | | | | | volatility) (patchset #1 id:1 of https://codereview.chromium.org/1419403002/ ) Reason for revert: Logic may be incorrect Original issue's description: > Fix up the clip mask manager's creation of paths (w.r.t. volatility) > > I don't expect this to make any difference (perf-wise) but it seems more correct. > > This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) > > Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083 TBR=jvanverth@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1415413007
* Enable BUILD file compilation of skia and dm with --config=android_arm.Gravatar benjaminwagner2015-10-26
| | | | | | | | Corresponding google3 cl is 105687529. BUG=skia: Review URL: https://codereview.chromium.org/1414643002
* Fix up the clip mask manager's creation of paths (w.r.t. volatility)Gravatar robertphillips2015-10-26
| | | | | | | | I don't expect this to make any difference (perf-wise) but it seems more correct. This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) Review URL: https://codereview.chromium.org/1419403002
* Fix GLCaps order for CoreProfileGravatar egdaniel2015-10-26
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1417503005
* Make appending default precision be controled by GLSLGravatar egdaniel2015-10-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1403373012
* Fix ClipMaskManager's SW-fallback logicGravatar robertphillips2015-10-26
| | | | | | 'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent). Review URL: https://codereview.chromium.org/1421533007
* fix for teeny strokesGravatar caryclark2015-10-26
| | | | | | | | | | | Pass the scale before evaluating degenerate line segments. This does not change other GMs. R=reed@google.com BUG=478337 Review URL: https://codereview.chromium.org/1418133007
* Fix gl caps for mixed sample supportGravatar egdaniel2015-10-26
| | | | | | | | | | The dependencies between glsl caps and some gl ones were more complex than I had thought with original change especially in regards to mix samples, advanced blends, and similar features. This changes simply reverts back to the original order of setting the caps so it should fix all perf issues that were seen in the X1 BUG=skia:4505 Review URL: https://codereview.chromium.org/1420423002
* Disable MIP mapping on PowerVR 54x. This GPU spews a lot of errors when ↵Gravatar bsalomon2015-10-26
| | | | | | | | using GenerateMipMaps. BUG=skia:4514 Review URL: https://codereview.chromium.org/1414743008