显卡 DirectX 版本升级了吗?

显卡 DirectX 版本升级了吗?

在购买或查看显卡规格时,您会看到它支持的 DirectX 版本(在我的具体情况下,显卡支持 10)。我想知道的是,当 Microsoft 发布其新版本 11 时,什么会阻止此显卡以 DX11 标准运行?

我认为这是显卡本身固件的问题,难道不能将其刷新以支持最新版本吗?或者这款 DX10 显卡是否支持并能很好地运行 DX11,只是因为 DX11 尚未推出,所以 Nvidia 无法将其标记为 DX11?

任何人对此有好的见解,请告诉我!

编辑:好吧,如果你反对这个帖子或投票关闭它……你能解释一下为什么你认为这是一个“愚蠢的问题”吗?我真的很好奇 DX 版本之间有什么区别,需要彻底更换硬件。GPU 指令集是相同的,硬件上唯一的区别是较新的硬件具有更快的 VRAM、更多的流处理器等。那么为什么 DX10 卡不能升级以支持 DX11?给我一个理由。

答案1

DirectX 10 卡无法升级到 DirectX 11 的原因很可能与 DirectX 11 要求某些特定功能有关,例如数学运算的特定精度级别,将这种功能移植到不是为其设计的硬件上会比较困难而且有点烦人。

这与特定 CPU 不支持较新 CPU 引入的新功能相同,当然可以模拟新功能(并且运行速度可能不会比本机实现慢太多),但 CPU 本身仍然不会真正支持所需的功能。类似的想法可能是在非 SSE 处理器上模拟 SSE 指令的可能性,当然你可以这样做,但这会带来很多混乱,并且会比完整的硬件实现慢得多。

您也许可以使用定制软件,让 DirectX 10 卡看起来和 DirectX 11 卡一样好,并且几乎所有操作都以类似的方式进行,但 DirectX 11 所要求的所有原生功能或额外精度都会缺失,而且总体而言,我认为软件/模拟层会比全硬件方法慢得多。

答案2

DirectX 10 之后(包括 DirectX 10),微软决定彻底废除“兼容性位”这一概念,只在显卡中设置最低 DirectX 级别。如果您的显卡兼容 DX11,则支持所有 DX11 功能。这让开发人员的工作更加轻松(在使用功能之前无需检查其是否可用),并确保了更一致的体验。

从概念角度来看,任何查看此主题的人会建议从 DX10 过渡到 DX11 需要进行哪些硬件修改?GPU 和流处理器都具有相同或非常相似的指令集。

事实上,情况并非如此。再次提醒大家,请注意我上面所说的——对于一张卡片来说硬件兼容 DX11,它必须支持所有 DX11 功能. 过去,DirectX 版本之间的变化改变了 GPU 硬件本身的各个方面,包括管道架构、着色器模型(和支持的语言/着色器)、浮点精度和指令集扩展。

尽管并非全部从 DX10 到 DX11 的过渡已经发生了变化,在硬件和软件方面都实现了一些附加功能(大多数这些变化都是闭源的,所以我无法对具体的变化发表评论)。

话虽如此,你使用 DirectX 9/10 硬件运行 DirectX 11 软件,尽管没有 DirectX 11 的附加功能(即曲面细分、多线程渲染和计算着色器),并且假设开发人员已正确实施该应用程序。我不认为这曾经这是一个问题,因为它实际上不需要花费任何成本来实现——这就是我之前提到“兼容性位”的原因。

如果您想在最新和最好的 DX 级别中添加新功能,您可以查询硬件以查看它是否支持最新的 DX 级别。如果支持,则启用它们,否则返回到下一个 DX 级别(而不是检查特定硬件功能的可用性)。这就是为什么使用 Direct3D 11 库编译的应用程序能够在兼容 Direct3D 9/10 的硬件上运行的原因。

答案3

“更新固件”并不是解决所有问题的办法。每个版本的 DirectX 要求都会涉及硬件和固件解决方案。

答案4

这是因为,在制造显卡时,GPU 仅设计为在经过认证的 DirectX 标准内运行。通常,DirectX 向后兼容以前的版本,因此只需在某些数学计算中提高精度即可。但随着新 DX 版本的推出,有时也会引入新功能(如 DX11 添加的曲面细分),这些功能需要新的硬件支持。显卡的实际内部结构不可编程(着色器除外,着色器同样在 DX 规范中指定)。固件是一种驻留在通用逻辑芯片运行的某些内部存储器上的软件。GPU 的强大之处在于,它实际上不是专门设计为通用的,而是可以非常高效地执行特定任务。这些特定任务正是 DX 规范概述的任务。因此,当新 DX 版本发布时,需要进行新的硬件更新,这需要新的 GPU。是的,主板制造商可以添加更快的内存等,但一旦 GPU 制造出来,它里面的逻辑就无法更改。

相关内容