是在GPU还是CPU上编译OpenGL着色器? GPU制造商如何改变二进制输出?

时间:2011-08-27 02:44:07

标签: opengl compilation shader

首先;如何编译OpenGL着色器?它们是在CPU或GPU上编译的,还是因实现而有所不同?不同的供应商有不同的二进制输出;如果是这样,是否有可能在另一个GPU上交叉编译一个GPU类型的二进制文件?我正在开发一款我计划在英特尔GFX芯片,ATI卡和NVidia卡上运行的游戏。我宁愿只发送着色器的二进制部分,而不必在客户端计算机上编译源代码。这可能吗?着色器编译过程如何工作?

1 个答案:

答案 0 :(得分:12)

一般来说,编译过程是在CPU上执行的。但是,输出的不同之处不仅在于供应商,还在于模型。因此,必须在用户的机器上重新编译着色器,以便与用户可能正在使用的任何GPU型号保持兼容(包括在您编写游戏时可能不存在的GPU模型!)