Direct3D feature levels discussion

It would have been a stupid move not to involve all the GPU manufacturers for the API design from the beginning. Mobile is more important than desktop nowadays.
Microsoft did include ASTC compression in Direct3D 11.3/12.0 (in particular Tegra K1/X1 and Intel Skylake support ASTC), but it has been removed from the recent Windows 10 SDK releases. All three desktop vendors also make mobile graphics parts though, so I don't think Qualcomm, ARM or PowerVR really need to make some vital contributions...

New generation of mobile GPUs will be released for the holiday season market flagship phones. And I am sure that the mobile GPU vendors have already started the hardware design of their next generation as well. It would benefit Microsoft to ensure that as many as possible support DX12.
We'll see. With the recent announcement that Microsoft is significantly scaling back Windows 10 Mobile efforts and embracing competitive mobile platforms for their core software releases, I just don't think there will be a lot of Windows 10 phones, save for those that can be upgraded from Windows Phone 8.1.

So far Vulkan support makes more sense for mobile GPU vendors - PowerVR and Intel already had working demos at GDC 2015 and the specs are going to be finalized by end of 2015 AFAIK.

last gen consoles had unified memory systems, with CPU virtual memory only. GPUs used pure physical memory addresses.
I thought that only Xbox 360 had unified memory while PS3 had dedicated DDR3 SDRAM for graphics...
 
Last edited:
Microsoft did include ASTC compression in Direct3D 11.3/12.0 (in particular Tegra K1/X1 and Intel Skylake support ASTC), but it has been removed from the recent Windows 10 SDK releases. All three desktop vendors also make mobile graphics parts though, so I don't think Qualcomm, ARM or PowerVR really need to make some vital contributions...
I believe it was time to market issue, rather that a message to drop the mobile support. ASTC has odd block sizes so combining it with advanced features such as tiled resources and volume textures (and volume tiled resources) requires some extra thought.
I thought that only Xbox 360 had unified memory while PS3 had dedicated DDR3 SDRAM for graphics...
Yes, Xbox 360 was the only one with a single memory pool (+EDRAM). However the PS4 GPU could also access RDRAM.
 
Yes, Xbox 360 was the only one with a single memory pool (+EDRAM). However the PS4 GPU could also access RDRAM.
You mean PS3, and yes, it could, but it was slow as it had to go through the CPU, no direct access
 
You mean PS3, and yes, it could, but it was slow as it had to go through the CPU, no direct access
You have it backwards. The GPU in PS3 could access both memory pools at close to full speed. It was the CPU that only had a very slow path to the GDDR3 VRAM.
 
I go away for a few weeks to focus on shipping Windows 10 and then all these posts appear... time to catch up :).

DX12 calls it VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation

Choose yourself whether you use the OpenGL extension name or the most awesome ever DX12 name. But choose wisely :)

A developer on my team likes being very specific with names when a capability is difficult to explain. In this case it's always legal to use the feature in pre-rasterizer shader stages. This cap indicates when a hidden GS is not instantiated to implement the functionality, it's a performance hint cap effectively.

Yes Maxwell 2 has stuff that goes above and beyond like the ability to "add" some attributes in GS but pass others through, and as you note the ability to multicast to several viewports. But I still thought that most NVIDIA hardware should be able to support the DX12 feature as-is, not just Maxwell 2, right? Guess it's probably just a driver thing.

Then again if everyone supports it, not sure why we need the cap bit ;)

As mentioned, all 12 drivers support the shader language feature but the cap bit indicates whether the GS is actually used. The cap is useful when an engine has an alternate rendering path that avoids the RT/VP Index for better performance.

All the confusion, including the clarifying statement on Guru3D, stems from the fact that UAVs in every stage were tied with increased UAV slot count in Direct3D 11.1 and were not made two separate optional features on feature level 11_0 - and whatever reasons Microsoft had for enforcing this requirement, they do not seem to be valid for current Direct3D 12 hardware anymore....

IIRC, the reason these were tied together has nothing to do with hardware support or business objectives. An interesting detail about adding rendering features to Direct3D is my team typically spends more time implementing hardware/driver conformance tests than we do adding feature support to the API itself. We were squeezing everything we could into our schedule for Windows 8 and the way we could fit this feature in was simplifying the test matrix. Or maybe I'm remembering a different feature....

Unrelated to this specific feature, but there are restrictions in Tier 1/Tier 2 that do not correspond to anything from hardware that I know of from the "main three" desktop GPU vendors. Speculate away :)

Direct3D is designed to consider a number of different hardware vendors' GPUs, some not in the announced Direct3D 12 partners of AMD, Intel, NVidia, and Qualcomm. It's just good business to support a wide variety of hardware that could potentially be used in a member of the Windows OS product family. Direct3D of course considers multiple generations of GPU design from each vendor as well.

All three desktop vendors also make mobile graphics parts though, so I don't think Qualcomm, ARM or PowerVR really need to make some vital contributions...

There are aspects of the Direct3D 12 design that are difficult to rationalize across all the different vendors and generations of GPU. It was important to consider all our partners' GPUs in the design process.

I believe it was time to market issue, rather that a message to drop the mobile support. ASTC has odd block sizes so combining it with advanced features such as tiled resources and volume textures (and volume tiled resources) requires some extra thought.

It wasn't a design related issue, we had to postpone for a different reason. ASTC should be back in the product at a later time.

Yes, those Microsoft documents describe only ASTC LDR profile formats and tile sizes. ASTC Full Profile includes HDR formats and 3d tile sizes (for 3d textures).

My team is following the same implementation pattern as hardware vendors where LDR is coming out first, with HDR and 3D to follow later.

Max McMullen
Direct3D Development Lead
Microsoft
 
:LOL:

Anyway that table looks strange to me, I was aware that Tiled Resources were mandatory (at least under D3D12). Imo, the entire MSDN DirectX Grpahics documentation need a big-good "refactoring", mixing pre-D3D12 with D3D12 documentation looks not a good idea for me.
Moreover I am pretty sure that volume tiled resources are actually only supported by Maxwell 2.0 GPUs and cannot emulated (like a 2D array) under Tier2-TR hardware..
 
July 29, 2015
Fermi-based GPUs will gain support for DirectX 12 titles later this year, around the arrival of the first wave of DirectX 12 content. And of course, we’ll be ready and waiting with Game Ready drivers to add performance optimizations, SLI profiles, and much, much more.

http://www.geforce.com/whats-new/articles/windows-10-game-ready-nvidia-geforce-gtx-driver-released

Edit: Additional DirectX 12 Info.
http://www.geforce.com/whats-new/articles/geforce-gtx-is-game-ready-for-windows-10-and-directx-12

 
Last edited by a moderator:
Yep, Christmas 2015 is probably the target for production quality drivers, SDK and Direct3D 12 runtime... right now neither the latest Windows SDK nor the current drivers seem to be feature complete.
 
DxDiag and DxCapsViewer are still Direct3D 11 tools AFAIK, and only NVidia drivers seem to report levels 12_1 and 12_0 in Direct3D 11.3, while AMD Catalyst and WARP12 (Microsoft Basic Render Driver) report level 11_1.
 
Last edited:
DxDiag reports both 12.0 and 12.1 support for my 970

capturexysuk.png
 
Back
Top