aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrClipMaskManager.h
Commit message (Collapse)AuthorAge
* Avoid re-rendering stencil clip for every draw with reducable clip stackGravatar commit-bot@chromium.org2013-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the cases where clip stack reduction would cause clip to be re-rendered to stencil for each draw call. This causes unneeded slowdown. Stencil cache would not be used because the clip stack generation id communicated by the clip stack element list would be invalid. This happended due to a) clip stack reduction creating new elements in the element list. b) purging logic removing the generation id, but reduction logic selecting already purged element, and thus the generation id, as the representative state of the clip. Cases of a) where reduction would flatten the stack to a single new element were fixed by assigning the generation id of the top-most element of the clip stack as the generation id of the new element. This is not strictly minimal, but enables more caching than using invalid id. Cases of a) where reduction would substitute a stack element with a new element the generation id of the substituted element is used. The b) part was fixed by removing the purging logic. It was not exactly correct, as the previously purged states were actually used. The purging was not used for anything. Changes SkClipStack API to highlight that invalid generation id is never returned by SkClipStack. Empty stacks are wide open. Changes the clients to reflect this. Fixes a crash when not passing anti-alias out parameter to GrReducedClip::ReduceClipStack. The crash is not exercised in the current code. Committed: http://code.google.com/p/skia/source/detail?r=12084 R=bsalomon@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/48593003 git-svn-id: http://skia.googlecode.com/svn/trunk@12127 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Avoid re-rendering stencil clip for every draw with reducable clip ↵Gravatar reed@google.com2013-11-01
| | | | | | | | | | | | | | | | stack" This reverts commit 92a7d4bf6a371f1f864154be902e8d86938e560b. Revert "fix mac 10.6 build" This reverts commit 114cd1a9f2734aaed6914718814364811b78bd7f. BUG= Review URL: https://codereview.chromium.org/54543008 git-svn-id: http://skia.googlecode.com/svn/trunk@12087 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid re-rendering stencil clip for every draw with reducable clip stackGravatar commit-bot@chromium.org2013-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the cases where clip stack reduction would cause clip to be re-rendered to stencil for each draw call. This causes unneeded slowdown. Stencil cache would not be used because the clip stack generation id communicated by the clip stack element list would be invalid. This happended due to a) clip stack reduction creating new elements in the element list. b) purging logic removing the generation id, but reduction logic selecting already purged element, and thus the generation id, as the representative state of the clip. Cases of a) where reduction would flatten the stack to a single new element were fixed by assigning the generation id of the top-most element of the clip stack as the generation id of the new element. This is not strictly minimal, but enables more caching than using invalid id. Cases of a) where reduction would substitute a stack element with a new element the generation id of the substituted element is used. The b) part was fixed by removing the purging logic. It was not exactly correct, as the previously purged states were actually used. The purging was not used for anything. Changes SkClipStack API to highlight that invalid generation id is never returned by SkClipStack. Empty stacks are wide open. Changes the clients to reflect this. Fixes a crash when not passing anti-alias out parameter to GrReducedClip::ReduceClipStack. The crash is not exercised in the current code. R=bsalomon@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/48593003 git-svn-id: http://skia.googlecode.com/svn/trunk@12084 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make not-reusing-scratch-textures only apply to texture uploadsGravatar robertphillips@google.com2013-10-30
| | | | | | | | https://codereview.chromium.org/53133002/ git-svn-id: http://skia.googlecode.com/svn/trunk@12037 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement filling a path with nv_path_rendering coverGravatar commit-bot@chromium.org2013-10-09
| | | | | | | | | | | | | | | | | | Implement filling a path with nv_path_rendering cover functionality. The nv_path_rendering cover can be used if the fill is non-inverted and the draw operation does not require use of vertex shaders. Moves code for the inverted fill from GrStencilAndCoverPathRenderer down to GrGpuGL. R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/22686002 git-svn-id: http://skia.googlecode.com/svn/trunk@11667 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace uses of GrNoncopyable by SkNoncopyable.Gravatar commit-bot@chromium.org2013-09-18
| | | | | | | | | | | | BUG=None TEST=None, no functional changes. R=bsalomon@google.com, robertphillips@google.com Author: tfarina@chromium.org Review URL: https://chromiumcodereview.appspot.com/23483042 git-svn-id: http://skia.googlecode.com/svn/trunk@11341 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace all instances of GrRect with SkRect.Gravatar commit-bot@chromium.org2013-07-17
| | | | | | | | | | | | And remove the typedef in GrRect.h. The same with GrIRect. R=robertphillips@google.com Author: tfarina@chromium.org Review URL: https://chromiumcodereview.appspot.com/19449002 git-svn-id: http://skia.googlecode.com/svn/trunk@10130 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace fixed-size array of effect stages in GrDrawState with two appendable ↵Gravatar bsalomon@google.com2013-06-13
| | | | | | | | | | arrays, one for color, one for coverage. R=robertphillips@google.com Review URL: https://codereview.chromium.org/16952006 git-svn-id: http://skia.googlecode.com/svn/trunk@9592 2bbb7eff-a529-9590-31e7-b0007b416f81
* Give GrDrawTarget a back ptr to its owning GrContext.Gravatar bsalomon@google.com2013-02-25
| | | | | | Review URL: https://codereview.appspot.com/7395055 git-svn-id: http://skia.googlecode.com/svn/trunk@7850 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland 6914 w/ fixes.Gravatar bsalomon@google.com2012-12-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6916 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert 6914 to fix build issues.Gravatar bsalomon@google.com2012-12-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6915 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplify cache IDs and keys.Gravatar bsalomon@google.com2012-12-20
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6954047 git-svn-id: http://skia.googlecode.com/svn/trunk@6914 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use the stencil buffer to avoid temporary alpha clip masks.Gravatar bsalomon@google.com2012-12-14
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6935048 git-svn-id: http://skia.googlecode.com/svn/trunk@6818 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-12-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6699 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use ReduceClipStack in ClipMaskManager.Gravatar bsalomon@google.com2012-12-06
| | | | | | | | | R=robertphillips@google.com This will require some gpu rebaselining (complexclip_rect_aa, complexclip_aa, aaclip, simpleaaclip, complexclip_aa_layer)xy Review URL: https://codereview.appspot.com/6884051 git-svn-id: http://skia.googlecode.com/svn/trunk@6694 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move GrReducedClip to its own files.Gravatar bsalomon@google.com2012-12-05
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6891045 git-svn-id: http://skia.googlecode.com/svn/trunk@6686 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-12-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6669 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make GrReduceClipStack use a caller provided query rect rather than return a Gravatar bsalomon@google.com2012-12-04
| | | | | | | | | bounds. R=robertphillips@google.com Review URL: https://codereview.appspot.com/6865059 git-svn-id: http://skia.googlecode.com/svn/trunk@6665 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make SkClipStack::Iter use SkClipStack::Element.Gravatar bsalomon@google.com2012-12-04
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6871051 git-svn-id: http://skia.googlecode.com/svn/trunk@6661 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a function that computes a reduced representation of the clip stack.Gravatar bsalomon@google.com2012-11-26
| | | | | | | Also adds a unit test. The function is not yet used other than in the test. Review URL: https://codereview.appspot.com/6855098 git-svn-id: http://skia.googlecode.com/svn/trunk@6553 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert 6351 due to bugs.Gravatar bsalomon@google.com2012-11-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6377 2bbb7eff-a529-9590-31e7-b0007b416f81
* Apply intersect rects to earlier clip elements and skip rects when possible.Gravatar bsalomon@google.com2012-11-08
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6814105 git-svn-id: http://skia.googlecode.com/svn/trunk@6351 2bbb7eff-a529-9590-31e7-b0007b416f81
* Some improvements to reduce the number of pixels touched in generating alpha ↵Gravatar bsalomon@google.com2012-11-07
| | | | | | | | clip masks Review URL: https://codereview.appspot.com/6828043 git-svn-id: http://skia.googlecode.com/svn/trunk@6329 2bbb7eff-a529-9590-31e7-b0007b416f81
* Moved GrClipMaskCache to its own filesGravatar robertphillips@google.com2012-08-29
| | | | | | | | https://codereview.appspot.com/6496055/ git-svn-id: http://skia.googlecode.com/svn/trunk@5331 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part II of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6474054 git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
* Addressed Windows compiler complaintsGravatar robertphillips@google.com2012-08-15
| | | | | | | | | | http://codereview.appspot.com/6462062/ This CL will require re-baselining of the imagemagnifier GM git-svn-id: http://skia.googlecode.com/svn/trunk@5108 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactored cacheID in preparation for clip mask caching changesGravatar robertphillips@google.com2012-08-08
| | | | | | | | http://codereview.appspot.com/6458089/ git-svn-id: http://skia.googlecode.com/svn/trunk@5002 2bbb7eff-a529-9590-31e7-b0007b416f81
* Removed GrClip & related classesGravatar robertphillips@google.com2012-08-01
| | | | | | | | http://codereview.appspot.com/6450071/ git-svn-id: http://skia.googlecode.com/svn/trunk@4899 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace GrClip with SkClipStackGravatar robertphillips@google.com2012-07-31
| | | | | | | | http://codereview.appspot.com/6449070/ git-svn-id: http://skia.googlecode.com/svn/trunk@4865 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added dev- & canv- prefixes to Ganesh bounding boxes to indicate coordinate ↵Gravatar robertphillips@google.com2012-07-31
| | | | | | | | | | space http://codereview.appspot.com/6457061/ git-svn-id: http://skia.googlecode.com/svn/trunk@4856 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrClip no longer translates its clips (to better mimic SkClipStack's behavior)Gravatar robertphillips@google.com2012-07-31
| | | | | | | | http://codereview.appspot.com/6445052/ git-svn-id: http://skia.googlecode.com/svn/trunk@4848 2bbb7eff-a529-9590-31e7-b0007b416f81
* Altered Ganesh's clip stack plumbing to pass down new GrClipData classGravatar robertphillips@google.com2012-07-26
| | | | | | | | http://codereview.appspot.com/6454047/ git-svn-id: http://skia.googlecode.com/svn/trunk@4788 2bbb7eff-a529-9590-31e7-b0007b416f81
* Gave GrClip an SkClipStack-style iteratorGravatar robertphillips@google.com2012-07-23
| | | | | | | | http://codereview.appspot.com/6434046/ git-svn-id: http://skia.googlecode.com/svn/trunk@4723 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add placement new macros to SkPostConfig, call SkNEW* from Ganesh.Gravatar tomhudson@google.com2012-07-09
| | | | | | | | | | | | TODO: unify with the placement new implementation in SkTemplatesPriv.h, once various issues there are overcome. reed@ should be taking the lead there. http://codereview.appspot.com/6384043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4492 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rolling back r4034 (Proposed plumbing to propagate save & restore)Gravatar robertphillips@google.com2012-07-03
| | | | | | | | http://codereview.appspot.com/6346066/ git-svn-id: http://skia.googlecode.com/svn/trunk@4456 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed lingering gpu-path AA clip mask generation bugGravatar robertphillips@google.com2012-06-29
| | | | | | | | http://codereview.appspot.com/6351055/ git-svn-id: http://skia.googlecode.com/svn/trunk@4416 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make GrClipMaskManager configure the stencil and scissor on GrGpuGravatar bsalomon@google.com2012-06-21
| | | | | | | | Review URL: http://codereview.appspot.com/6308096/ git-svn-id: http://skia.googlecode.com/svn/trunk@4288 2bbb7eff-a529-9590-31e7-b0007b416f81
* Store clip mask location in GrClipMaskManager as a enum rather than two boolsGravatar bsalomon@google.com2012-06-18
| | | | | | | | Review URL: http://codereview.appspot.com/6306092/ git-svn-id: http://skia.googlecode.com/svn/trunk@4274 2bbb7eff-a529-9590-31e7-b0007b416f81
* Give GrClipMaskManager a GrGpu*Gravatar bsalomon@google.com2012-06-15
| | | | | | | | Review URL: http://codereview.appspot.com/6301090/ git-svn-id: http://skia.googlecode.com/svn/trunk@4269 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move clientID into texture descGravatar robertphillips@google.com2012-06-07
| | | | | | | | http://codereview.appspot.com/6305044/ git-svn-id: http://skia.googlecode.com/svn/trunk@4201 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move stencil param adjustment to GrClipMaskManager, attempt to make ↵Gravatar bsalomon@google.com2012-06-05
| | | | | | | | | | GrGpuGL::flushStencil readable Review URL: http://codereview.appspot.com/6295046/ git-svn-id: http://skia.googlecode.com/svn/trunk@4173 2bbb7eff-a529-9590-31e7-b0007b416f81
* "fix" for r4034 issuesGravatar robertphillips@google.com2012-05-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4035 2bbb7eff-a529-9590-31e7-b0007b416f81
* Plumbing to propagate save & restore from SkCanvas down to GrContext & lowerGravatar robertphillips@google.com2012-05-23
| | | | | | | | http://codereview.appspot.com/6203067/ git-svn-id: http://skia.googlecode.com/svn/trunk@4034 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove GrClipMaskManager's path renderer chain (in favor of GrContext's)Gravatar robertphillips@google.com2012-05-22
| | | | | | | | http://codereview.appspot.com/6211078/ git-svn-id: http://skia.googlecode.com/svn/trunk@4032 2bbb7eff-a529-9590-31e7-b0007b416f81
* First functioning version of SW-only clip mask creatorGravatar robertphillips@google.com2012-05-17
| | | | | | | | http://codereview.appspot.com/6208072/ git-svn-id: http://skia.googlecode.com/svn/trunk@3984 2bbb7eff-a529-9590-31e7-b0007b416f81
* Convert AAClipCache's GrRects to GrIRectsGravatar robertphillips@google.com2012-05-15
| | | | | | | | http://codereview.appspot.com/6210057/ git-svn-id: http://skia.googlecode.com/svn/trunk@3942 2bbb7eff-a529-9590-31e7-b0007b416f81
* Made clip mask cache use Scratch Texture systemGravatar robertphillips@google.com2012-05-14
| | | | | | | | http://codereview.appspot.com/6210044/ git-svn-id: http://skia.googlecode.com/svn/trunk@3920 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split createAlphaClipMask in two to allow reuse with SW-only pathGravatar robertphillips@google.com2012-05-11
| | | | | | | | http://codereview.appspot.com/6198065/ git-svn-id: http://skia.googlecode.com/svn/trunk@3910 2bbb7eff-a529-9590-31e7-b0007b416f81
* Made clip mask cache reuse depend on mask size/bounds (instead of render ↵Gravatar robertphillips@google.com2012-05-11
| | | | | | | | | | target size) http://codereview.appspot.com/6190067/ git-svn-id: http://skia.googlecode.com/svn/trunk@3903 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added stack to AA clip mask cacheGravatar robertphillips@google.com2012-05-09
| | | | | | | | http://codereview.appspot.com/6201058/ git-svn-id: http://skia.googlecode.com/svn/trunk@3885 2bbb7eff-a529-9590-31e7-b0007b416f81