Skip to main content
sinious
Legend
November 6, 2012
Question

StageVideo on device = permanent performance loss.

  • November 6, 2012
  • 1 reply
  • 924 views

I see from some searching around if StageVideo is ever invoked it cannot be disposed and steals resources from Stage3D. It also causes other display artifacts. Has anyone found a way to dispose of StageVideo yet?

I've opened a bug here with a quick and dirty example Flash Builder project that plays a video using StageVideo, then attempts to use Starling (and FeathersUI) to display a RSS feed. Starling is used on the left in the Feathers UI List control. StageWebView is used on the right to display the description of the RSS item just to show it's functioning.

There is a blue button on the bottom right that fades an image above the List, where you would expect it to simulate the list fading out (to gray). However after running StageVideo the list merely blinks on and off. This only ever happens if StageVideo is used. If the lines invoking StageVideo are commented out and the Blog is loaded without it, the fade works perfectly fine. This illustrates a display pipeline issue.

Bug report:

https://bugbase.adobe.com/index.cfm?event=bug&id=3360651

Starling users complaining about StageVideo interfering and being undisposable, causing performance loss:

http://forum.starling-framework.org/tags/stagevideo

This topic has been closed for replies.

1 reply

sinious
siniousAuthor
Legend
November 7, 2012

I'm updating this to mention in many discussions over Starling I learned Adobe combines Stage3D, StageVideo and the flash display list in a single pass. They aren't handled separately. That means they affect each other when one doesn't perform well. I haven't had any Adobe confirmation on this but it was mentioned. This clarified something for me.

I used to use StageVideo to show a brief intro animation in an iPad app. I have had terrible issues (mentioned above) conflicting with Stage3D and erratic behavior. It turned out that StageVideo was the culprit.

What I wasn't immediately aware of is my entire app was taking a permanent performance hit from StageVideo. After I play my intro video and until I exit my app, StageVideo is slowing down the render performance in a significant and noticable way. I'm totally amazed I was unaware of this and I imagine many others out there will be as well.

Again, even if you merely check for the availability of StageVideo or use anything to do with the library, your app will then suffer a permanent performance loss. This has nothing to do with if you're playing a video or not, the performance loss is present the entire time.

I removed StageVideo completely from my iPad project and the performance is much, much better. Anyone else using StageVideo should consider removing it from their project just to do a test of performance on an iOS device. See if suddenly you receive the same performance bump.

Adobe needs to update StageVideo to allow us to properly dispose it to return device resources and get out of the render passes.

I encourage anyone else that finds this to be true to vote up the bug report so we can get this huge bug squashed. Here's that link again:

https://bugbase.adobe.com/index.cfm?event=bug&id=3360651