Ubuntu 14.04 Nvidia 331.38 Chrome 渲染存在错误

Ubuntu 14.04 Nvidia 331.38 Chrome 渲染存在错误

Ubuntu 14.04 x64
Chrome 35.0.1916.114
使用 NVIDIA 二进制驱动程序 331.38(也尝试了 X.Org X Server Nouveau)
两个显示器

在 Unity 和 Gnome 中,Chrome 都会显示灰色矩形,滚动时有时会留下一些未更新的矩形区域,或者不会删除旧矩形,但会写入新文本,就好像它是旧文本上方的新层一样。Firefox 和 Chromium 没有显示此错误。

截图: 存在缺陷的 Chrome 渲染

已尝试:
更改 chrome 中的硬件加速,使用 Nvidia 或 x.org 驱动程序 - 所有可能的四种组合,包括在设置更改之间进行冷重启。

想法已验证:
关闭 Chrome 中的所有扩展。此后,chrome 在启动时开始崩溃。
使用 dpkg 卸载 google-chrome-stable,删除 ~/.cache/google-chrome 和 ~/.config/google-chrome(仅备份 SessionBuddy 数据库)
将 google 的 repo 添加到 repo 列表中,并从中安装。
全新安装后,仍然有渲染错误。
因此我启用了 SessionBuddy 和 FlashControl 扩展,因为没有证据表明它们会影响此行为。
检查是否有 ulimit - 它显示“无限制”。

出现错误的可能性会随着标签数量的增加而增加。有些标签完全变灰,我只能刷新或关闭它们。

另外,我发现 chrome 标志设置中有很多用于渲染/gpu/硬件加速的标志。还没有尝试使用它们。

每个应用程序/进程可能存在 GPU 内存限制?或者,也许还有其他选择?

更新:第二天这个错误消失了,但今天又出现了。似乎当我有超过 13 个窗口并且总共有超过 100 个选项卡时,就会出现这个错误。似乎它达到了一些内存/gpumem 限制,问题就出现了。当我关闭一些选项卡并合并一些窗口时,F5 刷新后错误就会消失。我关闭并合并了窗口,总共有 79 个选项卡和 7 个窗口,错误就消失了。有什么想法吗?

答案1

似乎是 ulimit -n 阻止了 Chrome 创建新的 shmem 文件。

临时解决方案

(所有命令都应在一个终端内运行)

ulimit -Sn 4096
ulimit -Hn 4096
google-chrome

永久修复

(需要重启)

步骤1:

sudo -H gedit /etc/security/limits.conf

添加行(或检查要编辑哪些行)

* soft nofile 8192
* hard nofile 65536
root soft nofile 8192
root hard nofile 65536

(似乎通配符对 root 用户没有影响,因此如果需要,应该明确注明 root 用户)

第二步:

sudo -H gedit /etc/pam.d/common-session

添加行

session required pam_limits.so

第三步:

重启机器

答案2

看起来这是一个错误。请参阅https://code.google.com/p/chromium/issues/detail?id=136054

禁用 GPU 支持似乎可以暂时解决这个问题:

google-chrome --disable-gpu

相关内容