chrome hardware acceleration issue

在用Chrome 打开 高德地图 时发现地图底图无法正常加载 无法加载底图 换用 Firefox 能正常显示.

解决问题

起初怀疑是 Chrome 配置或者缓存出现问题, 于是删除配置和用缓存

$ rm -rf ~/.config/google-chrome ~/.cache/google-chrome

打开 高德地图, 底图正常加载, 本以为问题就这么轻松搞定, 当关闭浏览器, 再次打开 高德地图, 同样的问题出现.

多次测试发现, 只要删除配置文件下的 Local State文件, 首次打开高德地图底图就能正常加载, 再次打开底图又不能加载

$ rm ~/.config/google-chrome/Local\ State

网上看到在Ubuntu下开启Chrome的WebGL功能, 怀疑会不会是 Chrome 硬件加速引起的问题,

  1. 打开 chrome://settings
  2. 显示高级选项
  3. 取消 Use hardware acceleration when available
  4. restart Chrome

现在打开 高德地图 底图正常加载

原因分析

Chrome 默认没有开启 WebGL 硬件加速, 高德地图 的底图使用 canvas 加载, 启用了硬件加速用于加速图片渲染加载.

于是开启 Chrome 硬件加速

  1. 打开 chrome://flags
  2. Enable Override software rendering list
  3. chrome://settings 勾选 Use hardware acceleration when available
  4. RELAUNCH Chrome

结果令人失望地发现 高德地图 的地图加载效果还没关闭硬件加速时的效果好, 卡顿十分明显(可能原因是Debian显卡驱动没有配置好), 乖乖的还原 chrome://flags 配置, 并取消 Use hardware acceleration when available.