Using Chrome 12 my game is drawing smoothly. But Chrome 14, which appears to use the GPU for drawing, has an enormous negative impact on the performance of my game.
I made a jsFiddle to see when exactly it happens and this simple code is already running into problems: http://jsfiddle.net/eGjak/48/.
- On Chrome 12, the FPS is 62, which is even mor开发者_JS百科e than my screen frequency.
- On Chrome 14, the FPS is ~25.
25 FPS is quite acceptable, but in my game I'm drawing even more and it is running down to ~8 FPS there, which definitely is not acceptable. I've never had any performance problems but the GPU update for canvas is a bottleneck for me.
- Why is some simple drawing on canvas so much slower using the GPU?
- Can I disable Chrome from using the GPU through JavaScript? (Or is there another solution for this?)
Edit: Filed a bug at http://code.google.com/p/chromium/issues/detail?id=89540
I'm getting 60fps in Chrome 14 just fine.
I can almost guarantee this is due to hardware acceleration being on by default in Chrome 14 and not in 12. Specifically the waiting for vertical sync, which didn't happen before.
In Chrome 14 and beyond GPU accel (of Canvas) is no longer a flag you can turn on and off - it is a default. Sorry.
You can however still disable GPU Vsync in Chrome 14 if you go to chrome://flags/
. This will almost certainly give you more frames.
However it is not something you can make your users do.
I just installed Chromium 14.0.831.0 build 93677
(as opposed to 14.0.917.0 build 91952
) and things were fine again. It's now just under 60 FPS instead of ~62, but oh well...
I guess the main point is that things come and go too fast with nightly builds. My game is running fine again (and since today the latest nightly build uses the new WebSocket protocol which is a great as well).
I hope I'm not getting too fired up of this as it might just slow down next week again, but I'll see.
精彩评论