我们是一个小型开发团队,使用一些 GLSL,这些 GLSL 可能对于旧图形卡来说太大而无法编译。当发生这种情况时,我们希望根据错误类型向用户显示一条合理的错误消息(而不是仅仅转储信息日志或输出一般的“此着色器不工作”类型的消息)。
问题是,ATI 和 nVidia 对这些错误消息有不同的约定,我发现确定着色器有什么类型的错误的唯一方法是解析 glGetShaderInfoLog 生成的错误字符串。
鉴于此,某处是否有列表,或者有人知道 ATI 和 nVidia 卡的错误输出是什么样的吗?或者是否有更好的方法来检测何时超出指令限制?
最佳答案
即使您现在知道错误消息是什么样子,nVidia 和 ATI 也没有义务在其驱动程序的下一版本中保持它们相同。除了调试目的,它们基本上不能用于任何事情。
我会查看供应商扩展是否能够为您提供更具体的诊断信息。
关于c++ - 打破 GLSL 着色器指令限制的错误消息是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272120/