It’s not long until Mobile World Congress and those fortunate enough to be there will finally get the chance to try Flash Player 10.1 running on mobile. To-date we’ve only seen some sneak peek videos released by Adobe showing Flash-enhanced sites running on devices such as the Nexus One, but I want to know how the majority of Flash-based sites will perform, not just a carefully selected few.

It’s clear even from those early videos that Adobe has spent considerable effort optimising Flash Player 10.1 for mobile. Forcing Flash to run on mobile devices without exhausting memory and at the same time keeping performance up must be an incredibly difficult task – after all, to increase performance you tend to have to consume more RAM.

From digging around on the web, here’s what I believe the engineers at Adobe have done to address these issues.

Flash 10.1 will support hardware acceleration. This will include video acceleration where the device’s GPU will be used to decode video leading to better video quality, improved frame rate and less power consumption. It doesn’t end there though; Flash’s traditional vector rendering pipeline will also be supported by the GPU meaning that vectors, bitmaps and animation will all render faster.

A very important question regarding mobile is ‘how will the device handle multiple player instances?’ After all, it’s a frequent occurrence to see multiple SWFs served from a single page and there is a real danger that this could cripple the handset. Adobe’s engineers have spent considerable time and effort addressing this. Traditionally on a web page, every single instance is started. But for mobile, Adobe have written an instance manager that will decide which instances should be started and which should not initially.

To aid instance management there will be a new HTML parameter called hasPriority that will allow the web author to specify the SWFs that are most important to the overall experience. The instance manager will also look for helper SWFs that are typically 1×1 pixels in size and start them up. The manager will also monitor memory usage closely and shutdown instances when the device is close to running out of memory. When shutting down instances, the player begins with those that are off screen or do not have focus.

The good news is that these changes aren’t just restricted to mobile – desktop users will also benefit from many of the changes too, although I believe the GPU vector renderer will initially only appear on mobile. And for those who’ve complained about Flash’s performance and poor stability on Mac, from a tweet by Adobe’s Lee Brimelow it looks like there might be some light at the end of the tunnel regarding that too. Here’s what Lee had to say in his tweet:

We will be putting out more information about the player issues on OS X very soon. Thanks for being patient everyone.

I’m looking forward to Flash Player 10.1, especially for mobile. Now does anybody know if it’ll be making an appearance on my Nokia 5800? Looks like Android is the lead platform.

  1. Flash is a wee bit late to the game of HW video decoding on mobile for some reason. I assume their core engine is a bit unflexible, given the amount of legacy cruft they must have. AS3 probably helped solve a lot of that though.

    I’m not sure how much help the GPU can lend to the rasterisation of vectors. They could certainly offload some mathematical work to it (on certain GPUs), and use it to efficiently blat bitmaps around, but they probably won’t have the luxury of offloading a full path to the GPU for it to render as it may not render it to the specification Flash defines. Unless they are happy with potential inconsistencies in the final render between platforms fo course. That may be a trade off they are willing to make, but they’ve certainly been resistant to that on desktop platforms.

  2. Interesting points. Perhaps Adobe is willing to accept the inconsistencies across devices for the sake of a performance boost. It probably also explains why the GPU vector rendering isn’t initially going to be part of the 10.1 desktop player.

    Christopher (Author)