Direct3D feature levels discussion

Discussion in 'Rendering Technology and APIs' started by DmitryKo, Feb 20, 2015.

  1. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    902
    Likes Received:
    1,076
    Location:
    55°38′33″ N, 37°28′37″ E
    There are two major differences: first, the D3D12Core component of the OS will be serviced by Windows Update to automatically include the latest released version (while this particular OS remains supported); second, developers only need to declare two export symbols in the executable file (which specify the minimum supported SDK version and the path to the redistributable D3D12Core.dll), while the D3D12.dll thunk library should automatically load the latest available version of D3D12Core.


    Meanwhile, I've made a minor update to my Direct3D12 Feature Checker tool to report new options in the Direct3D 12 Agile SDK headers, which are currently the same as Insider Preview 'Cobalt'.

    I will look into supporting D3D12Core, so people could test new video driver features without installing Insider Preview builds. I need to check if the redistributable D3D12Core.dll has to be included with the executable at all times, or the D3D12.dll thunk will substitute the version that comes with the downlevel OS...


    [Edit] Agile versions have been added. Requires the Direct3D 12 Agile SDK package
    https://www.nuget.org/packages/Microsoft.Direct3D.D3D12
    Extract D3D12Core.dll from x64 (or ARM64) subfolder and place it into into D3D12\ subfoler in the tool folder.
    The NuGet package file (.NPKG) is a ZIP format archive which can be opened by NuGet Package Explorer, 7-Zip, WinRAR, or File Explorer
     
    #1142 DmitryKo, Apr 21, 2021
    Last edited: Apr 21, 2021
  2. Alessio1989

    Regular Newcomer

    Joined:
    Jun 6, 2015
    Messages:
    609
    Likes Received:
    320
    In before Microsoft decides that there will be too many OS-DX runtime versions combo support and that is not good that some dll cannot updated and controlled by their OS... And in before more driver madness... and DXGI compatibility issues..

    that's looks reasonable... in before devs discover they still continue to use absolute paths when asking about dlls (lol jokin.. but that happened a lot of time in the past!)
     
  3. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    902
    Likes Received:
    1,076
    Location:
    55°38′33″ N, 37°28′37″ E
    Nope, failure creating Direct3D 12 device if "D3D12\D3D12Core.dll" is not present. Otherwise works as advertised - i.e. all features from Cobalt SDK can be queried on versions 200x/210x (preview build 1904x).


    I will include a separate EXE download for those who run Windows 10 versions 1909 (build 1836x) or 2009 (build 1904x). They will need to download the latest Direct3D 12 Agility SDK package from NuGet, then extract x64\D3D12Core.dll into "D3D12" subfolder (.NUPKG file is simply a ZIP archive which can be opened by WinRAR or 7-Zip).
    https://www.nuget.org/packages/Microsoft.Direct3D.D3D12

    There are several servicing strategies - they can either 'force-upgrade' to the latest SDK version, or make a service release for the same SDK version of the redistributable D3D12Core.dll - I guess this will be decided on a case-by-case basis, according to specific feature requests from major publishers.

    Overall this will be limited to features implemented by the user-mode driver, such as DXIL improvements and feature level 12_2; features that require new DXGK/WDDM versions, such as hardware-accelerated graphics scheduler, will not work and will be reported as 'not supported' by feature query.
     
    #1144 DmitryKo, Apr 21, 2021
    Last edited: Apr 22, 2021
  4. iroboto

    iroboto Daft Funk
    Legend Regular Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    13,227
    Likes Received:
    16,124
    Location:
    The North
  5. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    902
    Likes Received:
    1,076
    Location:
    55°38′33″ N, 37°28′37″ E
    #1146 DmitryKo, Apr 21, 2021
    Last edited: Apr 24, 2021
    Krteq, iroboto and BRiT like this.
  6. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    902
    Likes Received:
    1,076
    Location:
    55°38′33″ N, 37°28′37″ E
    I've added the 'agile' version of the tool to the post above.

    Redistributable runtime
    Windows 10 version 1909 (build 18363) and later support redistributable Direct3D 12 runtime which offfers latest features from Insider Preview builds.

    Download the latest Direct3D 12 Agile SDK and extract d3d12core.dll from x64 (or arm64) folder of the NuGet package to the D3D12\ subfolder in the app folder.
    https://www.nuget.org/packages/Microsoft.Direct3D.D3D12
    (NuGet package file (.NPKG) is a ZIP format archive which can be opened by NuGet Package Explorer, 7-Zip, WinRAR, or File Explorer.)

    Run the Agile version of the feature checker tool.​
     
    pharma and BRiT like this.
  7. DavidGraham

    Veteran

    Joined:
    Dec 22, 2009
    Messages:
    3,535
    Likes Received:
    4,195
    I don't normally scrutinize these quotes, but the way NVIDIA and AMD are phrasing their support is wildly different!

    NVIDIA is bolder, bragging about working with Microsoft to introduce Mesh Shaders, Variable Rate Shading and Ray Tracing.
    While AMD is more casual about it, citing support, nothing more.
    One is phrasing their words as if they influenced the making of DX12U, while the other is just casually stating widespread support.
    Does this mean anything? Or is it just a figure of speech? I don't know.
     
  8. Kaotik

    Kaotik Drunk Member
    Legend

    Joined:
    Apr 16, 2003
    Messages:
    9,819
    Likes Received:
    3,976
    Location:
    Finland
    Considering that NVIDIA is including Sampler Feedback, feature that had to be scaled down to "0.9" so it would work with NVIDIA, I'd say it's safe to say it's just the way they want to talk.
     
  9. OlegSH

    Regular Newcomer

    Joined:
    Jan 10, 2010
    Messages:
    547
    Likes Received:
    862
    That's just the way you want to think, as for facts, nvidia introduced all these features years before MS in NVAPI and Vulkan extensions, so there is no way they couldn't have influenced Microsoft's API development.
    The real widespread hardware support on PC is also all about Turing and Ampere GPUs, market share of RDNA2 in PC space is obviously statistically insignificant in comparison.
     
    Rootax likes this.
  10. DegustatoR

    Veteran

    Joined:
    Mar 12, 2002
    Messages:
    2,242
    Likes Received:
    1,675
    Location:
    msk.ru/spb.ru
    0.9 SF tier lacks support for some obscure texture formats AFAIU. You can just as easily say that MS has decided to name that "0.9" because the main target for the feature was their XSX GPU - which supports SF for such formats.
    I think it's a weird choice of naming on MS's part as a 1.0 and 1.1 would be a better fit here probably. 0.9 makes it look like the feature isn't support - which isn't correct.
     
  11. Kaotik

    Kaotik Drunk Member
    Legend

    Joined:
    Apr 16, 2003
    Messages:
    9,819
    Likes Received:
    3,976
    Location:
    Finland
    No-one said or even remotely suggested NVIDIA didn't influence Microsoft API development, of course they did, just like AMD, Intel, Qualcomm and probably others did too.
    That doesn't change the fact that NVIDIAs Texture Space Shading isn't capable of everything what Microsoft wanted for Sampler Feedback, which is why it's not Tier 1 but 0.9.

    You shouldn't view DirectX/Direct3D as just PC only, either, since Xbox is very much part of the process instead of separate entity with it's own APIs, even when they're not 1:1 with Windows DX in all aspects.

    https://microsoft.github.io/DirectX-Specs/d3d/SamplerFeedback.html
    There seems to be quite a lot of restrictions in 0.9 to make it work other than "support for obscure texture formats" according to that.
    It seems more likely MS agreed to implent 0.9 for NVIDIA because of their market share with hardware supporting all the rest of DX12U, rather than just bad naming.
    Before if you couldn't meet everything some feature required, you didn't support it, end of story. IIRC there has been plenty of cases where hardware x meets most of feature y's requirements, but not all, and end up not supporting the feature because of it.
     
  12. OlegSH

    Regular Newcomer

    Joined:
    Jan 10, 2010
    Messages:
    547
    Likes Received:
    862
    We don't know the logic behind this naming, so there are no facts why it was named 0.9.
    Just as well, it could have been named 1.1 as DegustatoR said.
    As of now, that naming brings nothing but fanboy's bragging about it.
    Unfortunately, people bragging about it have no clue on how restrictive the 0.9 is or about its limitations.
    Personally I don't know how often mirrored textures with the unsupported D3D12_TEXTURE_ADDRESS_MODE_MIRROR address mode can be found in modern games.
    I don't remember seeing any such textures in recent games, so not sure whether Tier 1 has any meaningfull impact for development at all, probably this stuff can even be workarounded with a few shader instructions on a game's renderer side.
    Lets wait for the 3DMark Sampler Feedback feature test at least.

    It's a separate entity because MS has a plenty of low level stuff there not exposed on PC.

    There are not, the only meaningful restrictions are address modes, other restrictions don't matter much.
     
    pharma and DavidGraham like this.
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...