vlambda博客
学习文章列表

WebGL 怎么又崩溃了


你又调皮了,又发一篇我不感兴趣的文章!



弁言


有一段时间,客户使用我们的三维平台时,总是出现浏览器崩溃,为了查清原因,让客户一直打开 devtool 和 任务管理器监控,然后静静的等待崩溃来临,此时,总会发现一串耀眼的红色提示:webgl content lost!同时伴随着gpu 进程重启...


这个问题,困扰着研发小朋友很长一段时间,那会儿一直给他强调,一定要在客户机器上把独立显卡设置配置正确! 同时也给内网部署文档里面出了一篇如何配置独立显卡的文档。可是,有时候,说是一回事,做又是另一回事。


思路


查看PC的显卡类型


WebGL 怎么又崩溃了


上图图示,就是双显卡,既有独显又有集成显卡。


查看GPU情况:


打开电脑的任务管理器,切换至性能,即可看见 GPU0  和 GPU1,分别对应所属显卡,此时,只需要观察使用情况,就可知晓当前3D配置。


下图是采用独立显卡访问3D应用。


WebGL 怎么又崩溃了


代入


知晓了显卡问题,此时就可以代入到具体的故障分析中,后经多次查验,发现客户的 GT2030 显卡,因驱动未正常安装导致无法识别,所有的应用均采用的集成显卡!这不仅导致了硬件的浪费,也让客户觉得我们的平台不靠谱。所以,很多时候,基础环境一定要确保无误!


电脑不使用独显的原因分析:


  • 驱动未正常安装(硬伤)

  • 显示器未接独显插槽(台式机)

  • 应用程序未指定使用独显(傻了吧唧)


台式机,如果多个屏幕,全部接到独显插槽,那么将自动屏蔽集显,如下图:


WebGL 怎么又崩溃了



针对以上问题,做个简单解决方案,以及故障查询思路:


如果发现电脑配置很好,但是简单的3D应用,都奇卡无比,此时,多半是上述问题。如果是显卡驱动未装,安装即可(官网、驱动人生、驱动精灵),如果是台式机,检查显示器接头,确保插在独立显卡的接口上!最后一步,确保程序采用独显!


延伸


3D显卡配置基本步骤:


早期版本的独立显卡



步骤一:

WebGL 怎么又崩溃了


步骤二:

WebGL 怎么又崩溃了


步骤三:

WebGL 怎么又崩溃了


步骤四:

WebGL 怎么又崩溃了


新版本独立显卡



步骤一:

电脑桌面,空白处右键,选择 NVIDIA 控制面板

WebGL 怎么又崩溃了


步骤二:

点击3D设置中的 通过预览调整图像设置,在右侧界面中选中 使用 “高级3D图像设置”

WebGL 怎么又崩溃了


步骤三:

点击管理3D设置,全局设置中,给 OpenGL 渲染GPU 设置为独立显卡

WebGL 怎么又崩溃了


步骤四:

在程序设置中,给目标程序,如 浏览器,设置指定的 GPU渲染



当然,这些最基本的障碍扫清以后,客户打开你的三维平台,依然卡,依然崩溃,那么,你是不是要考虑优化一下你的3D代码?


比如,增加闲时管理,比如精简模型,比如按需加载,比如纹理图集、纹理压缩,比如多线程,比如......