I think there is a misunderstanding.The issue is that `fPreferFlatInterpolation` is true already for WebGL and my suggestion was expose in Skia the option to override that via GrOptions or have Skia default to false for WebGL (or only if it can detect that non GL backend is used). I think defaulting to false is the best option here for now since Skia already defaults to false for GL Angle renderer with Metal/D3D backend. For Angle VK I assume Angle changes VK provoking vertex to match GLChanging the provoking vertex in WebGL to first will be preferred where possible but couldn't find how to tell Skia that WebGL uses first instead of last vertex and don't know if Skia depends on last vertex being used in its vertex shaders.
Here are results of Safari GPU memory usage from our web app. At most 125 drawElements, YUV SkImage, calls per frame at 60FPS for 3+ seconds
With prefer flat interpolation true, default from Skia. Start 200MB End 950MB

With prefer flat interpolation false, Start 100MB End 200MB

With WebGL provoking verte changed to first. Start 110MB End ~200MB

And Chrome with prefer flat interpolation. Start 100MB End 340MB
On Chrome there are only 120 buffers allocated even though it also uses Angle with Metal backend. We are still investigating why there is such a difference and think it's related to when the command buffer completes and allows Angle to reuse the buffers. On Safari it ends up allocating 20k before it tries to release, for reuse, the buffers.