我怎么知道,更新openGL包括一些由供应商定义的扩展和使用的硬件功能。我有gem 520m(2010年实现),但它支持openGL 4.4(2014年实现)。显然,它不能支持openGL 4.4中需要的一些硬件功能。但是它支持openGL 4.4。旧的视频卡如何支持新的openGL版本?
答案 0 :(得分:2)
为什么您认为它不支持硬件功能?确实如此。 OpenGL是渲染API 规范,而不是HW规范。将新功能添加到GL的事实并不意味着需要新的HW来实现它们。
在nvidia上,自fermi架构以来的所有GPU都支持OpenGL 4.x。这并不能保证它将支持未来GL4.x版本可能引入的所有内容。
目前,GL主要版本可以与一些主要的HW生成相关联。 GL2.x是非常古老的东西。自GeForce 8xxx(2006年发布)以来,GL 3.x得到了nvidia的支持,而fermi / kepler / maxwell支持4.x。
答案 1 :(得分:1)
根据您的说法,自费米架构以来,视频卡的进展已经停止。如果供应商能够更新openGL以添加新功能,他们为什么会实现新的视频卡?我认为这是不真实的。供应商试图找到加速hw级别的视频卡的方法,并添加使用它的功能。或者我不清楚它?那么我的视频卡支持openGL 4.x是什么意思?
不,你倒退了。
你可以说,自费米以来,图形API在硬件功能方面的进展已经停止。每一代新一代GPU通常都会增加新的硬件功能,但每个新版OpenGL所暴露的功能并不一定需要新硬件。实际上,核心GL在 必需的 功能中经常落后于硬件功能一代或更多。
OpenGL仍然缺乏对Direct3D 11中引入的某些功能的支持,同样Direct3D 11.x缺乏对某些OpenGL 4.x功能的支持,并且两种API都没有完全暴露底层硬件。这是因为它们的设计是为了支持尽可能多的硬件,而不是一个特定硬件的所有功能。 AMD解决这个"问题"是为了引入一个全新的API(Mantle),它更接近于基于 Graphics Core Next 的架构的功能集;更多的API设计控制台方法。
新GL版本规范的年度版本可能会引入 可选 ARB扩展,但在将它们提升为核心之前,GL不需要对它们的支持。
在所有属于ARB的供应商的标准化之前,GPU硬件的某些功能在核心GL中无法使用。这就是除了核心版本之外GL还有扩展的原因。 720m GPU将支持520m GPU所没有的许多新扩展,但同时它们都可以实现GL 4.4所需的所有功能。但是,无法保证GL 4.5不会引入一些新的必需功能,即您的520m GPU无法支持或者NV决定支持太麻烦。
供应商有时不打算在旧GPU上编写对功能的支持,即使他们可以在技术上支持它们。编写它可能会成为太多的工作,尤其是在产品线的几个不同版本中维护功能的多个实现。你在所有行业都看到了这种东西,而不仅仅是GPU。有时开源解决方案最终会填补原始供应商认为不值得付出努力的空白,但这可能需要很多年。