admin 管理员组文章数量: 1184232
问题背景:
预计 Windows 10 将于 7 月 19 日发布,DirectX 12 也将随之而来。从目前网上测试看,DirectX 12 是得新老显卡的表现有了质的提高,那么问题来了, 1)DirectX 12 的可以支持它之前的显卡是如何做到的?不应该是先给指令集显卡厂商适配么?比如 AMD 的mantle 支持 GCN 构架的 AMD 显卡 2)为何即使是《英雄联盟》这样肯定不是针对 DirectX 12接口的游戏,同样的显卡表现也有非常大提高呢? Windows 10 来了,作为一个 Windows 7 已经使用了 5年多老用户,我表示要升级。
DirectX 12 的设计理念与实现方式使其能够支持较老的显卡,并显著提升性能。以下从技术角度来回答你的问题,并解释为什么即使是较老的显卡和未针对 DirectX 12 优化的程序,也能在 DirectX 12 上表现更好。
1. 为什么 DirectX 12 可以支持老显卡?
DirectX 12 的兼容性设计使其可以支持多代显卡,包括较老的硬件。这主要是通过以下方式实现的:
(1)硬件抽象层兼容
DirectX 12 的 API 仍然依赖于显卡支持的硬件特性,而这些特性大多是 DirectX 11 时代甚至更早就存在的。换句话说,DirectX 12 是在现有硬件的功能基础上,进一步优化了访问方式,而不是强制要求显卡支持全新的指令集。
- 老显卡的兼容性 :DirectX 12 提供了向下兼容机制,对于不支持最新特性的显卡,它会自动降级到更老的特性集(Feature Level)。例如,Nvidia 的 GTX 770 支持 DirectX 11 特性集,但它仍然能够运行 DirectX 12 的基础功能。
- 驱动程序更新 :显卡厂商(如 Nvidia 和 AMD)通过更新驱动程序,使旧显卡可以利用 DirectX 12 的优化路径。这不需要硬件更改,而是对现有硬件的支持逻辑进行调整。
(2)特性集(Feature Level)机制
DirectX 12 的特性集机制允许显卡根据其支持的硬件功能,运行不同级别的特性:
- DirectX 12 Ultimate 特性(如光线追踪、VRS 等)需要更现代的硬件支持。
-
老显卡可以运行 DirectX 12 的基础功能,但不会启用高级特性。
这意味着,即使是较老的显卡,也可以通过 DirectX 12 的优化模型获得性能提升。
2. 为什么《英雄联盟》等未针对 DirectX 12 优化的游戏也能获得性能提升?
即使游戏未直接使用 DirectX 12 的 API,玩家在启用 DirectX 12 后仍可能体验到性能的提升。这背后的原因与 DirectX 12 的核心优化机制有关:
(1)减少 CPU 开销
DirectX 12 针对 DirectX 11 的一个重要改进,是显著减少了 CPU 的图形指令管理开销。这对 CPU 性能较弱(例如 Intel i3 或 AMD A8)和存在瓶颈的系统尤其明显。
- 多线程指令处理 :DirectX 12 支持多线程指令执行。相比 DirectX 11 的单线程渲染,DirectX 12 能让 CPU 核心并行处理更多的任务,从而提高 CPU 的利用率。
- 降低驱动层开销 :DirectX 12 的底层设计减少了驱动程序在 CPU 上的中间层处理负担,这对于老显卡和未优化的游戏也很有帮助。
从测试图表中可以看到,使用 DirectX 12 时,即便是较弱的 CPU(如 AMD A8),帧率也有显著提升。这是因为 DirectX 12 在 CPU 和 GPU 之间的指令交互更加高效。
(2)更高效的资源管理
DirectX 12 允许开发者直接管理显卡资源(如显存分配、缓冲区管理等),避免了 DirectX 11 中由驱动程序自动管理可能带来的低效问题。
- 即使是未针对 DirectX 12 优化的游戏,它们的资源管理仍然可以受益于驱动程序对 DirectX 12 的优化。
(3)显卡性能的更充分利用
DirectX 12 通过更底层的硬件控制,使显卡的计算单元和资源利用率更高:
- 在 DirectX 11 中,驱动程序可能因为不充分的优化而浪费显卡资源。
- DirectX 12 则通过更高效的任务分配机制,确保显卡的每一部分都能得到更充分的利用。
这对于较老的显卡尤其重要,因为它们的性能本来就有限,但通过 DirectX 12 的优化,可以将这些性能潜力最大化。
(4)驱动程序的间接优化
显卡厂商通常会在发布新的驱动时,在 DirectX 12 的基础上为老显卡进行性能优化。这意味着,即使游戏未直接使用 DirectX 12,也可能因为驱动的改进而获得性能提升。
3. DirectX 12 的性能提升是否需要程序匹配?
DirectX 12 确实需要程序匹配才能最大化利用其特性(如多线程渲染、资源管理优化等)。但即便是未针对 DirectX 12 优化的游戏,也可能间接受益于以下几个方面:
(1)驱动的优化
显卡厂商通常会通过驱动程序,将未匹配 DirectX 12 的游戏适配到更高效的路径。例如,Nvidia 和 AMD 的驱动会在后台自动优化资源分配和指令调度。
(2)系统图形堆栈的改进
Windows 10 中的图形堆栈针对 DirectX 12 进行了底层的优化,这些优化会影响所有游戏的表现,包括未针对 DirectX 12 优化的游戏。
(3)硬件和 API 的协同效应
DirectX 12 的底层改进(如减少 CPU 开销、提高显卡利用率等)是硬件和 API 协同作用的结果,程序本身不需要直接匹配,也能间接受益。
总结:为什么 DirectX 12 能支持老显卡并提升性能?
- 兼容性设计 :DirectX 12 的特性集机制和驱动程序更新,使其能够支持较老的显卡,并在现有硬件功能的基础上优化性能。
- 减少 CPU 开销 :DirectX 12 的多线程能力和高效资源管理,显著提升了系统性能,尤其是 CPU 瓶颈较严重的场景。
- 硬件利用率提升 :DirectX 12 能更充分地发挥显卡的潜力,即使是较老的硬件也能得到优化。
- 间接优化 :通过驱动程序和系统堆栈的改进,即便是未针对 DirectX 12 优化的游戏,也能受益于底层性能提升。
因此,无论是老显卡还是现代显卡,都能通过 DirectX 12 获得一定的性能提升,而针对 DirectX 12 优化的游戏则能进一步最大化性能潜力。对于你这样的 Windows 7 用户,升级到 Windows 10 后,体验 DirectX 12 确实是一次值得期待的变化!
版权声明:本文标题:DirectX 12的“新”性能,“老”显卡的奇迹:无需全新配置也能畅玩大作! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1771620446a3546668.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。