-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Closed
Closed
Copy link
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: performanceRelates to speed or footprint issues (see "perf:" labels)Relates to speed or footprint issues (see "perf:" labels)e: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Description
Now that we've resolved clip storage via stencil record/replay, we're unblocked on some new features in Impeller. This issue aggregates several other issues into a single arc of work.
- (issue Not Filled) Add new contents that support clipping via depth buffer. This doesn't need to be wired up anywhere besides testing.
- (Issue Not Filled) Ensure backends support having both depth and stencil buffer attached, including when a combined depth-stencil is used.
- Add new Geometry methods that describe the appropriate rendering technique (StC or not). Add functionality to color source contents to conditionally use stencil techniques. This may require some design work.
- Prototype: [Impeller] Stencil then cover experiment engine#46442 . Note this one uses a technique that only works for nonZero, but the other fill modes can be implemented by following the instructions in the issue linked below.
- [Impeller] Why did Impeller opt for "triangulation then draw" over "stencil then cover"? #123671
- Evaluate performance and switch all clipping to use depth and enable StC.
- Revisit polyline generation in Compute and potentially simplify by eagerly converting cubics to quadradics. There are some tessellation benchmarks that would be appropriate for this.
Cleanups:
If we're able to use StC everywhere (which we should be able to do), then we can consider removing libtess2. This would also remove the benefit for vector_graphics to perform pre-tessellation.
Notes:
- We may determine that StC is slower than Triangulate and draw in some cases where the path is known to be static
- We should never use StC with convex shapes.
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: performanceRelates to speed or footprint issues (see "perf:" labels)Relates to speed or footprint issues (see "perf:" labels)e: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team