I dunno, I think the division is pretty good. Both 12_0 (bindless) and 12_1 (better rasterization/ROP control) are important. 12_1 enables stuff like efficient OIT, volumetric shadows (AVSM), voxelization, user-space tiling/binning, etc. Are games all of a sudden going to require all of these features? Of course not, but the sooner the majority of hardware has them the sooner we can push those more future-looking techniques forward. Of course consoles will hold things back a bit, but that's always the case.FWIW: I don't think supporting 12_1 or not don't matter a whole lot...
Which features of 12_0 do you think are going to be "emulated"? Bindless isn't really something you can emulate per se. Typed UAVs you kind of can, although not necessarily efficiently in the presence of bindless.Level 12_0 mostly leverages on GCN features. Nvidia cards before Maxwell 2 will emulate some features in software.
At least one of the main features in 12_1 showed up much earlier in non-NVIDIA hardware; and remember that there are tiers of several of the features12.1 was created for Maxwell 2
Welp. It is what it is. Consoles generally dictate the overall features we see in game engines.So rather than pushing forward DX12 and bringing a high level of feature support to consoles, AMD has ended up holding us back from what developers really want in DX12
It may not be so bad. There are three levels of support for both ROV and CR. My understanding is that each tier improves on addressing on fringe/special cases that previous tier could not. Tier 3 would be that ideal feature level such that if consoles were to refresh when tier 3 variants would be released it would be good timing to get into it.So rather than pushing forward DX12 and bringing a high level of feature support to consoles, AMD has ended up holding us back from what developers really want in DX12
ROVs don't have tiers, they either work or they don't Unfortunately there are very few alternatives for algorithms that need ROVs on hardware that doesn't support them (consoles). That's one of the reasons why we pushed so hard for other hardware vendors to support them and for them to be exposed in DirectX.There are three levels of support for both ROV ...
AMD supports feature level 12.0. This brings some highly important features such as typed UAV load and bindless resources.So rather than pushing forward DX12 and bringing a high level of feature support to consoles, AMD has ended up holding us back from what developers really want in DX12
I have updated the Wikipedia article with my own version of a basic Direct3D 12 feature matrix table (and some revisions to the main feature level table):
https://en.wikipedia.org/wiki/Direct3D#Direct3D_12_levels
I used reports by Ryan (both dxcapsview and my app) and this post by Andrew, but any additional comments and suggestions will be appreciated, especially D3D12 capability reports for Nvidia Fermi and Intel Haswell/Broadwell/Skylake.
I don't think Synchronization and Multi-Engine has any relation to the feature levels table, but it could be added to the main Direct3D 12 section if someone is able to describe it in a concise manner...Would it be appropriate to include async compute and async copy in that table?
I have something in mind, but I need to wait for everyone to get back from Computex (and likely their post-Computex vacations). So it won't happen for a little bit. But overall I agree with you, the rabbling has only gotten worseMaybe it's time to clear some (I'd say much) confusion with a proper article explaining practical effects of feature levels and other optional capabilities in Direct3D 12 on both performance and rendering quality?
No-one outside this thread seems to understand that AMD level 11_1 cards differ from 12_0 cards only by a very minor feature, that is Tier 2 vs Tier 1 for Tiled Resources, or that NVidia level 11_0 cards support all the important features from level 11_1 - maybe even more than can be exposed with optional caps in Direct3D 11.x...
I just made a quick test with Intel OIT sample, I did a quick check the sources and as far i understand it uses GL_INTEL_fragment_shader_ordering extension for AOIT rendering mode.ROVs don't have tiers, they either work or they don't Unfortunately there are very few alternatives for algorithms that need ROVs on hardware that doesn't support them (consoles). That's one of the reasons why we pushed so hard for other hardware vendors to support them and for them to be exposed in DirectX.
I have updated the Wikipedia article with my own version of a basic Direct3D 12 feature matrix table (and some revisions to the main feature level table):
https://en.wikipedia.org/wiki/Direct3D#Direct3D_12_levels
I used reports by Ryan (both dxcapsview and my app) and this post by Andrew, but any additional comments and suggestions will be appreciated, especially D3D12 capability reports for Nvidia Fermi and Intel Haswell/Broadwell/Skylake.
I'm particularily interested in anything related to UAV-only rendering and UAVs at every stage, since D3D12 CheckFeatureSupport does not provide these options anymore... I assume these could be promoted to the basic feature level 11_0, since they seem to be supported by all Direct3D 12 capable cards, but MSDN docs are still not up to date on Direct3D 12 levels 12_x and 11_x .
BTW Ryan.
Anandtech forum suffers the fanboy attack on AMD for not being "full DX 12.1" - and what's funny, they repost messages from this thread to flame their war! Maybe it's time to clear some (I'd say much) confusion with a proper article explaining practical effects of feature levels and other optional capabilities in Direct3D 12 on both performance and rendering quality?
No-one outside this thread seems to understand that AMD level 11_1 cards differ from 12_0 cards only by a very minor feature, that is Tier 2 vs Tier 1 for Tiled Resources, or that NVidia level 11_0 cards support all the important features from level 11_1 - maybe even more than can be exposed with optional caps in Direct3D 11.x...
It's a DirectX sample - it doesn't use the OpenGL extension If you're not running on Intel hardware then it will not show you the pixel synchronization option in the dropdown. By default the application just runs in alpha blend mode (with incorrect output). You have to change it to DX11 linked lists or pixel sync via the dropdown.I just made a quick test with Intel OIT sample, I did a quick check the sources and as far i understand it uses GL_INTEL_fragment_shader_ordering extension for AOIT rendering mode.
AOIT mode work well with AMD hardware on my system.
My bad, I didn't notice that IntelExt_BeginPixelShaderOrdering was just a shader XDIt's a DirectX sample - it doesn't use the OpenGL extension If you're not running on Intel hardware then it will not show you the pixel synchronization option in the dropdown. By default the application just runs in alpha blend mode (with incorrect output). You have to change it to DX11 linked lists or pixel sync via the dropdown.
WDDM 1.2 and Direct3D 11.1 introduce optional features for levels 10_x and up - specifically DirectCompute (CS4.x), extended pixel formata, logic ops in output merger, etc.Intel Sandy Bridge is WDDM 1.2 but FL 10.1. What other advantages does WDDM 1.2 bring?
As I said in the post above, this is the effect of Direct3D 12 hardware either supporting feature level 11_1 or supporting most level 11_1 features as optional on level 11_0 - as specifically Fermi/Kepler/Maxwell-1 were designed to work.I'm too dumb to understand everything of the Wikipedia article, but from my first reading of the feature level tables, did I get it right that feature level 11_0 for D3D11 is not exactly the same as 11_0 for D3D12?
I don't have statistics for these two features yet - we need someone to run the latest D3D12 feature check tool on all supported AMD, NVidia and Intel cards and report the results.You forgot the funny "VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation" and "ResourceHeapTier".
Maybe references to Direct3D 11 or HLSL on the description page would ring the bell?I didn't notice that IntelExt_BeginPixelShaderOrdering was just a shader