使用GPU在画布上绘制时性能受到影响

时间:2011-07-15 18:25:06

标签: javascript google-chrome gpu html5-canvas

使用Chrome 12,我的游戏顺利进行。但Chrome 14似乎使用GPU进行绘图,对我的游戏性能产生了巨大的负面影响。

我做了一个jsFiddle,看看它到底发生了什么,这个简单的代码已经遇到了问题:http://jsfiddle.net/eGjak/48/

  • 在Chrome 12上,FPS为62,甚至超过了我的屏幕频率。
  • 在Chrome 14上,FPS为~25。

25 FPS是完全可以接受的,但是在我的游戏中我画得更多并且它在那里跑到了~8 FPS,这肯定是可以接受。我从来没有遇到任何性能问题但是画布的GPU更新对我来说是个瓶颈。

  • 使用GPU时,为什么画布上的一些简单绘图会慢得多?
  • 我可以禁止Chrome通过JavaScript使用GPU吗? (或者还有其他解决方案吗?)

修改:在http://code.google.com/p/chromium/issues/detail?id=89540

提交了一个错误

2 个答案:

答案 0 :(得分:2)

我在Chrome 14中获得60fps就好了。

我几乎可以保证这是由于硬件加速在默认情况下在Chrome 14中打开而不在12中。特别是等待垂直同步,这在以前没有发生过。

在Chrome 14及更高版本中,GPU(Canvas)不再是一个可以打开和关闭的标志 - 这是默认设置。遗憾。

如果您转到chrome://flags/,您仍然可以在Chrome 14中禁用GPU Vsync。这几乎肯定会给你更多的框架。

但是,这不是你可以让用户做的事情。

答案 1 :(得分:0)

我刚刚安装了Chromium 14.0.831.0 build 93677(而不是14.0.917.0 build 91952),事情又恢复了。它现在只是 60 FPS而不是〜62,但是很好......

我想主要的一点是,夜间构建的事情来得太快。我的游戏再次正常运行(从今天起,最新的夜间版本使用了新的WebSocket协议,这也很棒。)

我希望我不会对此感到太过激动,因为它可能会在下周再次减速,但我会看到。