aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
...
* 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
* Batched implementation of drawLattice() for GPUGravatar msarett2016-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bechmarks (Nexus 6P): Src=100x100, Dst=250x250, NumRects=9 Android 77.7us Skia (without patch) 57.2us Skia (with patch) 34.7us Src=100x100, Dst=500x500, NumRects=9 Android 77.0us Skia (without patch) 56.9us Skia (with patch) 44.5us Src=100x100, Dst=1000x1000, NumRects=9 Android 180us Skia (without patch) 96.8us Skia (with patch) 70.5us Src=100x100, Dst=250x250, NumRects=15 Android 208us Skia (without patch) 155us Skia (with patch) 55.9us Src=100x100, Dst=500x500, NumRects=15 Android 207us Skia (without patch) 152us Skia (with patch) 63.0us Src=100x100, Dst=1000x1000, NumRects=15 Android 233us Skia (without patch) 156us Skia (with patch) 99.9us BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255963002 Review-Url: https://codereview.chromium.org/2255963002
* Tessellator: better fix for reused-edges issue.Gravatar senorblanco2016-08-18
| | | | | | | | | | | | | | | | | The GrTessellator fix for doubly-added edges in https://codereview.chromium.org/2259493002/ could leave a MonotonePoly with zero edges. This is a problem for Poly::addEdge(), which assumes that MonotonePolys always have at least one edge. The fix is to move the check and early-out up to Poly::addEdge(). This should also tighten up the vertex count. (Unfortunately, the only repro I have for this issue is very convoluted, and requires non-landed code.) BUG=skia:5636 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2251643008 Review-Url: https://codereview.chromium.org/2251643008
* Don't emit dead code in circle shader when not using distance vectors.Gravatar bsalomon2016-08-18
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254103004 Review-Url: https://codereview.chromium.org/2254103004
* Rename WorseCaseSize to WorstCasSizeGravatar robertphillips2016-08-18
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259863002 Review-Url: https://codereview.chromium.org/2259863002
* Add alpha type to texture producerGravatar brianosman2016-08-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250403003 Review-Url: https://codereview.chromium.org/2250403003
* Revert of Reduce window rectangles cap to 8 (patchset #1 id:1 of ↵Gravatar robertphillips2016-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2254013002/ ) Reason for revert: Breaking Ubuntu Original issue's description: > Reduce window rectangles cap to 8 > > Lowers the cap to 8 and adds a warning message if this value is ever > exceeded. The largest (only) implementation currently supports 8, so > there isn't yet reason to go higher. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254013002 > > Committed: https://skia.googlesource.com/skia/+/52d721580ee22525c285e2d13cf3975a7a1b2843 TBR=mjk@nvidia.com,bsalomon@google.com,csmartdalton@google.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/2253293003
* Fix assert caused by floating point error in tessellating path renderer.Gravatar senorblanco2016-08-17
| | | | | | | | | | | | | | | | | | | | | In rare cases, floating point error causes the tesselator to add the same Vertex to more than one Poly on the same side. This was not a big problem when we were allocating new vertices when constructing Polys, but after https://codereview.chromium.org/2029243002 it causes more serious issues, since each Edge can only belong to two Polys, and violating this condition messes up the linked list of Edges used for left & right Polys and the associated estimated vertex count. The fix is to simply let the first Poly win, and skip that vertex for subsequent Polys. Since this only occurs in cases where vertices are very close to each other, it should have little visual effect. This is also exercised by Nebraska-StateSeal.svg. BUG=skia:5636 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259493002 Review-Url: https://codereview.chromium.org/2259493002
* Fix computation of clipped src rect when tiling bitmaps in SkGpuDeviceGravatar bsalomon2016-08-17
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2252913004 Review-Url: https://codereview.chromium.org/2252913004
* Reduce window rectangles cap to 8Gravatar csmartdalton2016-08-17
| | | | | | | | | | | Lowers the cap to 8 and adds a warning message if this value is ever exceeded. The largest (only) implementation currently supports 8, so there isn't yet reason to go higher. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254013002 Review-Url: https://codereview.chromium.org/2254013002
* Fix fb variable name in GLSLGravatar egdaniel2016-08-17
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2252143002 NOTREECHECKS=True Review-Url: https://codereview.chromium.org/2252143002
* Simplify adding attributes to GrGeometryProcessorGravatar bsalomon2016-08-17
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248323003 Review-Url: https://codereview.chromium.org/2248323003
* pin as texture apiGravatar reed2016-08-17
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241353002 Review-Url: https://codereview.chromium.org/2241353002
* Fix various issues with framebuffer fetchGravatar egdaniel2016-08-17
| | | | | | | | | | | | | | | | This CL does two things. First it fixes a bug of ours where when using a custom fbFetch variable (es 3.0 and higher), we sometimes overwrite the out color and then attempt to use it as the dst color later. This is fixed here by using an intermediate variable. Secondly I've added a workaround to an andreno fbFetch where reading from the outColor always returns the original dstColor even if we've overwritten the value. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248403003 Review-Url: https://codereview.chromium.org/2248403003
* Detemplatize GrGLSLGeometryProcessor::setTransformDataHelper()Gravatar bsalomon2016-08-17
| | | | | | | Instead take a local matrix parameter. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250563004 Review-Url: https://codereview.chromium.org/2250563004
* Implement difference clip rects with window rectanglesGravatar csmartdalton2016-08-17
| | | | | | | | | | | | | | | | | | | | | | | Plumbs the pipeline for window rectangles and uses them for a very basic implementation of difference clip rects. This puts a common Blink pattern on fast path, but we will still eventually need to make more comprehensive use of window rectangles during clipping. GTX 960 perf result: gpu glinst4 glinst16 desk_jsfiddlebigcar.skp 0.254 -> 0.177 [70%] 0.279 -> 0.197 [71%] 0.577 -> 0.196 [34%] keymobi_sfgate_com_.skp 0.697 -> 0.513 [74%] 0.766 -> 0.451 [59%] 0.769 -> 0.597 [78%] keymobi_blogger.skp 0.406 -> 0.314 [77%] 0.436 -> 0.292 [67%] 0.696 -> 0.319 [46%] desk_pokemonwiki.skp 0.121 -> 0.098 [81%] 0.13 -> 0.105 [81%] 0.216 -> 0.097 [45%] desk_wikipedia.skp 0.121 -> 0.098 [81%] 0.13 -> 0.104 [80%] 0.199 -> 0.104 [52%] keymobi_androidpolice_co... 0.443 -> 0.382 [86%] 0.447 -> 0.398 [89%] 0.444 -> 0.396 [89%] keymobi_booking_com_sear... 1 .15 -> 1.03 [90%] 1.17 -> 1.06 [91%] 1.17 -> 1.05 [90%] keymobi_theverge_com.skp 0.417 -> 0.396 [95%] 0.426 -> 0.405 [95%] 0.429 -> 0.4 [93%] BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2251573002 Review-Url: https://codereview.chromium.org/2251573002
* Make GrReducedClip's gen ID only apply to the element listGravatar csmartdalton2016-08-17
| | | | | | | | | | Renames fGenID to fElementsGenID and designates this value as undefined when when the element list is empty. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2244223004 Review-Url: https://codereview.chromium.org/2244223004
* Fix tile bitmap code in SkGpuDevice to compute correct local coords.Gravatar bsalomon2016-08-17
| | | | | | | | | | This fixes a bug when using an alpha bitmap/image with a SkShader where the SkShader's GrFragmentProcessor would receive incorrect coordinates. BUG=skia:5643 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2249163004 Review-Url: https://codereview.chromium.org/2249163004
* Minor cleanup of GP classes in GrOvalRendererGravatar bsalomon2016-08-17
| | | | | | | Move GLSL nested classes to private and remove unnecessary public getters. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253903002 Review-Url: https://codereview.chromium.org/2253903002
* Cast for fuzzer complaintGravatar robertphillips2016-08-17
| | | | | | | | | Given the cast in the following else block, this isn't the first time we've encountered this. BUG=637187 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2258463002 Review-Url: https://codereview.chromium.org/2258463002
* Add alternative ambient shadow method to Android shadow sampleGravatar jvanverth2016-08-17
| | | | | | | | TBR=bsalomon@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2249973003 Review-Url: https://codereview.chromium.org/2249973003
* Add mssa configs for vulkan, and simple bug fixGravatar egdaniel2016-08-17
| | | | | | | BUG=skia:5127 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2251473002 Review-Url: https://codereview.chromium.org/2251473002
* simplify GrTextureAdjuster given there is only one subclassGravatar reed2016-08-16
| | | | | | | | | Intended as a pre-cl for https://codereview.chromium.org/2241353002# BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2242373002 Review-Url: https://codereview.chromium.org/2242373002
* Attempt to throw away rrect clips of rrects.Gravatar bsalomon2016-08-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241273003 Review-Url: https://codereview.chromium.org/2241273003
* Fix compile warning on MSVC-vulkan (VkDeviceSize -> size_t)Gravatar brianosman2016-08-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246183002 Review-Url: https://codereview.chromium.org/2246183002
* Print error from driver when shader compiler failsGravatar bsalomon2016-08-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248853002 Review-Url: https://codereview.chromium.org/2248853002
* Convert GrAppliedClip interface to builder styleGravatar csmartdalton2016-08-15
| | | | | | | | | | | | | GrAppliedClip was about at its limit for how many "make" functions it could have. Window rectangles would push it over the edge. This change makes it so GrDrawTarget supplies the original draw bounds to the constructor, and then GrClip adds the various required clipping techniques. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246113002 Review-Url: https://codereview.chromium.org/2246113002
* Fix 4444 on Vulkan devices who don't support RGBA_4444Gravatar egdaniel2016-08-15
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2238563002 Committed: https://skia.googlesource.com/skia/+/637b3bf2b9c10398d823bd015a722842d4f2f971 Review-Url: https://codereview.chromium.org/2238563002
* Fix copying of data in vulkan testing textureGravatar egdaniel2016-08-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248703002 Review-Url: https://codereview.chromium.org/2248703002
* Remove stencil settings param from stencilPath()Gravatar csmartdalton2016-08-12
| | | | | | | | | | stencilPath() picks its own user stencil settings. This argument should not be there. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241873002 Review-Url: https://codereview.chromium.org/2241873002
* Re-adding analytical GeoProc for rectanglesGravatar dvonbeck2016-08-12
| | | | | | | | | | | | | Adapted old GeoProc because its knowledge of the geometry is helpful for computing the distance vector: https://skia.googlesource.com/skia/+/6006d0f8c4f19d19a12de20826f731f52ac822a7/src/gpu/GrAARectRenderer.cpp Added distance vector capabilities to this GeoProc. Modified GrDrawContext to used this GeoProc when drawing anti-aliased vectors with a shader that requires distance vectors. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2230513004 Review-Url: https://codereview.chromium.org/2230513004
* Allow vulkan to upload data to testing textures with optimal layoutsGravatar egdaniel2016-08-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2242553002 Review-Url: https://codereview.chromium.org/2242553002
* Revert of Fix 4444 on Vulkan devices who don't support RGBA_4444 (patchset ↵Gravatar egdaniel2016-08-11
| | | | | | | | | | | | | | | | | | | | | | | | #4 id:60001 of https://codereview.chromium.org/2238563002/ ) Reason for revert: test failing on some gpus Original issue's description: > Fix 4444 on Vulkan devices who don't support RGBA_4444 > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2238563002 > > Committed: https://skia.googlesource.com/skia/+/637b3bf2b9c10398d823bd015a722842d4f2f971 TBR=bsalomon@google.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/2240713003
* LightingShader and NormalSource comment and style fixesGravatar dvonbeck2016-08-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2237963002 Review-Url: https://codereview.chromium.org/2237963002
* Fix 4444 on Vulkan devices who don't support RGBA_4444Gravatar egdaniel2016-08-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2238563002 Review-Url: https://codereview.chromium.org/2238563002
* Move GrAtlasTextContext to GrDrawingManager, so we only have one.Gravatar brianosman2016-08-11
| | | | | | | | | | Ultimately, avoids wasteful redundant computation and storage of distance field fake-gamma tables. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2240623002 Review-Url: https://codereview.chromium.org/2240623002
* Avoid creating full screen clear batches when there is already one in the queue.Gravatar bsalomon2016-08-11
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2237633003 Review-Url: https://codereview.chromium.org/2237633003
* Inline fast path for GrPaint::isConstantBlendedColor when no color FPs and ↵Gravatar bsalomon2016-08-11
| | | | | | | | src-over blend. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2236423002 Review-Url: https://codereview.chromium.org/2236423002
* Remove a useless call: Calling lineVec.dot(qPts[0])Gravatar jcgregorio2016-08-11
| | | | | | | | | | | This is from https://github.com/google/skia/pull/9, an external pull request from https://github.com/sylvestre. BUG=skia: R=bsalomon GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2234563003 Review-Url: https://codereview.chromium.org/2234563003
* Add a full clear method to GrDrawTarget.Gravatar bsalomon2016-08-10
| | | | | | | This will allow us to avoid ClearBatch creation for successive clears. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2233043002 Review-Url: https://codereview.chromium.org/2233043002
* Implement GPU occluded blur mask filterGravatar robertphillips2016-08-10
| | | | | | | | Spawned off: https://codereview.chromium.org/2214163003/ (Minor clean up related to blur mask filters) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2201133002 Review-Url: https://codereview.chromium.org/2201133002
* Create blurred RRect mask on GPU (rather than uploading it)Gravatar robertphillips2016-08-10
| | | | | | | | | | | | This CL doesn't try to resolve any of the larger issues. It just moves the computation of the blurred RRect to the gpu and sets up to start using vertex attributes for a nine patch draw (i.e., returning the texture coordinates) All blurred rrects using the "analytic" path will change slightly with this CL. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222083004 Committed: https://skia.googlesource.com/skia/+/75ccdc77a70ec2083141bf9ba98eb2f01ece2479 Committed: https://skia.googlesource.com/skia/+/94b5c5a41160e0f55e267fc3d830df65736fac50 Review-Url: https://codereview.chromium.org/2222083004
* Add flag for window rectangles to GrRenderTargetGravatar csmartdalton2016-08-10
| | | | | | | | | | | Adds a flag to GrRenderTarget that indicates whether it can be used with window rectangles. Also attempts to clean up some of the mixed samples API. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2225303002 Review-Url: https://codereview.chromium.org/2225303002
* Revert of Create blurred RRect mask on GPU (rather than uploading it) ↵Gravatar robertphillips2016-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/2222083004/ ) Reason for revert: No NoGPU bot on commit queue ? Original issue's description: > Create blurred RRect mask on GPU (rather than uploading it) > > This CL doesn't try to resolve any of the larger issues. It just moves the computation of the blurred RRect to the gpu and sets up to start using vertex attributes for a nine patch draw (i.e., returning the texture coordinates) > > All blurred rrects using the "analytic" path will change slightly with this CL. > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222083004 > > Committed: https://skia.googlesource.com/skia/+/75ccdc77a70ec2083141bf9ba98eb2f01ece2479 > Committed: https://skia.googlesource.com/skia/+/94b5c5a41160e0f55e267fc3d830df65736fac50 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2232953002
* Check allignment of sub heap allocation in vulkanGravatar egdaniel2016-08-10
| | | | | | | | | | | | Certain Vulkan devices will return difference alignment requirements for a given allocation even if using the same heap. Thus we need to check this alignment as well when deciding which subheap we want to use in our memory allocation. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2232803003 Review-Url: https://codereview.chromium.org/2232803003
* Create blurred RRect mask on GPU (rather than uploading it)Gravatar robertphillips2016-08-10
| | | | | | | | | | | This CL doesn't try to resolve any of the larger issues. It just moves the computation of the blurred RRect to the gpu and sets up to start using vertex attributes for a nine patch draw (i.e., returning the texture coordinates) All blurred rrects using the "analytic" path will change slightly with this CL. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222083004 Committed: https://skia.googlesource.com/skia/+/75ccdc77a70ec2083141bf9ba98eb2f01ece2479 Review-Url: https://codereview.chromium.org/2222083004
* Revert of Create blurred RRect mask on GPU (rather than uploading it) ↵Gravatar robertphillips2016-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/2222083004/ ) Reason for revert: Erg - dumb bug Original issue's description: > Create blurred RRect mask on GPU (rather than uploading it) > > This CL doesn't try to resolve any of the larger issues. It just moves the computation of the blurred RRect to the gpu and sets up to start using vertex attributes for a nine patch draw (i.e., returning the texture coordinates) > > All blurred rrects using the "analytic" path will change slightly with this CL. > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222083004 > > Committed: https://skia.googlesource.com/skia/+/75ccdc77a70ec2083141bf9ba98eb2f01ece2479 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2236493002
* Create blurred RRect mask on GPU (rather than uploading it)Gravatar robertphillips2016-08-10
| | | | | | | | | | This CL doesn't try to resolve any of the larger issues. It just moves the computation of the blurred RRect to the gpu and sets up to start using vertex attributes for a nine patch draw (i.e., returning the texture coordinates) All blurred rrects using the "analytic" path will change slightly with this CL. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222083004 Review-Url: https://codereview.chromium.org/2222083004
* Restore scratch texture reuse on Adreno.Gravatar brianosman2016-08-09
| | | | | | | | | | | New testing shows that it's a win on our slowest SKPs, and pretty much a wash on faster tests (mixed results). However, it also saves us ~3 ms on the hwui bitmap upload jank test. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2227983003 Review-Url: https://codereview.chromium.org/2227983003
* Include EXT_window_rectangles APIGravatar csmartdalton2016-08-09
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2221393004 Review-Url: https://codereview.chromium.org/2221393004