Microsoft Adds DirectX 12 Feature-level 12_2, and Turing, Ampere and RDNA2 Support it

Published by

teaser

New in DirectX 12 feature Level 12_2,  a “feature level” is a name that is used to describe a bunch of graphics card capabilities. “Feature level” is a property of your graphics card. 



Successive feature levels are supersets of functionality. For example, feature level 12_1 includes all the capabilities of feature level 12_0 plus some more things. And, of course, feature level 12_2 includes all the capabilities of the ones before it, plus some new things. Now it’s worth mentioning that the jump from 12_1 to 12_2 is huge. There are some big-ticket graphics features worth exposing in Direct3D 12, and important enough to be represented in a feature level. There’s a desire to streamline applications who wish to use them, and to make it easier to reason about support for those features on everyone’s gaming environments. Those big-ticket items are

  • DirectX raytracing
  • Mesh shaders
  • Variable rate shading
  • Sampler feedback

In addition, feature level 12_2 includes a grab-bag of other capabilities, listed out below. As time moves on and newer-feature-level graphics cards become more widely available, application developers’ lives are made easier since a cumbersome capability check can be removed in favor of simple reliance on presence of the new feature level. 

All the things which comprise feature level 12_2 also exist in terms of capabilities and feature tiers queryable through CheckFeatureSupport. No hidden capabilities or anything like that.

If a device is feature level 12_2, it has:

Feature 12_2 minimum
Required driver model WDDM 2.0
Shader Model 6.5
Raytracing tier Tier 1.1
Variable shading rate Tier 2
Mesh shader tier Tier 1
Sampler feedback Tier 0.9
Resource Binding Tier Tier 3
Tiled Resources Tier 3
Conservative Rasterization Tier 3
Root Signature Tier 1.1
DepthBoundsTestSupported TRUE
WriteBufferImmediateSupportFlags Direct, Compute, Bundle
MaxGPUVirtualAddressBitsPerResource 40
MaxGPUVirtualAddressBitsPerProcess 40

The capabilities in 12_2, in particular the big-ticket ones simply aren’t surfaced through Direct3D 11 API. You’re not going to get, say, DirectX Raytracing, through the Direct3D 11 programming model. So it hardly makes sense to request a feature level with capabilities inaccessible to your programming model. Feature level 12_1, on the other hand, went out with the initial release of Windows 10. It included things that were digestible and made sense to expose through both Direct3D 11 and Direct3D 12 programming models. Take tiled resources, for example. That’s a capability guaranteed through feature level 12_0. You have tiled resources in 11, and you have them in 12 (called “reserved resources”). Similar thing for conservative rasterization, something scoped enough to work with both programming models, which was included in 12_1. On the other hand the capabilities which comprise feature level 12_2 are huge and comprise a big API surface. A tight integration with the Direct3D 12 programming model allows them to work really well.

One detail: when you create a Direct3D 11 device, you pass an array of ordered feature levels. The first feature level that succeeds the platform-availability-check is the one you get. If that list includes feature level 12_2, it’ll ignore that and move onto the next one. It won’t fail the whole call.

Q: Which hardware platforms will support feature level 12_2?

A: here we go:

  • Feature level 12_2 is supported on NVIDIA GeForce RTX and NVIDIA Quadro RTX GPUs.
  • AMD’s upcoming RDNA 2 architecture-based GPUs will include full feature level 12_2 support.
  • Intel’s roadmap includes discrete GPUs that will empower developers to take full advantage of Feature Level 12_2.
  • Microsoft is collaborating with Qualcomm to bring the benefits of DirectX feature level 12_2 to Snapdragon platforms.

The powerful new capabilities in feature level 12_2 represent exciting new possibilities for game and application developers.

Microsoft Adds DirectX 12 Feature-level 12_2, and Turing, Ampere and RDNA2 Support it

Share this content
Twitter Facebook Reddit WhatsApp Email Print