In May 2008 (about three years ago, as of the time of this posting), an engineer who worked on Flash Player 10 wrote the following in a blog post talking about GPU compositing:
Just because the Flash Player is using [GPU compositing] does not mean it will be faster. In the majority of cases your content will become slower... Content has to be specifically designed to work well with GPU functionality. The software rasterizer in the Flash Player can optimize a lot of cases the GPU cannot optimize, you as the designer will have to be aware of what a GPU does and adapt your content accordingly. I realize this statement is useless unless we can provide guidance, something we can hopefully achieve in the not to distant future.
Is anyone aware of any such guidance having been provided by Adobe in the succeeding three years? The only relevant information I could find was in this article, which provides optimization tips for hardware rendering, but not for hardware-accelerated compositing, which is what the "gpu" wmode embed param turns on.
Short of testing each piece of content individually, how can I determine w开发者_JAVA百科hen my content would benefit from the use of GPU compositing and when the use of GPU compositing would be a detriment?
Thanks in advance!
The link you provided contains a lot of information on how to set up your content to work well with gpu rendering (which is, in fact, what Flash Player 10.1 and higher will do, when wmode is set to gpu). This includes compositing, and also some other functionalities.
In essence, compositing means assembling a screen image from combining and/or layering bitmaps. So you can safely assume that performance will increase when using the gpu render mode with little vector-based content, or when cacheAsBitmap is used.
Apart from vector-related things, most of the optimization methods that work for the 10.1 player should work for earlier versions, as well.
However, I would assume that there is no definitive set of rules to define which optimization methods are best and which will ultimately degrade performance. You will always have to test and verify any assumptions you make about what is going to be faster, especially when deploying to different hardware platforms.
精彩评论