所以我一直在使用HTML5画布上的游戏,并注意到当谷歌Chrome中的硬件加速打开然后关闭时,游戏会滞后并执行得慢得多。您可以亲自尝试here
通过做一些分析,我发现问题出在drawImage
。
更具体地说,将一个画布画到另一个我做了很多这个。
硬件加速。
硬件加速关闭。
我有一个基本的东西,一个画布到另一个吗?为什么差异会那么深刻?
答案 0 :(得分:1)
如果我没记错的话,将in-DOM画布加载到Chrome中的GPU内存中,并且可能不会使用非DOM画布。因此,从屏幕外画布到屏幕画布的每个drawImage都会将画布的内容作为纹理加载到GPU上,然后将GPU上的内存副本加载到屏幕画布上。将新纹理发送到GPU的成本可能非常高。在大多数GPU上加载纹理是高吞吐量的,但也是高延迟的。
Chrome团队中的某个人必须回答明确的答案,但这符合我在Chrome中使用画布的经验。