- From: Robert O'Callahan <robert@ocallahan.org>
- Date: Thu, 31 Jan 2008 08:07:22 -0800
- To: www-svg@w3.org
- Message-ID: <11e306600801310807ud8271d6y424e8e80de5f72a5@mail.gmail.com>
Hey, sorry I couldn't make the first meeting and didn't find out about the second meeting until after it happened (if it did happen). Vladimir Vukčević discovered that some of the content we're concerned about rendering very slowly with filters (http://ejohn.org/files/ecma-cloud.svg) is autogenerated with primitiveUnits="userSpaceOnUse" and default x/y/width/height on the <filter> elements, and applies filters to a number of elements in the document. Our implementation pretty much follows the spec directly, creating a temporary surface 120% of the size of the viewport in each direction and doing the blur over that surface for each element! There's an obvious optimization to propagate bounding boxes through the filter pipeline so we can create and compute over temporary surfaces smaller than the official filter subregion for each filter element. That should help performance quite a bit and I expect we can do it for FF3. Of course our pure CPU implementation is still going to be quite slow for complex animated content. I like Oliver's suggestion of picking a default filterRes that's lower than normal for that case --- on the assumption that authors generally won't specify filterRes (except for feConvolveMatrix, oh well). We'll need to figure out a policy for that. I still think a filter-rendering property or something like it has value. But if people can't agree on it, I think we will be able to get by without it in most cases. Rob -- "He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]
Received on Thursday, 31 January 2008 16:07:32 UTC