Webplayer fullscreen (30-35 fps) VS Standalone (85 fps)

Hi guys, really strange situation.

We have a scene

https://vimeo.com/110192961

we have in webplayer fullscreen (chrome, ie, ff) 30 fps - no fps browser cap, vsync off, it’s fullscreen (not windowed)
standalone fullscreen 85 fps
why?
we see this only on laptops , on powerful desktop computers no difference between webplayer and standalone

Can someone from Unity engineers answer me? Thanx a lot

bump

(You do know it’s the weekend, right?)

oh sorry) yeap

thnx for the help

bump

really sorry for bump, but i’m still hope someone from Unity team, will find couple minutes to give feedback. Just to understand is this (low fps) problem of our project or this is browser/webplayer limitation/problem?

(Have poked devs)

1 Like

Hi Freeger. This is a complicated issue, but, the short answer is that your particular application is bumping up against a limitation imposed by the browsers’ plugin architecture.

Even in fullscreen mode, the Webplayer relies on the browser to pump messages to the Unity engine. Unity requests that the browser update the Webplayer at least once per 15 ms in order to attempt to deliver 60fps, and the browser then regularly calls a callback. Unity uses the callback to perform one frame’s worth of work.

In fullscreen mode, Unity only has full control over the graphics device. It must still rely on the browser’s timed callbacks to render frames and tick update loops, and it must rely on the browser’s message pump to deliver events, such as mouse/keyboard input.

As load on a machine increases, we’ve found that the browser’s callback rate slows down faster than one would expect. Whether this is intentional or not, I’m not sure. I suspect the browsers are trying to prevent misbehaving plugins from monopolizing all of a machine’s resources, but it may also be a limitation of the NPAPI update system.

Standalone platforms have complete control over their own execution rate, and so they run the message pump as fast as possible. They can extract every last millisecond of performance from the hardware without interference.

Ian thanx a lot for such full answer.