OpenGL 4.0 FP64 能力

OpenGL 4.0 FP64 capability

最近我在做一个需要 FP64 支持的项目。

目前,我正在检查 GPU 是否支持 ARB_gpu_shader_fp64 扩展。然而,最近我在配备 Nvidia gt 540m 的笔记本电脑上测试了这个项目,它确实支持 OpenGL 4.0 ,但它没有宣传上述扩展。

在 OpenGL 4.0 中,ARB_gpu_shader_fp64 变成了 "core extension"。那是什么意思 ?支持 opengl 4.0 的任何 gpu 都支持 fp64 吗?它是否必须为扩展做广告,或者是否暗示它支持此功能?

意思就是它所说的。 ARB_gpu_shader_fp64 正式称为 "backwards compatibility extension"。这意味着它与 4.0 的功能相同,枚举器和函数甚至没有 ARB 后缀。这意味着如果存在扩展 如果版本号 >= 采用它的 OpenGL 版本,则使用这些 enums/functions 始终有效。

这样做的目的是允许硬件公开此无法实现 4.0 其余部分的功能。并且用户可以使用任何一种硬件,而无需对用户代码进行任何代码更改(甚至 enum/function 名称)。他们只需要检查版本和扩展,并在存在时使用该功能。

很可能扩展只是由于驱动程序错误而丢失。我这么说是因为 3 separate reports for your exact hardware 都明确列出了您的硬件支持的扩展。因此,如果您的驱动程序是最新的,则可能只是最近的驱动程序错误。如果他们年纪大了,更新可能会解决它。

或者,检查是否存在此扩展程序的代码可能有问题。