aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrBufferAllocPool.cpp
Commit message (Collapse)AuthorAge
* SkTypes: more into SkMacrosGravatar Hal Canary2018-06-12
| | | | | | | | Change-Id: I4c9a2d81a1bc4ccebc78eea56c0de116b98d415e Reviewed-on: https://skia-review.googlesource.com/134330 Commit-Queue: Hal Canary <halcanary@google.com> Auto-Submit: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* use safemath::mull for buffer sizesGravatar Mike Reed2018-01-17
| | | | | | | | Bug:780104 Change-Id: Ic683abd9c7d15ebb01b6e5d40dbeb6e76f102eff Reviewed-on: https://skia-review.googlesource.com/95760 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Move resourceProvider accessor to GrContextPriv (take 2)Gravatar Robert Phillips2018-01-16
| | | | | | | | TBR=bsalomon@google.com Change-Id: I3fd46ebfad0d04b8a2bfa6190f81308f3a6be620 Reviewed-on: https://skia-review.googlesource.com/95121 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Revert "Move resourceProvider accessor to GrContextPriv"Gravatar Hal Canary2018-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1f9ed8501b0007846b3032f4bfc38aee98c175a1. Reason for revert: 1. breaking android roll 2. breaking Build-Debian9-Clang-arm-Release-Android_API26 Original change's description: > Move resourceProvider accessor to GrContextPriv > > Change-Id: I5cddd620a7ec4b006b7359864ede58e9d4dd684e > Reviewed-on: https://skia-review.googlesource.com/94340 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I20b2d267c0925f20453b635663654967199a1197 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/94964 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Move resourceProvider accessor to GrContextPrivGravatar Robert Phillips2018-01-16
| | | | | | | | Change-Id: I5cddd620a7ec4b006b7359864ede58e9d4dd684e Reviewed-on: https://skia-review.googlesource.com/94340 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Cosmetic changes to GrDrawOpAtlasGravatar Robert Phillips2017-09-01
| | | | | | | | | | | | | | | It looks like we won't be going in the direction of: https://skia-review.googlesource.com/c/skia/+/35962 (Allow GrDrawOpAtlas to grow & shrink) Pull out what is worth keeping. TBR=bsalomon@google.com Change-Id: Ia14c3c621e7b1d2d7f303a455a3e4d9660af5f6e Reviewed-on: https://skia-review.googlesource.com/41362 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Automatically prepend "disabled-by-default-" to TRACE categoriesGravatar Brian Osman2017-07-26
| | | | | | | | | | | Ensures that all Skia events are disabled by default in Chrome, and eliminates redundant typing. Bug: skia: Change-Id: I289c5e5a01084fcf4cccf512da65a4727f4aeca2 Reviewed-on: https://skia-review.googlesource.com/26880 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Handle too many (or too large) paths in GrDefaultPathRendererGravatar Brian Osman2017-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PathGeoBuilder constructs the geometry with the same basic technique as before, but allows interrupting the process to emit multiple draws. Original test case was 2000 non-AA stroked circles, which created ~66000 vertices. That now renders, as do various tests with a single large path (as well as filled paths). Added a new set of 'AtLeast' allocators for vertex and index data. These take a minimum size and a fallback size. If the minimum size can be satisfied by an existing block, then the caller gets *all* memory in that block, otherwise they get a new block sized for the fallback amount. The previous allocation scheme wasn't a good fit for the new use-case, and because we don't usually need many verts, the flexible approach seems appropriate. TODO: I think that this could be extracted and re-used for MSAA path renderer without too much work? I need to read that code more carefully to make sure it lines up. Re-land of: https://skia-review.googlesource.com/18360 Re-land of: https://skia-review.googlesource.com/18983 Bug: skia:6695 Change-Id: I09ac1273e5af67ed0e3e886de90e2970c3d0b239 Reviewed-on: https://skia-review.googlesource.com/19480 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Allow GrSurfaceProxy-derived classes to use flags when instantiating (take 2)Gravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | | | | | In some instances proxies must be created that, when instantiated, have no pending IO. This is split out of: https://skia-review.googlesource.com/c/8679/ (Add per-Flush callback to GrDrawingManager) and is a reland of: https://skia-review.googlesource.com/c/8988/ ( Allow GrSurfaceProxy-derived classes to use flags when instantiating) Change-Id: I36f52a6d249e762bdfc1f0d7528aba6d4071e492 Reviewed-on: https://skia-review.googlesource.com/9070 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Allow GrSurfaceProxy-derived classes to use flags when instantiating"Gravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c8f1e3a5c08d58657dddccdeedbe5d6e8c16d891. Reason for revert: check on ANGLE failure Original change's description: > Allow GrSurfaceProxy-derived classes to use flags when instantiating > > In some instances proxies must be created that, when instantiated, have no pending IO. > > This is split out of: (Add per-Flush callback to GrDrawingManager) > > https://skia-review.googlesource.com/c/8679/ > > Change-Id: I68b5504d35ad436a4ae737ac4bb3c171fc9a5826 > Reviewed-on: https://skia-review.googlesource.com/8988 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I157417c443028b2148ee355ce69c946a96bb9407 Reviewed-on: https://skia-review.googlesource.com/9066 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Allow GrSurfaceProxy-derived classes to use flags when instantiatingGravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | In some instances proxies must be created that, when instantiated, have no pending IO. This is split out of: (Add per-Flush callback to GrDrawingManager) https://skia-review.googlesource.com/c/8679/ Change-Id: I68b5504d35ad436a4ae737ac4bb3c171fc9a5826 Reviewed-on: https://skia-review.googlesource.com/8988 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Delay creation of cpu-side buffer memory until actually neededGravatar robertphillips2016-08-18
| | | | | | | | | IIUC what is going on, this won't really do anything bad but will defer allocation of the cpu-side buffer until it is actually needed. BUG=635015 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248283007 Review-Url: https://codereview.chromium.org/2248283007
* GrBufferAllocPool: use _throw calloc() if unchecked.Gravatar mtklein2016-07-14
| | | | | | | | | | | Looks like this code is using sk_calloc(), NULL on failure, accidentally instead of sk_calloc_throw(). We're using sk_malloc_throw() in the parallel code path, so it really seems like we're not checking the result pointer. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2152753002 Review-Url: https://codereview.chromium.org/2152753002
* Track GL buffer state based on unique resource IDGravatar cdalton2016-04-07
| | | | | | | | | | | | | | | | | | Reworks GrGLGpu to track GL buffer state based on the unique GrGpuResource ID. This eliminates the need to notify the gpu object whenever a buffer is deleted. This change also allows us to remove the type specifier from GrBuffer. At this point a buffer is just a chunk of memory, and the type given at creation time is just a suggestion to the GL backend about which target to bind to for updates. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004 Committed: https://skia.googlesource.com/skia/+/deacc97bc63513b5eacaf21f858727f6e8b98ce5 Review URL: https://codereview.chromium.org/1854283004
* Revert of Track GL buffer state based on unique resource ID (patchset #6 ↵Gravatar mtklein2016-04-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:100001 of https://codereview.chromium.org/1854283004/ ) Reason for revert: Chrome roll's broken, seems to be missing fTarget: https://codereview.chromium.org/1861473005 Original issue's description: > Track GL buffer state based on unique resource ID > > Reworks GrGLGpu to track GL buffer state based on the unique > GrGpuResource ID. This eliminates the need to notify the gpu object > whenever a buffer is deleted. > > This change also allows us to remove the type specifier from GrBuffer. > At this point a buffer is just a chunk of memory, and the type > given at creation time is just a suggestion to the GL backend about > which target to bind to for updates. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004 > > Committed: https://skia.googlesource.com/skia/+/deacc97bc63513b5eacaf21f858727f6e8b98ce5 TBR=bsalomon@google.com,jvanverth@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1870553002
* Track GL buffer state based on unique resource IDGravatar cdalton2016-04-06
| | | | | | | | | | | | | | | | Reworks GrGLGpu to track GL buffer state based on the unique GrGpuResource ID. This eliminates the need to notify the gpu object whenever a buffer is deleted. This change also allows us to remove the type specifier from GrBuffer. At this point a buffer is just a chunk of memory, and the type given at creation time is just a suggestion to the GL backend about which target to bind to for updates. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004 Review URL: https://codereview.chromium.org/1854283004
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* Consolidate GPU buffer implementationsGravatar cdalton2016-03-25
| | | | | | | | | | | | | | | | Consolidates all the different buffer implementations into a single GrBuffer class. This will allow us to add new buffer types, use DSA in OpenGL, track buffer bindings by unique ID, cache buffers without respect to the type of data they have been used for previously, etc. This change is strictly a refactor; it introduces no change in functionality. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 Committed: https://skia.googlesource.com/skia/+/8b1bff29675afd25843439eade634a57f68fe16f Review URL: https://codereview.chromium.org/1825393002
* Revert of Consolidate GPU buffer implementations (patchset #10 id:180001 of ↵Gravatar robertphillips2016-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1825393002/ ) Reason for revert: Lots of Android redness Original issue's description: > Consolidate GPU buffer implementations > > Consolidates all the different buffer implementations into a single > GrBuffer class. This will allow us to add new buffer types, use DSA in > OpenGL, track buffer bindings by unique ID, cache buffers without > respect to the type of data they have been used for previously, etc. > This change is strictly a refactor; it introduces no change in > functionality. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 > > Committed: https://skia.googlesource.com/skia/+/8b1bff29675afd25843439eade634a57f68fe16f TBR=bsalomon@google.com,egdaniel@google.com,jvanverth@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1831133004
* Consolidate GPU buffer implementationsGravatar cdalton2016-03-25
| | | | | | | | | | | | | | Consolidates all the different buffer implementations into a single GrBuffer class. This will allow us to add new buffer types, use DSA in OpenGL, track buffer bindings by unique ID, cache buffers without respect to the type of data they have been used for previously, etc. This change is strictly a refactor; it introduces no change in functionality. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 Review URL: https://codereview.chromium.org/1825393002
* Comments Style: s/skbug.com/bug.skia.org/Gravatar halcanary2015-11-07
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1432503003 Review URL: https://codereview.chromium.org/1432503003
* Use calloc to allocate data that will be uploaded to vertex/index buffers in ↵Gravatar bsalomon2015-08-19
| | | | | | | | | Chrome BUG=chromium:454267 BUG=chromium:522315 Review URL: https://codereview.chromium.org/1300123002
* Some cleanup in GrTextureProvider and GrResourceProvider.Gravatar bsalomon2015-07-31
| | | | Review URL: https://codereview.chromium.org/1261643004
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-24
| | | | | | Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a Review URL: https://codereview.chromium.org/1139753002
* Revert of Refactor GrBufferAllocPools to use resource cache (patchset #15 ↵Gravatar robertphillips2015-06-23
| | | | | | | | | | | | | | | | | | | id:280001 of https://codereview.chromium.org/1139753002/) Reason for revert: Will reland after Chromium branch Original issue's description: > Refactor GrBufferAllocPools to use resource cache > > Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a TBR=bsalomon@google.com,joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1204773003
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-06-23
| | | | Review URL: https://codereview.chromium.org/1139753002
* Trivial change to bump minimum block size for Buffer poolGravatar joshualitt2015-06-04
| | | | | | | TBR= BUG=skia: Review URL: https://codereview.chromium.org/1146073004
* add context override of GeometryBufferMapThresholdGravatar joshualitt2015-05-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1159713006
* rename GrDrawTargetCaps.h to GrCaps.h and move to includeGravatar bsalomon2015-05-22
| | | | Review URL: https://codereview.chromium.org/1135113005
* rename GrDrawTargetCaps to GrCapsGravatar bsalomon2015-05-19
| | | | Review URL: https://codereview.chromium.org/1133123009
* Revert of Refactor GrBufferAllocPools to use resource cache (patchset #9 ↵Gravatar robertphillips2015-05-14
| | | | | | | | | | | | | | | | | | | id:160001 of https://codereview.chromium.org/1139753002/) Reason for revert: Perf Regression for some bot/skp combinations Original issue's description: > Refactor GrBufferAllocPools to use resource cache > > Committed: https://skia.googlesource.com/skia/+/c5f1c5414fc8f73cbefadcc1b24ec794056fa203 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1129863008
* Refactor GrBufferAllocPools to use resource cacheGravatar robertphillips2015-05-13
| | | | Review URL: https://codereview.chromium.org/1139753002
* Isolate GrBufferAllocPools inside GrBatchTargetGravatar robertphillips2015-05-07
| | | | | | This CL refactors the location of the GrBufferAllocPools so they reside entirely inside the GrBatchTarget. This is in preparation for making them use scratch resources. Review URL: https://codereview.chromium.org/1131553002
* Reduce the API surface of GrBufferAllocPool and its derivativesGravatar robertphillips2015-05-06
| | | | | | This utility class is going to be revamped and moved. This CL shrinks it a bit so there will be less to shuffle around. Review URL: https://codereview.chromium.org/1126753003
* Remove unneeded features from GrBufferAllocPoolGravatar bsalomon2015-04-29
| | | | Review URL: https://codereview.chromium.org/1103423004
* Initialize the pad memory in GrBufferAllocPool.Gravatar dongseong.hwang2015-01-22
| | | | | | | | Msan bot detects Use-of-uninitialized-value on the pad. BUG=445745 Review URL: https://codereview.chromium.org/865913002
* Replace GrResourceCache with GrResourceCache2.Gravatar bsalomon2014-11-14
| | | | | | | | | | BUG=skia:2889 Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6 Committed: https://skia.googlesource.com/skia/+/407aa584d183c1bf314f5defd1cf0202e8a96c89 Review URL: https://codereview.chromium.org/716143004
* removing setVertexArraySource from drawtargetGravatar joshualitt2014-11-04
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/699733002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Add trace event when GrBufferAllocPool unmaps a buffer indicating what % of ↵Gravatar bsalomon2014-06-26
| | | | | | | | | | | the buffer was unwritten. R=egdaniel@google.com TBR=egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/339433009
* Rename from "(un)lock" to "(un)map" for geometry buffers.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | This better reflects OpenGL terminology and is less overloaded ("lock" is used w.r.t. the resource cache). R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/275493004 git-svn-id: http://skia.googlecode.com/svn/trunk@14628 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData.Gravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | BUG=skia:2402 Committed: http://code.google.com/p/skia/source/detail?r=14533 R=robertphillips@google.com, djsollen@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/243413002 git-svn-id: http://skia.googlecode.com/svn/trunk@14564 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split GrResource into GrCacheable/GrGpuObjectGravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, an object needed to inherit from GrResource (and thus be a GPU object) in order to live in the GrResourceCache. That was a problem for caching items that weren't GPU objects themselves, but owned GPU objects. This change splits GrResource into two classes: 1. GrCacheable: The base class for objects that can live in the GrResourceCache. 2. GrGpuObject, which inherits from GrCacheable: The base class for objects that get tracked by GrGpu. This change is purely a refactor; there is no change in functionality. Change-Id: I3e8daeb1f123041f414aa306c1366e959ae9e39e BUG=skia: R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/251013002 git-svn-id: http://skia.googlecode.com/svn/trunk@14553 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Add support for glMapBufferRange. Use glMapBufferRange and ↵Gravatar djsollen@google.com2014-05-02
| | | | | | | | | | | | | | | | glMapBufferSubData. (https://codereview.chromium.org/243413002/) Reason for revert: This is firing an assert on many of the Android debug bots Original issue's description: > Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData. > > BUG=skia:2402 > > Committed: http://code.google.com/p/skia/source/detail?r=14533 git-svn-id: http://skia.googlecode.com/svn/trunk@14541 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support for glMapBufferRange. Use glMapBufferRange and glMapBufferSubData.Gravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | BUG=skia:2402 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/243413002 git-svn-id: http://skia.googlecode.com/svn/trunk@14533 2bbb7eff-a529-9590-31e7-b0007b416f81
* SK_SUPPORT_LEGACY_GRTYPES to hide duplicate types from SkTypes.hGravatar commit-bot@chromium.org2014-03-28
| | | | | | | | | | | BUG=skia: R=bsalomon@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/216503004 git-svn-id: http://skia.googlecode.com/svn/trunk@13982 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start cleaning up 64bit Win warningsGravatar robertphillips@google.com2013-10-14
| | | | | | | | https://codereview.chromium.org/27192003/ git-svn-id: http://skia.googlecode.com/svn/trunk@11764 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace uses of GR_DEBUG by SK_DEBUG.Gravatar commit-bot@chromium.org2013-08-28
| | | | | | | | | | | BUG=None R=bsalomon@google.com, robertphillips@google.com Author: tfarina@chromium.org Review URL: https://chromiumcodereview.appspot.com/23137022 git-svn-id: http://skia.googlecode.com/svn/trunk@10978 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace uses of GrAssert by SkASSERT.Gravatar tfarina@chromium.org2013-08-17
| | | | | | | | R=bsalomon@google.com Review URL: https://codereview.chromium.org/22850006 git-svn-id: http://skia.googlecode.com/svn/trunk@10789 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move nested class GrDrawTarget::Caps out as GrDrawTargetCaps.Gravatar bsalomon@google.com2013-03-25
| | | | | | | Pass caps to GrEffect::TestCreate() functions so that they can return effects that will work with the capabilities. Review URL: https://codereview.chromium.org/12965018 git-svn-id: http://skia.googlecode.com/svn/trunk@8369 2bbb7eff-a529-9590-31e7-b0007b416f81