Failed to execute 'shaderSource' on 'WebGLRenderingContext'

我们项目也遇到这个问题了,不是100%报错,但是报错日志这种信息还不少,都是线上发生的,本地未发生过,求大神答疑解惑!!!

GPU 崩溃导致的。

根据 https://www.khronos.org/webgl/wiki/HandlingContextLost

这个问题引擎不太容易处理,建议你们在网页里加个监听,出错后刷新网页。

4赞

MARK

2.4.3 经常会崩溃
我写完代码 切换到 引擎软件后, 引擎软件的 控制台 里 就会 不停的显示

TypeError: Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’.
at _createShader (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\gfx\program.js:203:6)
at Program.link (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\gfx\program.js:94:22)
at ProgramLib.getProgram (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\program-lib.js:275:26)
at ForwardRenderer._draw (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\base-renderer.js:344:32)
at ForwardRenderer._drawItems (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:309:14)
at ForwardRenderer._opaqueStage (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:342:10)
at ForwardRenderer._render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\base-renderer.js:236:7)
at ForwardRenderer.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:126:12)
at Function.RenderFlow.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\core\renderer\render-flow.js:286:12)
at Object.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\core\renderer\index.js:209:18)

1赞

兄弟解决了么

没有…

我这经常崩溃的项目 是个 使用了 jpg 图片的, 项目 每次打开以后 creator 内存占用 4个多G
而且这个项目 曾经 从2.43 降级 2.3x 又升级 2.43
不知道和以上问题有无关联…总之 我感觉是内存占用太多 导致的崩溃

我的其他项目 基本正常…

我用的win10 笔记本不知道是不是 有关

这个不是解决方案啊,
我用的2.4.3,也是经常出现这个报错,然后就要重启creator,体验非常差.
每次打开creator都占用4个G内存,然后编辑一会代码或者调试,就占有8个GQQ图片20201222115450 内存甚至更高.

用的intel核显吗?

我也是,每次这样只能重启

你好,目前没有方法解决这个问题。这是 webGL 自身的安全措施,当它认为 GPU 占用过高的时候,就会关闭一个或者更多的 webGL 网页。

一般不仅有这个报错,还会有这个警告:

"WARNING: Too many active WebGL contexts. Oldest context will be lost."

https://www.khronos.org/webgl/wiki/HandlingContextLost 文中的方式我也已经尝试,均不能报错解决问题。
如果使用网页刷新或者 restartContext 的方式,让网页重新获得有效的 webGL 绘图上下文,那么 webGL 也会让其它 webGL 网页的上下文关闭

:sob:不知道为啥GPU会占用过高 一打开项目GPU就从很低很低突然到100%了 :disappointed_relieved:

查了查猜测可能是图片分辨率太大了 目前缩小了之后没报错

我 这两天也遇到这个问题了,换了引擎版本一样,感觉是电脑问题,但是我电脑之前用哪个版本引擎都没问题,不知道您是怎么解决的?我现在只能重启

几年过去了,还是这样子哦,能有什么办法,重启了

我们正在大力推动场景原生化,可以彻底抛弃 WebGL

2.x能用上吗

抱歉不能。

这个问题经常遇到过,尤其是项目大的时候,目前还没解决。

可以试试 3.x,很少遇到了

这问题还有人有其他方案吗,进去就白屏,然后还有声音能交互。 :sneezing_face: