03776fc0d7
That GM has a path with 16k points, arranged in a rectangle. When we try to draw it in Ganesh, we first check to see if it's a (closed) rectangle. We eventually decide that it is a rectangle, but not closed, so it gets passed along. Then we construct a GrShape, which tries to simplify the shape, again asking if it's a rectangle... Each isRect query was iterating over the 16k verbs, and for each one, calling atVerb(i). That, internally, calls verbs(), which calls validate() in debug builds. So we were walking all 16k points 16k times (to ensure the bounds were correct). The end result is that the GM took over 11 seconds to draw, and now takes 3 ms. Bug: skia: Change-Id: If5f7a067b8c25f049dc64275d94a42ae4a50f6a9 Reviewed-on: https://skia-review.googlesource.com/34723 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com> |
||
---|---|---|
.. | ||
android | ||
c | ||
codec | ||
config | ||
core | ||
effects | ||
encode | ||
gpu | ||
pathops | ||
ports | ||
private | ||
svg | ||
utils | ||
views |