win7纯净版 Win10纯净版 Win8系统 最新win10下载 Win10 21h1 Win11 22H2 win10激活

您当前所在位置:首页 > IT资讯 > 微软

DirectX的新增功能-功能级别12_2

时间:2020-08-31     来源:系统堂     游览量:

  什么是功能级别?

  如果您是花了很多时间在计算机硬件上的游戏开发人员,或者也许是一个模拟使用它的计算机游戏,那么您会知道图形卡并不完全相同。有差异。

  不仅要区分整体性能特征,还要区分可用功能的种类。当然,Direct3D的12提供了一组功能中的所保证任何Windows上具有Direct3D 12驱动程序的图形卡。这种标准化非常有价值,并且使每个在Windows上编写图形应用程序的人的工作变得更加轻松。同时,Direct3D 12为应用程序可管理的图形卡之间的差异提供了方法,尤其是随着技术的进步和发展而发展–应用程序可以利用新的酷炫硬件功能。

  在Direct3D中,“功能级别”是我们用来描述一系列图形卡功能的名称。“功能级别”是图形卡的属性。您可能会访问计算机硬件商店或从您那里借来所有硬件的朋友,并找到两张都与Windows 10台式机兼容的图形卡。但是它们可能具有不同的功能级别。或者,您可能拥有两个GPU不同的多GPU系统。它们之间也可能具有不同的功能级别。期望对游戏和应用程序进行编程,以检测系统上可用的功能级别,并相应地使用一组功能。

DirectX的新增功能-功能级别12_2

  功能级别允许简化应用程序代码,同时鼓励采用新的硬件功能。对于应用程序来说,它们是一种随时间推移对GPU进行代际改进的便捷方式。应用程序可以将GPU功能粗略地分组,而应用程序可以轻松地基于其渲染范例,而无需对单个功能进行大量排列。

  连续功能级别是功能的超集。例如,功能级别12_1包括功能级别12_0的所有功能以及其他功能。而且,当然,功能级别12_2包括之前功能的所有功能以及一些新功能。现在值得一提的是,如果说实话,从12_1到12_2的跳跃是巨大的。

  为什么我们需要一个新的?

  Direct3D 12中有一些值得一看的大功能图形功能,而且其重要性足以在功能级别上显示。希望简化希望使用它们的应用程序,并使其更容易推断每个人的游戏环境对这些功能的支持。这些大件物品是

  • DirectX光线追踪

  • 网格着色器

  • 可变速率阴影

  • 采样器反馈

  此外,功能级别12_2包括其他功能的抓包,如下所列。随着时间的流逝以及更新的功能级别的图形卡变得越来越广泛,应用程序开发人员的生活变得更加轻松,因为可以消除繁琐的功能检查,而只需简单依赖新功能级别的存在即可。

  查询和API

  如果您是应用程序,则以请求其他功能级别的相同方式请求功能级别12_2。您可以在创建Direct3D 12设备时执行此操作。

  ComPtr < ID3D12Device > 设备;

  D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_12_2 ;

  HRESULT hr = D3D12CreateDevice (nullptr ,featureLevel ,IID_PPV_ARGS (&m_spDevice )); if (SUCCEEDED (hr )){ //默认适配器支持功能级别}

  您也可以使用CheckFeatureSupport向设备查询12_2,即使您是针对较低功能级别创建的设备。例如:

  D3D12_FEATURE_DATA_FEATURE_LEVELS上限{};

  帽。NumFeatureLevels = 1 ;

  D3D_FEATURE_LEVEL请求= D3D_FEATURE_LEVEL_12_2 ;

  帽。pFeatureLevelsRequested = &请求;如果(SUCCEEDED (设备- > CheckFeatureSupport (

  D3D12_FEATURE_FEATURE_LEVELS ,&帽,的sizeof (帽)))&& 帽。MaxSupportedFeatureLevel ==

  请求){ //设备支持功能级别}

  您会看到,12_2的枚举值表示如下:

  码:

  typedef 枚举D3D_FEATURE_LEVEL

  { // ...

  D3D_FEATURE_LEVEL_12_2 = 0xc200 } D3D_FEATURE_LEVEL ;

  常见问题(FAQ)

  问:如果我的图形卡和驱动程序报告了上述所有功能,是否自动表示我的图形卡的功能级别为12_2?

  答:简短答案:不一定,您可能需要获取或等待驱动程序更新。更长的答案:当驱动程序与Direct3D 12运行时对话时,它会告诉运行时它是什么功能级别。驱动程序需要明确报告对功能级别12_2的支持,运行时不会自动推断出它。图形硬件制造商可能会提供更新的驱动程序来报告该驱动程序。如果对此有疑问,请绝对与图形卡的制造商联系。

  问:我可以将哪些功能级别12_2与Direct3D API一起使用?

  答:仅Direct3D 12.现在,我知道您可能在想什么。“但是在过去的某些功能级别上,我可以使用Direct3D 11或Direct3D 12!为什么不12_2?” 这确实说明了自上一个功能级别以来已过去的时间,以及功能级别12_2中的事务有多大。

  Direct_2D 11中的功能根本没有通过Direct3D 11 API浮出水面。例如,您不会通过Direct3D 11编程模型获得DirectX光线跟踪。因此,请求具有您的编程模型无法访问的功能的功能级别几乎没有道理。另一方面,功能级别12_1在Windows 10的最初发行版中就不存在了。它包含可消化的内容,并且可以通过Direct3D 11和Direct3D 12编程模型公开。以平铺资源为例。这是功能级别12_0保证的功能。您在11中平铺了资源,在12中平铺了它们(称为“保留资源”)。对于保守光栅化来说,情况与此类似,其范围足以与两种编程模型一起使用,已包含在12_1中。另一方面,包含要素级别12_2的功能非常庞大,并且包含较大的API表面。与Direct3D 12编程模型的紧密集成使它们可以很好地工作。

  一个细节:创建Direct3D 11设备时,您传递了一组有序的功能级别。通过平台可用性检查的第一个功能级别是您获得的功能级别。如果该列表包含功能级别12_2,它将忽略该功能并移至下一个功能级别。它不会使整个通话失败。

  问:哪些硬件平台将支持功能级别12_2?

  答:我们非常高兴通知您:

  • NVIDIA GeForce RTX和NVIDIA Quadro RTX GPU支持功能级别12_2。

  • AMD即将推出的基于RDNA 2架构的GPU将包括全功能级别12_2支持。

  • 英特尔的发展路线图包括离散GPU,这些GPU将使开发人员能够充分利用Feature Level 12_2。

 1/2    1 2 下一页 尾页

上一篇:TLS 1.0和TLS 1.1-即将结束
下一篇:TLS 1.0和TLS 1.1支持将于2020年9月24日终止