当我在我的机器上开发着色器代码时,我经常发现自己处于着色器在我的机器上完美运行的情况,但在其他图形卡,驱动程序,操作系统等上却没有。
如何实现着色器的兼容性?
我看到了几个方法:
在许多不同的系统上进行测试。但是选择哪种系统?使用每个操作系统和每个驱动程序上的每张卡进行测试是不现实也许我们可以假设供应商关心向后兼容性?在这种情况下,使用旧卡和驱动程序进行测试可能就足够了。
向驱动程序询问特定版本和核心配置文件。这有点帮助,但驱动程序似乎非常宽松,允许我编写不符合规范的内容。
代码检查程序检查代码是否与某个规范严格兼容。没有看到这样的工具。
请勿打扰并等待来自用户的错误报告。但是,驱动程序生成的错误消息相当差,并且观察到的行为可能与黑屏一样缺乏洞察力。
我的目标是Win / Linux / OSX平台。不是游戏机。
答案 0 :(得分:1)
Khronos发布了OpenGL / OpenGL ES Reference Compiler,可用于验证着色器的源代码。来自网站:
参考编译器的主要目的是识别着色器 可移植性问题。