Chrome 画布渲染速度错误?

Posted

技术标签:

【中文标题】Chrome 画布渲染速度错误?【英文标题】:Chrome canvas rendering speed bug? 【发布时间】:2013-06-24 12:01:50 【问题描述】:

好的,所以我突然遇到了一个我正在开发的游戏的奇怪问题,我只是想知道是否有人以前见过这样的东西:

当我的窗口大小低于 ~600,000 像素时,它运行非常流畅。这是在989x610px 拍摄的个人资料:

当我的窗口尺寸稍微大一点时,它会减慢到停止,使用 99% 的 CPU 并以大约 7fps 的速度运行。这是在990x610px(宽 1 像素)拍摄的:

990 在任何地方都没有硬编码,因为它减速的确切宽度取决于高度,它更像是“总像素”。

无论如何,我只是想知道是否有人以前见过这个,如果这是一个已知问题,或者我是否应该向 chrome 团队提交错误报告。

【问题讨论】:

也许您的 GPU 具有最大纹理尺寸?见chromium.org/developers/design-documents/… @WulfSolter - 有可能是这样,但我不明白为什么会导致 >200 倍的减速? 不,您看到的变化非常剧烈。过去我在 HLSL 图形着色器上遇到过类似幅度的性能变化,但 webkit 似乎非常灵活。当您打破 1024, 2048, 4096 ^2 纹理大小时,会有几堵墙,但没有像您看到的那样极端。在其他硬件上可复制结果? 【参考方案1】:

您的窗口什么时候是那个大小,或者你的canvas什么时候是那个大小?

无论哪种方式,我都猜测它只是一个 Chrome 错误,您应该提交错误报告。您还应该测试它是否可以在 Chrome Canary 上运行。

过去也有类似的错误,例如 android 版 Chrome 中仍未修复的错误,其中画布在 64k 总像素以上和以下具有不同的功能(请参阅错误 here 和 here)

【讨论】:

以上是关于Chrome 画布渲染速度错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复此错误在多个渲染()操作期间无法使用相同的画布

Chrome渲染管道的性能改进

使用 Chrome DevTools 对 HTML5 图形进行渲染测量

使用原始 UInt16Array 值 javascript 渲染到画布

Chrome渲染层 - 创建条件?

画布绘制图像质量