支持现代硬件中的 Cg 配置文件
Support for Cg profiles in modern hardware
我有一个内部应用程序,它使用现已弃用的 nvidia scenix 和 Cg 着色器。它工作正常,因为它是内部的,我们可以选择要运行它的硬件。
着色器目前正在使用 vp40/fp40 配置文件(尽管我可以将其更改为使用以后的配置文件,例如 GLSLV/GLSLF)。我想确认当前的 nvidia 硬件是否仍然支持 Cg 着色器?也就是说,如果我们购买最新的 OpenGL4 geforce 或 quadro 卡,它们是否仍支持 Cg 配置文件?我在 nvidia 论坛上问过,但没有答案。最终我们将不得不升级到新的场景图和 GLSL,但我想知道 'legacy' 对 Cg 着色器的支持。
谢谢
是的,你很好。事实上,NVidia 驱动程序中的 GLSL 实现实际上是 Cg 编译器的附加组件。即使在最新一代的 GPU 上,NVidia 驱动程序也会在内部首先将 GLSL 翻译成 NV/ARB_programm_… 汇编(实际上是源代码)并通过汇编器运行它。 NVidia 不太可能在不久的将来改变这一点(尽管 SPIR-V 的引入可能会迫使他们采取行动)。所有旧版 OpenGL ARB/NV_program 接口都作为扩展得到很好的支持(甚至支持 OpenGL-4 核心配置文件)。
我有一个内部应用程序,它使用现已弃用的 nvidia scenix 和 Cg 着色器。它工作正常,因为它是内部的,我们可以选择要运行它的硬件。
着色器目前正在使用 vp40/fp40 配置文件(尽管我可以将其更改为使用以后的配置文件,例如 GLSLV/GLSLF)。我想确认当前的 nvidia 硬件是否仍然支持 Cg 着色器?也就是说,如果我们购买最新的 OpenGL4 geforce 或 quadro 卡,它们是否仍支持 Cg 配置文件?我在 nvidia 论坛上问过,但没有答案。最终我们将不得不升级到新的场景图和 GLSL,但我想知道 'legacy' 对 Cg 着色器的支持。
谢谢
是的,你很好。事实上,NVidia 驱动程序中的 GLSL 实现实际上是 Cg 编译器的附加组件。即使在最新一代的 GPU 上,NVidia 驱动程序也会在内部首先将 GLSL 翻译成 NV/ARB_programm_… 汇编(实际上是源代码)并通过汇编器运行它。 NVidia 不太可能在不久的将来改变这一点(尽管 SPIR-V 的引入可能会迫使他们采取行动)。所有旧版 OpenGL ARB/NV_program 接口都作为扩展得到很好的支持(甚至支持 OpenGL-4 核心配置文件)。