从我所知的这条消息中,它会在驱动程序遇到错误时出现。暗示似乎是JavaScript代码即使出现某种错误也无法触发此警告,因为更高级别的错误检查。
但是我的代码最近触发了它,只是一次而且我无法重现它(而且代码 - 至少在理论上 - 每次都向WebGL发送完全相同的命令)。所以我只是想知道我是否应该调试我的代码(我看不到任何明显的错误),或者我是否应该将其归结为硬件随机/浏览器错误。
我可以根据要求发布半缩减代码,但它仍然大约有半千行,我当然不希望人们为我调试它,因此更普遍的是它可能的问题。
答案 0 :(得分:1)
我正在通过“触发器”解决你的问题意味着什么。当发生此错误时,javascript始终位于因果链中,因为WebGL不会在没有javascript执行的情况下运行,对吧?所以当然可能会意外触发错误(除非你总是故意触发它,我确信不是这样)。
然而,图形驱动程序因受许多不受程序员控制或程序员无法检测到的因素影响而臭名昭着,因此看起来不确定。这就是为什么Google建议您在发生错误时尝试重新加载页面。 (这里有他们指导的链接,但他们移动或删除了页面。)我经常让Chrome在重新加载页面后成功显示一些WebGL,当前一次尝试以“阻碍”错误结束时。 (而且我知道你知道这一点。)
有些时候,WebGL代码(如http://shadertoy.com/上的各种着色器)在某些机器而不是其他机器上运行正常,并且在同一台机器上工作一分钟而不是下一分钟。因此,这表明“阻碍”错误并不一定意味着您的代码有问题。
但是,像How to write portable WebGL这样的文章可以帮助您最大限度地减少代码中的风险做法,并减少这些错误的发生频率。