Copy link to clipboard
Copied
I’m currently developing an AIR desktop application that will be used in a gallery as an interactive touch screen exhibit, and I’ve encountered a problem with stuttering / oscillating performance that I am currently unable to resolve. I would be grateful if anyone can offer any assistance or advise as to what might be the cause, or where I might look for more information in resolving this issue.
The application allows people to browse through a series of menus and options, and explore, photos, videos and text information. It’s designed at full HD resolution, and uses StageVideo to display a looping video clip as the background of the interface. Some of the menus are presented as carousels that can be rotated in either direction, and the items within the carousel can be selected to display further screens of information. Animation of the carousels and other parts of the interface is done using Greensocks TweenMax, which I’ve successfully used before without problem. When I run the application on the specific computer on which it will be installed, the performance of the carousel rotation and other animated items seems to stutter, or oscillate. The animation doesn’t appear to constantly perform slowly, it’s more that the animation speed seems to alternate between slow, normal, slow, normal, etc, several times a second, giving the impression of a jerky performance. The application framerate is 50fps. I’ve tried reducing it to 30fps, but the performance issue still occurs.
When the application runs it first displays a screensaver. Interrupting the screensaver then displays a carousel menu with 4 options. When rotating the carousel, and the performance problem occurs, Windows task manager says the application is only using around 70MB memory, and CPU usage is minimal.
I’ve run the application on 4 very differently spec’d computers, with differing results. Computer specs as follows:
Computer 1 – My development computer
Computer 2 – My laptop
Computer 3 – My other computer
Computer 4 – Intended installation computer for the application
Computer #1 - The application runs as intended. I have had no problems with the stuttering performance. I’ve run the application on this computer when overclocked at 4.5GHz, and also with the overclocking switched off (running at normal 3.2GHz). The application works fine in both cases.
Computer #2 – The performance varies here. Some of the time the application runs as intended, without any sign of the stuttering performance. However, on some occasions when the application is run, the performance of the animations will stutter. I cannot determine the reason for the variation.
Computer #3 - The application runs as intended, but at a slightly lower framerate, most likely due to the lower spec of this older computer. I have had no problems with the stuttering performance.
Computer #4 – The application has never run as intended. Every time it runs, the performance stutters on this computer.
Flash CC Publish Settings
I’ve started to use Adobe Scout to investigate the problem, and have read through the following article.
http://www.adobe.com/devnet/scout/articles/understanding-flashplayer-with-scout.html
‘Waiting for GPU’ seems to be an issue, from what I can determine in Scout. The above article says…
“Here's a great tip: If your content shows excessive Waiting for GPU time in Scout, try temporarily disabling hardware acceleration in Flash Player (right-click and select Settings). This will cause Flash Player to fall back to software rendering, and the waiting time will vanish, so you can confirm that your problem is GPU-related.”
… I followed the advice above, and the oscillating performance issue was gone on the intended installation computer, but the screen redrawing performance was really bad (due to the CPU rendering the app). I believe this confirms my issue is related to using the GPU. However, upgrading the intended installation computer from it’s onboard Intel card to an Nvidia GTX650 has made no difference.
One option might be to replace the installation computer with a specification that is identical to my developer computer (#1), but I don’t think my client will have the budget for this.
Googling the problem hasn’t provided much help so far, but I’ve seen a few other people mention ‘waiting for GPU’ and ‘synchronization between CPU and GPU’?
Can anyone provide any clues, or a way forward to help me resolve this?
Many thanks
Simon
Copy link to clipboard
Copied
1.Make sure you understand the big differences between video and stagevideo, its tempting to think that stagevideo is the better videosoultion in any case, but its not.
The best Article (however a little outdated) on the subject is imo: http://www.adobe.com/devnet/flashplayer/articles/stage_video.html
2.In a performance heavy environment the combination stageVideo+greensock might not be the optimal solution, if you have time to reprogram Starling/feathers will probably give you a much better performing combination:
http://forum.starling-framework.org/topic/stagevideo-with-starling-example
3.I don`t know how you encode your Backgroundvideo, there are literally dozens of viable codecs that should differ extremly in how they stress the gpu/cpu. Maybe you have to experiment with a lower than HD resoultion and see if scaling up the background is a good compromise.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now