aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrClipMaskManager.cpp
Commit message (Collapse)AuthorAge
* detach -> releaseGravatar mtklein2016-03-16
| | | | | | | | | | | | | The C++ standard library uses the name "release" for the operation we call "detach". Rewriting each "detach(" to "release(" brings us a step closer to using standard library types directly (e.g. std::unique_ptr instead of SkAutoTDelete). This was a fairly blind transformation. There may have been unintentional conversions in here, but it's probably for the best to have everything uniformly say "release". BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1809733002 Review URL: https://codereview.chromium.org/1809733002
* Reenable dev bounds clip reductionGravatar bsalomon2016-03-09
| | | | | | | TBR=joshualitt@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1781663002 Review URL: https://codereview.chromium.org/1781663002
* Begin weaning GrClipMaskManager off of GrDrawTarget (take 2)Gravatar robertphillips2016-03-02
| | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1754563003 Committed: https://skia.googlesource.com/skia/+/86c60758e9e4f9e203d7462cb22b2a245a0f51bd Review URL: https://codereview.chromium.org/1754563003
* Revert of Begin weaning GrClipMaskManager off of GrDrawTarget (take 2) ↵Gravatar robertphillips2016-03-02
| | | | | | | | | | | | | | | | | | | | | | (patchset #7 id:120001 of https://codereview.chromium.org/1754563003/ ) Reason for revert: fAuditTrail Original issue's description: > Begin weaning GrClipMaskManager off of GrDrawTarget (take 2) > > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1754563003 > > Committed: https://skia.googlesource.com/skia/+/86c60758e9e4f9e203d7462cb22b2a245a0f51bd TBR=joshualitt@chromium.org,bsalomon@google.com,joshualitt@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/1754353002
* Begin weaning GrClipMaskManager off of GrDrawTarget (take 2)Gravatar robertphillips2016-03-02
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1754563003 Review URL: https://codereview.chromium.org/1754563003
* Remove remaining users of draw*Rect callsGravatar joshualitt2016-01-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1579223003 Review URL: https://codereview.chromium.org/1579223003
* Disable using dev bounds in Gr clip reduction code.Gravatar Brian Salomon2015-11-30
| | | | | | | | Enabling this broke GPU raster in Chrome. Disabling until bug diagnosed/fixed. TBR=joshualitt@googole.com Review URL: https://codereview.chromium.org/1484973002 .
* Add debug option to clip each GrBatch to its device boundsGravatar bsalomon2015-11-30
| | | | Review URL: https://codereview.chromium.org/1471083002
* Restrict query bounds for reduce clip to dev boundsGravatar bsalomon2015-11-23
| | | | Review URL: https://codereview.chromium.org/1467253002
* Make block size a template parameter of SkTLListGravatar bsalomon2015-11-18
| | | | Review URL: https://codereview.chromium.org/1457123002
* Enable AA stencil clip for mixed samplesGravatar cdalton2015-11-11
| | | | | | | | | Updates GrClipMaskManager to use the stencil buffer when the RT is mixed sampled. BUG=skia: Review URL: https://codereview.chromium.org/1440513002
* Revert of Enable stencil clipping in mixed sampled render targets (patchset ↵Gravatar cdalton2015-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | #6 id:100001 of https://codereview.chromium.org/1232103002/ ) Reason for revert: Co-centered sample locations are not needed to do stencil clip with mixed samples Original issue's description: > Implement stencil clipping in mixed sampled render targets > > This change enables multisampled clipping for mixed sampled > render targets. Previously clipping in mixed samples config > behaved the same as in the gpu config. > > In order to retrofit non-MSAA draw methods, programmable sample > locations are used in order to colocate all samples at (0.5, 0.5). > Requires support for NV_sample_locations. > > BUG=skia:4399 > > Committed: > https://skia.googlesource.com/skia/+/3e77ba96d56d15db30ac6d8ccb900e30aafcbb16 BUG=skia: Review URL: https://codereview.chromium.org/1415873011
* Revert of Fix mixed samples stencil clip (patchset #5 id:80001 of ↵Gravatar cdalton2015-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1431593006/ ) Reason for revert: Co-centered sample locations are not needed to do stencil clip with mixed samples. Original issue's description: > Fix mixed samples stencil clip > > Fixes rendering bugs and nondeterminism in gm. > > Before, mixed samples stencil clip would try to infer whether the draw > wanted co-centered sample locations from within GrGLGpu, which caused > various errors. This change reworks it so the draw itself can request > the co-centered sample locations when it knows it will need them. > > Also reduces framebuffer binds by moving the code that enables > GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget. > > Committed: https://skia.googlesource.com/skia/+/14184d5567b58085b6d8a6375796d405056f7f73 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1407063011
* Fix mixed samples stencil clipGravatar cdalton2015-11-09
| | | | | | | | | | | | | | Fixes rendering bugs and nondeterminism in gm. Before, mixed samples stencil clip would try to infer whether the draw wanted co-centered sample locations from within GrGLGpu, which caused various errors. This change reworks it so the draw itself can request the co-centered sample locations when it knows it will need them. Also reduces framebuffer binds by moving the code that enables GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget. Review URL: https://codereview.chromium.org/1431593006
* 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
* 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
* 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
* 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
* 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
* 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
* 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 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
* Narrow the distribution of GrDrawTarget a bitGravatar robertphillips2015-10-23
| | | | | | | BUG=skia:4094 TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1420043002
* Don't abort analytic clipping if using MSAA until elements are examinedGravatar bsalomon2015-10-14
| | | | | | TBR=joshualitt@google.com Review URL: https://codereview.chromium.org/1399223005
* Fix clipping when all analytic FP creations can be skippedGravatar bsalomon2015-10-14
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1400343004
* Remove ClipMaskType from GrCMMGravatar bsalomon2015-10-07
| | | | Review URL: https://codereview.chromium.org/1391653002
* Insert clip fragment processor outside GrCMMGravatar bsalomon2015-10-07
| | | | Review URL: https://codereview.chromium.org/1393553002
* Bye bye processor data manager.Gravatar bsalomon2015-10-06
| | | | Review URL: https://codereview.chromium.org/1388113002
* Fix memory leak in ClipMaskManagerGravatar robertphillips2015-10-04
| | | | | | TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1385823002
* Remove separate cache for clip mask texturesGravatar bsalomon2015-10-02
| | | | Review URL: https://codereview.chromium.org/1377943003
* Implement stencil clipping in mixed sampled render targetsGravatar vbuzinov2015-09-30
| | | | | | | | | | | | | | This change enables multisampled clipping for mixed sampled render targets. Previously clipping in mixed samples config behaved the same as in the gpu config. In order to retrofit non-MSAA draw methods, programmable sample locations are used in order to colocate all samples at (0.5, 0.5). Requires support for NV_sample_locations. BUG=skia:4399 Review URL: https://codereview.chromium.org/1232103002
* Move some of the adding stencil attachment logic of Gpu and into Render Target.Gravatar egdaniel2015-09-14
| | | | | | | | | | | | | | The new flow of calls for attaching a Stencil looks like: Client rt->attachStencilAttachment() gpu->getStencilAttachment() glgpu->createStencilAttachment() glrt->completeStencilAttachment() //actually attaches BUG=skia: Review URL: https://codereview.chromium.org/1333383002
* Remove GrClipTargetGravatar bsalomon2015-09-10
| | | | Review URL: https://codereview.chromium.org/1330353006
* Move PathRenderers to batches folderGravatar joshualitt2015-09-01
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1306143005
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-27
| | | | | | Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 Review URL: https://codereview.chromium.org/1307223004
* Revert of Remove GrStagedProcessor, remove the word Stage as it applies to ↵Gravatar rmistry2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ ) Reason for revert: Causes bot failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639 https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702 https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223 Original issue's description: > Remove GrStagedProcessor, remove the word Stage as it applies to FPs > > Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1306803003
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-26
| | | | Review URL: https://codereview.chromium.org/1307223004
* Standardize BW to NonAAGravatar joshualitt2015-08-21
| | | | | | | TBR=bsalomon@google.com, robertphillips@google.com BUG=skia: Review URL: https://codereview.chromium.org/1310533004
* Create separate entry points for the various flavors of drawRectGravatar joshualitt2015-08-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1308503002
* Some cleanup in GrTextureProvider and GrResourceProvider.Gravatar bsalomon2015-07-31
| | | | Review URL: https://codereview.chromium.org/1261643004
* Also provides the ResourceProvider to onDrawPath which allows the DF PR to ↵Gravatar bsalomon2015-07-31
| | | | | | no longer require access to GrContext. Review URL: https://codereview.chromium.org/1265763002
* Rename GrInOrderDrawBuffer to GrBufferedDrawTargetGravatar joshualitt2015-07-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1261033002
* small cleanups after fixing const of GrPipelineBuilder on DrawTargetGravatar joshualitt2015-07-13
| | | | | | | | Fuse AutoRestoreFragmentProcessors and AutoRestoreProcessorDataManager into new AutoRestoreFragmentProcessorState class BUG=skia: Review URL: https://codereview.chromium.org/1228763005
* Start to propagate constness of GrPipelineBuilder up the stackGravatar joshualitt2015-07-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1229143007