gpt4 book ai didi

opengl - "Emulate"最低 OpenGL 规范?

转载 作者:行者123 更新时间:2023-12-01 14:37:32 30 4
gpt4 key购买 nike

我们正在使用 OpenGL 4.3。但是,我们担心我们使用的功能适用于我们的显卡,但不符合 OpenGL 4.3 的“最低”要求规范。

是否有可能模拟最低限度的行为?例如,让显卡拒绝任何非标准纹理格式等? (也可能在软件中,速度对于测试兼容性无关紧要...)

更新

在最好的情况下,所有方面的最小设置都是完美的,因此可以保证应用程序可以在所有支持 OpenGL 4.3 的显卡上运行。所以这个仿真模式应该:

  • 拒绝 4.3 中弃用的所有功能/扩展
  • 拒绝所有高于 4.3 的功能/扩展
  • 只支持必需的格式,不支持可选格式(例如纹理和渲染缓冲区)
  • 只支持最低要求的计算精度
  • 具有可通过 GetInteger 查询的受支持限制的最小值(例如 MAX_TEXTURE_IMAGE_UNITS 为 16)

最佳答案

有一个reference GLSL compiler这将解决这个问题的一半。但是,至于其他……AMD、NV 和英特尔都有自己的合规性问题和政策,关于他们相信遵守规范的松散程度。

我已经看到这些供应商中的每一个都隐式地启用了他们不应该拥有的 OpenGL 版本的扩展(编译器日志中没有警告),而这只是 GLSL 方面的事情。 Mesa 很可能可以充当功能测试的最大公因数,但对于比 4.3 早得多的 OpenGL 版本。 Mesa 实际上是一个极简主义的实现,通常比大型硬件供应商落后几年。

最好是 GL 的 debug output扩展是 GL 4.3 中的核心功能,如果您使用请求的上下文版本不支持的功能,它会发出 API 警告。但是,每个供应商对此有不同程度的支持; AMD 通常是最好的。 NVIDIA 甚至可能要求您启用 "OpenGL Expert" mode在它吐出任何真正有用的信息之前。


如果所有其他方法都失败了,则有一个 XML file由 Khronos 发布,您可以解析以找出哪个版本和/或扩展提供了任何 OpenGL 常量、函数或枚举。我用半天的时间写了一个简单的项目来做到这一点:https://github.com/Andon13/glvs .您可以根据该原则自己编写某种验证程序。

关于opengl - "Emulate"最低 OpenGL 规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151202/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com