aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Don't compare coord change matrices to determine effect compatibility when ↵Gravatar bsalomon2014-08-04
| | | | | | | | | | using explicit local coords. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/438053002
* Revert of Add ETC1 format to SkTextureCompressor ↵Gravatar krajcevski2014-08-04
| | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/432143002/) Reason for revert: Breaking Chrome. Original issue's description: > Add ETC1 format to SkTextureCompressor > > Committed: https://skia.googlesource.com/skia/+/5d8b1b44ea7636fc8e98247cb311568f277ce3a5 R=robertphillips@google.com TBR=robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: krajcevski@google.com Review URL: https://codereview.chromium.org/438443004
* Remove unused matrix param from GrContext/GrDrawTarget rect drawing functions.Gravatar bsalomon2014-08-04
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/441623005
* Add ETC1 format to SkTextureCompressorGravatar krajcevski2014-08-04
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/432143002
* Exit early when draw can be skipped. Be more robust against abandoned GrContext.Gravatar bsalomon2014-08-04
| | | | | | | | R=egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/428103003
* Make GrGLProgram be available to GrGLProgramDataManagerGravatar kkinnunen2014-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL APIs such as glProgramPathFragmentInputGenNV need the explicit program id in order to set the program resources. For GrGLProgramDataManager to call the APIs, the program id needs to be available to the GrGLProgramDataManager. One GrGLProgramDataManager is used to explicitly manage the resources of one GrGLProgram. Refactor the classes to reflect this: make GrGLProgram create and own GrGLProgramDataManager. This way the program id can be made available through GrGLProgram backpointer. In order to do this, remove the population of the program link results information for uniforms in GrGLProgramDataManager during shader generation. Instead, accumulate the info to the uniform list of GrGLShaderBuilder. After the generation, compilation and link is successful, this info can be used to construct both GrGLProgram and GrGLProgramDataManager. Changes names of functions to create UniformHandles and convert them to list indices. This tries to highlight that they're different lists, even though at the moment they match index-wise. E.g the contract is that handles can be created based on the shader builder state, and the object can later be set with the handle and the manager that was created with the builder. This is needed to support NV_path_rendering for GLES. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/426553011
* Fix for Chrome Canaries.Gravatar jvanverth2014-08-01
| | | | | | | | | R=bsalomon@google.com TBR=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/434623010
* Rollback text allocation changes.Gravatar jvanverth2014-08-01
| | | | | | | | | | | This also addresses an inadvertantly introduced distance field bug. BUG=399125 R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/438683006
* FBFetch refactor + arm supportGravatar joshualitt2014-08-01
| | | | | | | | | BUG=skia: R=krajcevski@google.com, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/433603002
* Add CTM to the cached layers' key and reduce render target pingponging in ↵Gravatar robertphillips2014-07-31
| | | | | | | | | | | | | layer pre-rendering The CTM is required on the key so we will re-render when necessary. The SkGpuDevice change ensures big layers in the midst of atlas-able layers don't cause a render target switch. R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/433553002
* Fix for texture domain on imagination gpusGravatar joshualitt2014-07-31
| | | | | | | | | BUG=skia: R=bsalomon@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/421823003
* Remove kDisableBlend_BlendOptFlag as it is no longer neededGravatar egdaniel2014-07-30
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/425153003
* Start the process of choosing the correct compression formatGravatar krajcevski2014-07-30
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/427093004
* Test removal of mesa specific version parseGravatar joshualitt2014-07-30
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/430833002
* Implement a persistent uniqueID-based cache for SkImageFilter.Gravatar senorblanco2014-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a unique ID to SkImageFilter, and use it as part of a persistent cache of image-filtered results. This is used for caching frame-to-frame coherent filters. We also keep track of which filter subtrees do not reference the src input, and use a GenID of zero for the src input in that case. That way, subtrees which are not dependent on the filter input can be cached independently of it. This gives approximately a 4X speedup on letmespellitoutforyou.com/samples/svg/filter_terrain.svg on Z620 and Nexus10. The cache key consists of the uniqueID of the filter, the clip bounds, the CTM and the genID of the input bitmap. Since this does not yet handle the case where the input primitives (and part of the resulting filter tree) are unchanged, we have to keep around the external cache for that painting case. When the work to cache unchanging input primitives is done, the old cache can be removed, and the new UniqueIDCache will be renamed to Cache. R=bsalomon@google.com, mtklein@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/414483003
* Add query for whether or not we have compressedTexSubImageGravatar krajcevski2014-07-30
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/430773004
* Add vertex bounds check for distance field rendering.Gravatar jvanverth2014-07-30
| | | | | | | | R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/432443002
* Fix ref counting of cached layer's textureGravatar robertphillips2014-07-30
| | | | | | | | R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/431603002
* Add effect caching to distance field text.Gravatar jvanverth2014-07-30
| | | | | | | | | | | | This also is a step towards unifying GrDistanceFieldTextureEffect and GrDistanceFieldLCDTextureEffect. Committed: https://skia.googlesource.com/skia/+/137bac067306c5446bc4f9797bedc3bbaf302822 R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/424103002
* Rename GrGLUniformManager to GrGLProgramDataManagerGravatar kkinnunen2014-07-30
| | | | | | | | | | | | | Rename GrGLUniformManager to GrGLProgramDataManager in anticipation that the class would be used to manage shader resources that are not uniforms. This is needed in order to implement NVPR on GLES. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/365853002
* Incorporate glStencilThenCover* nvpr methodsGravatar cdalton2014-07-29
| | | | | | | | | | | | | | | | | | Adds the glStencilThenCover* nvpr methods to GrGLInterface and starts using them. When drawing multible paths, this will make it so we only have to send the index/transform data once. It will also allow the driver to save time internally. The glStencilThenCover* methods are a newer addition, so they aren't available on every driver. In the event that they are not present, we emulate them using the existing glStencil*/glCover* methods. BUG=skia: R=markkilgard@gmail.com, bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/423173004
* fRight -> fBottomGravatar krajcevski2014-07-29
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/428963005
* Remove support in the gpu to use hardware AA lines. Current code paths could ↵Gravatar egdaniel2014-07-29
| | | | | | | | | | | | | not reach this code and thus was never used. The blend opt flag kDisableBlend should now be able to be removed, however it is left in this CL and will removed in its own. BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/427823002
* Adding repeat mode to texture domainGravatar joshualitt2014-07-29
| | | | | | | | | BUG=skia: R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com, junov@chromium.org Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/422123003
* Add query for block dimensions of a given formatGravatar krajcevski2014-07-29
| | | | | | | | R=robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/422023006
* Revert of Add effect caching to distance field text. ↵Gravatar bensong2014-07-29
| | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/424103002/) Reason for revert: breaking Chrome canary. Original issue's description: > Add effect caching to distance field text. > > This also is a step towards unifying GrDistanceFieldTextureEffect and GrDistanceFieldLCDTextureEffect. > > Committed: https://skia.googlesource.com/skia/+/137bac067306c5446bc4f9797bedc3bbaf302822 R=robertphillips@google.com, jvanverth@google.com TBR=jvanverth@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: bensong@google.com Review URL: https://codereview.chromium.org/424173002
* Revert of Remove gpu support for willUseHWAALines. ↵Gravatar egdaniel2014-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/423943003/) Reason for revert: Breaking windows 7 compare gm's Original issue's description: > Remove gpu support for willUseHWAALines. > > By removing willUseHWAALines, we also no long reference the blend opt flag kDisableBlend so it has been removed > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/e6dfba868c19b00562f8c733b9bf37dd4ec9e68c R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: egdaniel@google.com Review URL: https://codereview.chromium.org/430493003
* Add effect caching to distance field text.Gravatar jvanverth2014-07-29
| | | | | | | | | | This also is a step towards unifying GrDistanceFieldTextureEffect and GrDistanceFieldLCDTextureEffect. R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/424103002
* Some fixes around GrContext::abandonContext:Gravatar bsalomon2014-07-29
| | | | | | | | | | | | | | Fix debug crash when GrResourceCache is destroyed after GrContext is abandoned while GrTextures are in the exlusive list. Notify debug GL context that GL resources are expected to remain undeleted when context is destroyed after being abandoned. Stop leaking program cache entries when context is abandoned. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/422323002
* Remove gpu support for willUseHWAALines.Gravatar egdaniel2014-07-29
| | | | | | | | | | | By removing willUseHWAALines, we also no long reference the blend opt flag kDisableBlend so it has been removed BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/423943003
* Now always use Atlas for layer cacheGravatar robertphillips2014-07-29
| | | | | | | | | | This is setup for running cluster telemetry tests R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/429593002
* Finish removing GrTHashTableGravatar robertphillips2014-07-29
| | | | | | | | | | This class is no longer used in Ganesh (in favor of SkTDynamicHash) R=jvanverth@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/421253003
* Add plot-based purging to GrLayerCacheGravatar robertphillips2014-07-29
| | | | | | | | | | This CL allows a GrPlot full of atlased layer to be purged from the atlas to make room for new layers. R=jvanverth@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/411703003
* round and bevel hairline rects show the same as miter hairline rectsGravatar yunchao.he2014-07-28
| | | | | | | | | | | | | | | So round and bevel hairline rects can generate the vertices and indices the same as miter rects do. The original code behaves the same as bevel rects for round and bevel hairline rects. This small CL can save (vertices and indices) buffer memory as well as improve performance (draw less triangles). gm cases show no difference after this CL is applied. BUG=skia: R=robertphillips@google.com Author: yunchao.he@intel.com Review URL: https://codereview.chromium.org/417113002
* Test abandoning GL context in dm/nanobench.Gravatar bsalomon2014-07-28
| | | | | | | | | | | | Rename GrContext::contextDestroyed to GrContext::abandonContext. Remove GrContext::resetContext. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/422903002
* Add vertex color support to distance field text.Gravatar jvanverth2014-07-25
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/421563002
* Move vertex buffer setup out of drawPackedGlyph().Gravatar jvanverth2014-07-25
| | | | | | | | | | | | This gets a very welcome ~10% speedup on my Mac. Committed: https://skia.googlesource.com/skia/+/1d38619389cc1100bd516b9acbf17b7bd42d33ce R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/414573002
* Send less transform data when drawing text with nvprGravatar cdalton2014-07-25
| | | | | | | | | | | | | | | | | | Before this change, GrStencilAndCoverTextContext would send 6-float affine transforms to drawPaths for every glyph. This updates it to concat the text scale onto the context matrix, and then only send 2-float translates (or 1-float x-translates when possible). Also adds a glyph_pos_align test to gm that exercises the newly added codepaths, and starts ignoring a few gm tests with benign pixel diffs until we can rebaseline. BUG=skia: R=bsalomon@google.com, kkinnunen@nvidia.com, jvanverth@google.com, bungeman@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/406523003
* Fix thread unsafe mutex initialization.Gravatar bungeman2014-07-25
| | | | | | | | | BUG=skia:2779 R=robertphillips@google.com, mtklein@google.com, reed@android.com, bsalomon@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/419113002
* Revert of Move vertex buffer setup out of drawPackedGlyph(). ↵Gravatar jvanverth2014-07-25
| | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/414573002/) Reason for revert: Breaking Ubuntu and Windows bots. Original issue's description: > Move vertex buffer setup out of drawPackedGlyph(). > > This gets a very welcome ~10% speedup on my Mac. > > Committed: https://skia.googlesource.com/skia/+/1d38619389cc1100bd516b9acbf17b7bd42d33ce R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true Author: jvanverth@google.com Review URL: https://codereview.chromium.org/419943002
* Move vertex buffer setup out of drawPackedGlyph().Gravatar jvanverth2014-07-25
| | | | | | | | | | This gets a very welcome ~10% speedup on my Mac. R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/414573002
* Rename GrGpuObject to GrGpuResourceGravatar bsalomon2014-07-25
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/418143004
* Merge GrGpuObject and GrCacheable.Gravatar bsalomon2014-07-25
| | | | | | | | | | We want to create a new base class for "meta" gr resources as part of the GrResourceCache rewrite and this is an iterim step towards that goal.s R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/414013005
* Alter Default & Software path renderers to better handle AA hairline pathsGravatar robertphillips2014-07-25
| | | | | | | | | | | | | | | | | | | | | | For some (as yet unknown reason) the guard in ConicPathBench that disables the path_hairline_big_AA_conic case isn't working. As an alternate fix, this CL makes the Default path renderer confess its lack of support for conics and allows the Software path renderer to handle non-AA cases. This will work but the real fix is to enable conics in the Default path renderer. Here is the situation we're seeing in the path_hairline_big_AA_conic case: the path is a hairline drawn with AA the render target is multisampled (so AA on the draw gets disabled) StencilAndCover path renderer doesn't handle hairlines AAHairLine path renderer only handles AA paths (but can handle conics) AAConvexPath renderer also only handles AA paths Default path renderer only handles non-AA paths (but doesn't handle conics) Software path renderer - was disallowed from handling non-AA paths BUG=skia:2078 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/418073002
* Replace use of GrTHashTable in GrFontCache with SkTDynamicHash.Gravatar jvanverth2014-07-22
| | | | | | | | | | | Searching the font cache for existing text strikes was showing up as a hotspot on Android. This change reduces that cost. R=bsalomon@google.com, robertphillips@google.com, mtklein@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/390103002
* Revert "Revert of Use the GrCacheable ID to eliminate the need for ↵Gravatar bsalomon2014-07-22
| | | | | | | | | | | | | | notifications to GrGpuGL when textures and RTs are… (https://codereview.chromium.org/376703009/)" This reverts commit 249171e7d29b5559f3eefe9dbd437030bfad3fda. Uses 32 bit id instead of 64. Renamed instanceID to uniqueID to match existing code. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/414493002
* Remove unused enum value and member of GrGpuObjectGravatar bsalomon2014-07-22
| | | | | | | | | R=robertphillips@google.com TBR=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/413523002
* Add auto purging for SkPicture-related Ganesh resources (esp. layers)Gravatar robertphillips2014-07-22
| | | | | | | | | | This is intended to lower the bookkeeping burden for the Layer Caching feature. Cached layers are now automatically purged when a picture is deleted. R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/408923002
* Initial change to move 2D kernel to its own file.Gravatar joshualitt2014-07-22
| | | | | | | | | BUG=skia: R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/379253003
* Add a GrPathRange classGravatar cdalton2014-07-21
| | | | | | | | | | | | | | | Adds a GrPathRange object that represents a range of paths on the gpu. Updates GrDrawTarget::drawPaths and supporting code to use GrPathRange instead of an array of GrPath objects. Change-Id: I67845f3893cd4d955db947d699aa3733cbb081e0 BUG=skia: R=bsalomon@google.com, jvanverth@google.com, kkinnunen@nvidia.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/400713003