-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Description
With http://flutter.dev/go/impeller-geometry under way, we can create specialized geometry factories and avoid using libtess for common shapes. But we can reduce overhead even further by uploading one immutable device buffer containing triangle strip vertex data for a simple square and a few circle LODs, which lasts for the lifetime of the Impeller Entities context.
Since the geometry factories are also responsible for producing the vertex transform for the geometry, this would allow us to avoid generating/uploading any vertex data for all rectangles and ovals.
At the moment, this is only feasible when generating the Position-only buffer, but the impact of this can expand to include PositionColor and PositionUV cases once we have a solution for customizing vertex layouts at runtime (as sourcing attributes from multiple distinct buffers simultaneously is allowed on all backends).