Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Performance hit when drawing on canvas using GPU

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 more 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

like image 436
pimvdb Avatar asked Dec 21 '25 05:12

pimvdb


1 Answers

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.

like image 195
Simon Sarris Avatar answered Dec 23 '25 19:12

Simon Sarris