修复了Nvidia和AMD的GLSL着色器

Gig*_*igo 2 opengl shader nvidia glsl

我无法让我的GLSL着色器在AMD和Nvidia硬件上运行.

我不是在寻找修复特定着色器的帮助,而是如何避免出现这些问题.是否可以检查着色器是否可以在AMD/Nvidia驱动程序上编译,而无需在具有相应硬件的机器上运行该应用程序并实际尝试它?

我知道,最后,测试是唯一可以肯定的方法,但在开发过程中我想至少避免明显的问题.

每个使用GLSL的人都必须遇到这些问题,为什么我找不到一个好方法来修复它们呢?

Nic*_*las 5

是否可以检查着色器是否可以在AMD/Nvidia驱动程序上编译,而无需在具有相应硬件的机器上运行该应用程序并实际尝试它?

不.如果您要认真开发应用程序,那么在各种硬件上进行测试是唯一可行的方法.如果你不认真,那么谁在乎呢.

一般来说,为小团队处理此问题的最简单方法是完全避免这个问题.大多数驱动程序不兼容来自于尝试做一些非正统的事情:将数组作为输出/输入变量变量,将矩阵作为属性传递,使用更新的驱动程序功能等等.所以......不要这样做.只使用GLSL中的固体,安全的东西,几乎可以肯定在真实的OpenGL应用程序中使用.