Jump to content
Sign in to follow this  
Kenjiro75

DirectX 12

Recommended Posts

DX12 won't bring better perf nor smoother frames just because it is DX12. DX12 is freeing the game/driver interactions from being single-threaded. But there is a gotcha: because multi-threading is no longer a driver responsibility, the game won't benefit from unleashing anything if at its core the game is still single-threaded.

If you're following some of the technical details during XP11 OGL -> Vulkan beta, although XP11 was already spreading a lot of computations on multi-core, they've further improved their task scheduler (internal handler for multiple tasks on multiple threads - nothing to do with Windows Tasks) to further lower sync delays and to further fill all the possible bandwidth between the app and the video card.

What about FS2020 DX12 then? No one knows, but we can still discuss about the facts, and speculate.

First, they are not talking about DX12 but DX12U (aka Ultimate) This is the updated DX12 version with APIs for Ray Tracing, VRS, and a few other things. If I'm not mistaken it is also the minimum DX12 version for Xbox, and I've been following the Game Stack event yesterday where among other things (1) they were also presenting the new SDK which allows a game to ship with its own custom version of the DX12U runtime, therefore decoupling DX12 binaries from Windows and therefore making this DX12U API available on older Win10 versions too.

As for speculation, unlike LR who was announcing their goal, MS/Asobo is not telling. XP11 Vulkan goal was to achieve stutter free simulation (for professional customers) and freeing the single-thread driver bottleneck to push more content per frame. However porting FS2020 to DX12U could just be the minimum necessary to just have the game running on both PC and Xbox, or more.

What is certain is when asked about DLSS during Q&A, Sebastian was saying he doesn't see any performance advantage to this and their anti-aliasing is already quite good... This answer got me puzzled because DLSS and TAA have nothing to do whatsoever one with the other, unless I'm wrong in my understanding of these technologies. If I was extrapolating this comment to DX12U advantage vs DX11, I'd say they might not have evaluated yet whether there is any new technology enabler in this API, they are most likely focusing on the existing rendering engine port over. I believe we'd have to wait until this is done and Xbox version releases until they allocate more time in R&D on the DX12U extra capabilities (2).

To me DLSS has a neat advantage immediately: 1/3 of your NVidia silicon is doing nothing (3) and using DLSS2.1 is like adding a co processor doing extra work at no cost. Just for this reason alone, you can get same res details (even better sometimes) at a fraction of today's rendering cost, therefore unleashing more rendering silicon per frame. In other words, DLSS2.1 means you could raise visual effects from MEDIUM to ULTRA and keep same fps because you'd render at 1/4th the resolution while displaying same level of details or more than before.

I can see the benefit of using Tensor Cores today in FS2020 already: when you're using motion smoothing in SteamVR + Index, you're actually using NVidia VRWorks lib which is using the Tensor Core to predict the pixel motion at 1/4th more precise resolution than just using NVEnc (what they were using before was the motion prediction used to encode H264). And this technology, VRWork using Tensor Cores for Motion Smoothing is actually helping to displaying new frames at a 6:1 ratio. This means you can render at 15fps and display 90 unique frames at 90hz. In practice I'm rendering 18fps --> 90Hz and you really have to experience this to see how good it is.

So back to DLSS (v2.1 also works for VR now), I fail to see how this wouldn't bring any advantage, except for one thing: this is a NVidia technology. However Microsoft is pushing the DirectML API which is a Windows API to basically wrap AI computations. And here is some advantage: Microsoft is implementing the Super Resolution algorithm in DirectML (4), and I'd bet AMD upcoming FSR will be in DirectML as well, and this means it will work on Nvidia too. Maybe NVidia could even implement the Super Resolution feature in DirectML in using the DLSS2.1 technology and the Tensor Cores, in which case you wouldn't need specific DLSS support in a game, just DirectML Super Res support

 

----

(1) https://forums.flightsimulator.com/t/community-feedback-towards-developers/392092/60?u=cptlucky8

(2) DX12U brings 4 new great features and a few other additions:

DirectX Ray Tracing, Variable Rate Shading, Mesh Shaders, Sampler Feedback

https://www.nvidia.com/en-us/geforce/technologies/directx-12-ultimate/

https://www.amd.com/en/technologies/directx12

(3) 1/3 not in # of transistors but in functional units.
There are 3 distinct parts in the NVidia GPU: Tensor cores (AI and DLSS), RT cores (Ray Tracing) and traditional CU cores (Shaders and Compute)

(4) https://github.com/microsoft/DirectML/tree/master/Samples/DirectMLSuperResolution

Edited by RXP
  • Like 12

Jean-Luc | reality-xp.com
This message from Reality XP is protected by a disclaimer: reality-xp.com/aboutrealityxp/email.html

Let your voice be heard and help us make a difference for you: Vote !
Open up communications with Reality-XP (Microsoft Flight Simulator Forums)

Share this post


Link to post
Share on other sites

One small reminder in all of this .. Unless im mistaken there is no Nvidia Silicon in an Xbox Series X or S   . Anyone who with appropriate source authority that contradicts this please post and ill gladly stand corrected.

 

https://www.anandtech.com/show/16489/xbox-series-x-soc-power-thermal-and-yield-tradeoffs

 

With that in mind what is this DLSS expectation ? (unless that feature is strictly for pc users and their solution ?)

AMD has their 1st gen Hardware based ray tracing embedded in the new Xbox . The Question is will Asobo optimize for that as well as Nvidias Gen 2 Ray Tracing? Will they optimize AMD's fidelity fx  solution as opposed to DLSS or will they try to do both?

Considering their optimization priority for xbox release which is pretty much an AMD exclusive SOC architecture  plus the fact that the majority of the GPU marketshare on the pc belongs to NVIDA makes you wonder how they plan to optimize and satisfy for both.

 

Added info 

 

And just like that .. AMD enables Fidelity FX for Xbox Series X and S today. DLSS is not in the box ,,, Whos getting the optimizations?

https://www.tomshardware.com/news/amd-supports-fidelityfx-for-xbox-series-x-s

Edited by Maxis
New info
  • Upvote 2

AMD Ryzen 5900X / Asus Strix B550 F Gaming Wifi / Powercolor AMD 6800XT Red Devil / 32GB Gskill Trident Neo DDR4 3600 / 2x ADATA XPG 8200pro NVME / Arctic Liquid Freezer II 280 / EVGA Supernova 750 GT PSU / Lian Li Lancool II Mesh Performance /

Asus VG34VQL3A / Schiit Bifrost DAC+ Schiit Asgard AMP /  Sennheiser HD 558 / Thrustmaster T.16000M + TFRP Rudders

Share this post


Link to post
Share on other sites

The Devs own words.

https://www.youtube.com/watch?v=FZ_ODML7IQc&list=PLHHNa7e7hf9MqQB-RV6bxHYiLcTQkgGfi&index=2&t=846s

Skip to DX12 and later RT.

And this is what MS Really want for the future.

 Xbox cloud gaming iPhone and iPad release date live: How to get an invite code to beta (msn.com)

Edited by G-RFRY

 

Raymond Fry.

PMDG_Banner_747_Enthusiast.jpg

Share this post


Link to post
Share on other sites
9 hours ago, Maxis said:

Considering their optimization priority for xbox release which is pretty much an AMD exclusive SOC architecture  plus the fact that the majority of the GPU marketshare on the pc belongs to NVIDA makes you wonder how they plan to optimize and satisfy for both.

Cyberpunk 2077 supports both. 

If they want, they can.

  • Like 3

7800X3D | 32 GB DDR5-6000 | RTX 3090 | Acer Predator X34P GSync | Tobii Eye Tracker 5 | Completed all achievements 😛 https://i.postimg.cc/DyjR8mzG/image.png

Share this post


Link to post
Share on other sites
3 hours ago, MrFuzzy said:

Cyberpunk 2077 supports both. 

If they want, they can.

Exactly this. Game developers have been optimising for rival hardware for years. Not an issue at all.

  • Like 2
  • Upvote 1

Share this post


Link to post
Share on other sites
15 hours ago, RXP said:

DX12 won't bring better perf nor smoother frames just because it is DX12. 

I wish I had understood half of your post, Jean-Luc 😁 ! Can't say I have. My down-to-earth ( "ras-les pâquerettes") question is , will we suffer of the VRAM OOM with 8 Gb cards if we   don't downgrade the graphic settings ? Like in P3D.

A credit to ASobo's work is that their sim runs quite well on my old combo 4770+1080 with dx11. 

Edited by Dominique_K
  • Like 3

Dominique

Simming since 1981 -  4770k@3.7 GHz with 16 GB of RAM and a 1080 with 8 GB VRAM running a 27" @ 2560*1440 - Windows 10 - Warthog HOTAS - MFG pedals - MSFS Standard version with Steam

 

Share this post


Link to post
Share on other sites
33 minutes ago, Dominique_K said:

I wish I had understood half of your post, Jean-Luc 😁 ! Can't say I have. My down-to-earth ( "ras-les pâquerettes") question is , will we suffer of the VRAM OOM with 8 Gb cards if we   don't downgrade the graphic settings ? Like in P3D.

My take on this is that the OOMs people experienced with DX12 in P3D are mostly due to the way LM chose to implement DX12, not to DX12 itself. 

The whole point of DX12 is to give the programmer a "close-to-the-metal" access to the graphics hardware in a way that works well with multi-threading, which gives them room for additional optimisations. But on the flipside this means the devs have to implement a lot of basic stuff themselves, that was handled semi-automatically by DirectX up to version 11. 

This includes the memory handling. Up to DX11 you just told it which textures to use, and (to an extent) DX11 would load, unload, stream them automatically to the VRAM, depending on the scene visible on screen. When the VRAM got filled up with textures, swapping them in from normal RAM would be handled automatically by DX11 with little additional programming effort needed. In DX12, this is totally up to the programmers, they have to decide when to load and unload textures into VRAM, and what to do when VRAM gets filled up.

It's quite similar to what happens when your system RAM is getting close to being used 100% - Windows automatically starts swapping out to HDD/SSD the segments that are needed the least, slowing down the whole computer but allowing for an overallocation of the RAM, without causing a hard OOM and closing the offending application. This is, in a way, the DX11 way of doing things.

Now it isn't very hard to imagine that Windows can take stupid decisions as to what parts of the RAM contents aren't really needed, just because it lacks the insight into the application logic, so that the application itself might be much better at deciding what to swap and what to keep. DX12 now burdens all this to the game dev, and if they're taking the easy way out to just load everything that might be needed into VRAM without providing a means of gracefully handling OOM situations, the software just quits with an OOM error. From all I can see, I'd say this is what happened in P3D, and therefore isn't something you'd typically expect from DX12 games. 

This doesn't mean DX12 is without its own pitfalls, usually close-to-the-metal programming burdens more work on the programmer, and it's more technical and harder to get right to run well  on all varieties of graphics hardware. It certainly opens up more opportunities for optimisations as well as for new features (ray tracing, DLSS), but I'd expect it to have its own set of issues in the months after release before it matures. Anyway, games that make use of DX12 also offer DX11 rendering as a fallback. I seem to remember that's what they're planning to do with MSFS according to one of the dev Q&A videos. 

 

  • Like 7
  • Upvote 1

My simming system: AMD Ryzen 5800X3D, 32GB RAM, RTX 4070 Ti Super 16GB, LG 38" 3840x1600

Share this post


Link to post
Share on other sites

The Flight Simulator team are partnered with NVIDIA. The latter have promoted the simulator several times on their socials, NVIDIA GPUs are endorsed in the official Twitch channel's descriptions, and they're doing screenshot competitions with an RTX 3080 as the prize. They have motion vectors for TAA so half the work is done, and considering their partnership with NVIDIA, the other half wouldn't be too hard to initiate. I am genuinely baffled that they have not implemented DLSS yet, especially with VR support getting added.

17 hours ago, RXP said:

This answer got me puzzled because DLSS and TAA have nothing to do whatsoever one with the other, unless I'm wrong in my understanding of these technologies.

I think he was commenting on the TAAU when the resolution scaling is set to anything lower than 100%. It's fairly good since 1.10.7.0 (it was completely broken at release), but it's still no match for DLSS, or even some other implementations like the one in Unreal Engine 4. I played a game with that a few months ago and it was really good, and I imagine the newer Gen 5 implementation is even better.

18 hours ago, RXP said:

and I'd bet AMD upcoming FSR will be in DirectML as well

AMD have said machine learning will not be needed. Maybe it means that there will be several tiers of FSR (there are rumours that RDNA 3 will have a big machine learning performance boost so they might want to take advantage of that in the future), but they have said very little about it. Either way, it looks like it is still in very early stages, so I would not expect it before the end of the year. They really should look into implementing both, the mining craze and chip shortage are not going away any time soon.

  • Like 2

Share this post


Link to post
Share on other sites
11 hours ago, MrFuzzy said:

Cyberpunk 2077 supports both. 

If they want, they can.

They can.. but will they.. and even if they do code for both will they optimize for both. Your example indicates that AMD raytracing was added after release while Nvidia's was built in before release.

Added to that Cyberpunks implementation of raytracing for AMD brings even 6900xt's to its knees which while technically correct that they can claim  they coded for both one could argue they didn't individually optimize for each implementation of it.

https://www.pcgamer.com/cyberpunk-2077-ray-tracing-amd-graphics-card-rdna-2/

I'm sure developers can "implement" these features for the competing platforms .. Whether the developers can optimize for both is the bigger question  and That's my concern.


AMD Ryzen 5900X / Asus Strix B550 F Gaming Wifi / Powercolor AMD 6800XT Red Devil / 32GB Gskill Trident Neo DDR4 3600 / 2x ADATA XPG 8200pro NVME / Arctic Liquid Freezer II 280 / EVGA Supernova 750 GT PSU / Lian Li Lancool II Mesh Performance /

Asus VG34VQL3A / Schiit Bifrost DAC+ Schiit Asgard AMP /  Sennheiser HD 558 / Thrustmaster T.16000M + TFRP Rudders

Share this post


Link to post
Share on other sites
13 minutes ago, Maxis said:

Added to that Cyberpunks implementation of raytracing for AMD brings even 6900xt's to its knees which while technically correct that they can claim  they coded for both one could argue they didn't individually optimize for each implementation of it.

When it comes to ray-tracing the explanation is simple, NVIDIA's implementation is better at ray-triangle intersections, while AMD's is better at ray-box intersections. Right now, most games are optimised with NVIDIA's implementation in mind because it came out first, but with the new Xbox using RDNA 2, future games could favour AMD hardware in the future. The simulator will probably not be an exception to that, Xbox performance is very important to Microsoft.

I'm not even sure if a ray-tracing implementation in games can be optimised for both vendors' hardware at the same time, or if it can reach a middle ground that does not excessively favour either, but we can expect that over time both vendors will be fixing their architectural deficits. Ampere's ray-tracing performance advantage over Turing was lower than expected, because its cache subsystem was compromised due to the poor Samsung process. Lovelace is rumoured to feature a cache redesign (but otherwise be an Ampere 2.0), and RDNA 3 is looking to be a monster in many respects.

When it comes to DLSS and FSR though, there is not much excuse for not supporting both though. The release date of FSR is still very uncertain, and its effectiveness might not be much better than existing TAAU methods if it's not going to use machine learning. Asobo have the motion vectors ready, so all they have to do is ask NVIDIA and they will get the help they need. And when it's ready, they can add FSR as well for AMD/non-RTX GPUs and the Xbox.

Share this post


Link to post
Share on other sites
13 minutes ago, ChaoticBeauty said:

When it comes to ray-tracing the explanation is simple, NVIDIA's implementation is better at ray-triangle intersections, while AMD's is better at ray-box intersections. Right now, most games are optimised with NVIDIA's implementation in mind because it came out first, but with the new Xbox using RDNA 2, future games could favour AMD hardware in the future. The simulator will probably not be an exception to that, Xbox performance is very important to Microsoft.

I'm not even sure if a ray-tracing implementation in games can be optimised for both vendors' hardware at the same time, or if it can reach a middle ground that does not excessively favour either, but we can expect that over time both vendors will be fixing their architectural deficits. Ampere's ray-tracing performance advantage over Turing was lower than expected, because its cache subsystem was compromised due to the poor Samsung process. Lovelace is rumoured to feature a cache redesign (but otherwise be an Ampere 2.0), and RDNA 3 is looking to be a monster in many respects.

When it comes to DLSS and FSR though, there is not much excuse for not supporting both though. The release date of FSR is still very uncertain, and its effectiveness might not be much better than existing TAAU methods if it's not going to use machine learning. Asobo have the motion vectors ready, so all they have to do is ask NVIDIA and they will get the help they need. And when it's ready, they can add FSR as well for AMD/non-RTX GPUs and the Xbox.

I know everything that you stated above. However my concerns exist. We will see how they approach these architectures going forward. (I have a feeling something will be left on the cutting board.)

We will see.


AMD Ryzen 5900X / Asus Strix B550 F Gaming Wifi / Powercolor AMD 6800XT Red Devil / 32GB Gskill Trident Neo DDR4 3600 / 2x ADATA XPG 8200pro NVME / Arctic Liquid Freezer II 280 / EVGA Supernova 750 GT PSU / Lian Li Lancool II Mesh Performance /

Asus VG34VQL3A / Schiit Bifrost DAC+ Schiit Asgard AMP /  Sennheiser HD 558 / Thrustmaster T.16000M + TFRP Rudders

Share this post


Link to post
Share on other sites

@Dominique_K Une bonne question de printemps! (re: au raz des...)

I'd suggest you read @pstrub explanations for details, but In short, the OOM problem boils down to the game code, not the driver code.

This is a complex subject especially more so for simulation game where you have to stream from RAM to VRAM lots of materials and objects at runtime, unlike other games where you can preload all the assets until next level. For what it's worth, in yesterday's SDK Q&A(1), there were saying they'll address the RAM (and most likely VRAM as well) consumption in downgrading a mod assets to fit into what remains, or to eventually forbid loading the mod entirely.

This is really a science in itself and during XP11 beta it was clear there could be winning and less winning strategies.

Hopefully for Vulkan there is an industry "standard" for memory management which is getting lots of support:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator

There is another one for DX12 I know of but I don't feel it has the same level of participation (see link to D3D12 Memory Allocator on this page)

 

@ChaoticBeauty

He might have thought about this indeed. As a matter of fact, FS2020 has been using the AMD CAS Shader for some time now (I don't remember anymore what was the first version). It is working quite good but like you say it has nothing to do with DLSS at all. AMD FSR (Super Resolution) is supposedly the contender running on non-dedicated silicon (therefore like you say shouldn't need ML). However they are also clearly hinting to me, that the open source FSR implementation would be fine tuned for AMD hardware. It will work on all GPUs but better on AMD. And in any case, if this is not a DirectML implementation using dedicated AI silicon, this means it will use CU you'd rather use for rendering otherwise, or you'd have to find the right balance between CU rendering and CU doing FSR. With DLSS however, because there is dedicated silicon doing nothing otherwise, you're effectively adding more silicon power per-frame, which is I believe one of the main advantage compared to FSR.

 

@Maxis We can only speculate of course and at least, this gives us an occasion to discuss these technologies and learn more about these! But I do share your feeling whether they'll custom optimize for difference hardware paths. Sometimes we take things for granted but during the Game Stack event I chatted a little with a lead developer from a studio explaining their implementation of VRS (Variable Rate Shading) and the different techniques and optimizations they were using and the resulting gains. It is quite impressive to follow through the presentation. Nevertheless, their approach has been to process the output render through a sobel edge detection, then to assign different VRS shading rate to the pixels using various match to relate the geometry, its edges etc...

Someone was therefore raising a question about how TAA is affecting the edge detection because of its blurring side effect and was asking whether this was a problem in their game. The answer was basically not in their case, thanks to the sobel not being affected by TAA by the way they were applying these post-processing steps in the pipeline (just to keep it short!). Why I'm mentioning this is because I've for a long time thought there would be a 0 cost opportunity to implementing VRS in any TAA game easily: just use the pixel motion vector texture computed for TAA as the VRS texture(2). In short: the more motion, the less shading rate (2x2) and conversely, the less motion the more shading rate (1x1). So given I had a specialist of this technology in the chat room, I asked whether they'd tried it and was there any reason not using it. I was quite surprised by the answer as a matter of fact: he did tell me it was finding this to be a very good idea (they didn't try it before - I hope they'll now try!).

It would be very simple to boost FS2020 VR perrformance with VRS already: just use the FS2020 already computed TAA pixel motion texture (you can visualize it in dev mode), then reduce it by 8 in both directions and in doing so average the pixel into 4 different shading rate values (instead of RGB blending), then just call 1 NVidia API function with this texture per frame. I can tell you I'd very much like to experiment with this technique if I could!

 

(1) feedback discussion:
SDK Q&A Stream Feedback - Community / General Discussion - Microsoft Flight Simulator Forums

(2) VRS works like this: you setup a texture representing 8x8 or 16x16 pixels on the screen (therefore a 1024x768 screen uses a 128x96 texture) where each pixel is a value telling how coarse to process the pixel shader. With 1x1 the pixel shader code runs for each pixel in the bloc, with 2x2 the pixel shader code runs once for 4 pixels (there is also 1x2 and 2x1).

Edited by RXP
  • Like 5

Jean-Luc | reality-xp.com
This message from Reality XP is protected by a disclaimer: reality-xp.com/aboutrealityxp/email.html

Let your voice be heard and help us make a difference for you: Vote !
Open up communications with Reality-XP (Microsoft Flight Simulator Forums)

Share this post


Link to post
Share on other sites
2 minutes ago, RXP said:

@Dominique_K Une bonne question de printemps!

I'd suggest you read @pstrub explanations for details, but In short, the OOM problem boils down to the game code, not the driver code.

 

I did and thanks to him and to you. This forum can be tiresome at times but it can be really good too. A case in point.

Now what do you mean, in layman's term, by 

address the RAM (and most likely VRAM as well) consumption in downgrading a mod assets to fit into what remains, or to eventually forbid loading the mod entirely.

 


Dominique

Simming since 1981 -  4770k@3.7 GHz with 16 GB of RAM and a 1080 with 8 GB VRAM running a 27" @ 2560*1440 - Windows 10 - Warthog HOTAS - MFG pedals - MSFS Standard version with Steam

 

Share this post


Link to post
Share on other sites
36 minutes ago, Dominique_K said:

Now what do you mean, in layman's term, by 

address the RAM (and most likely VRAM as well) consumption in downgrading a mod assets to fit into what remains, or to eventually forbid loading the mod entirely.

Well, it is really simple in fact: you run FS2020 on Xbox, there is only X MB RAM on the console. You load N add-ons and once the memory if filled up, FS2020 won't load any other add-on! In practice: say the Xbox has 8GB RAM and you load 8 add-ons each one consuming 1GB, you won't be able to load the 9th add-on because there is no more RAM available. 

During the Q&A I was not sure it was only RAM (the system memory for the CPU) or VRAM as well (the memory on the GPU). It seems to me they weren't sure whether they'll just refuse loading new add-ons if there is not enough memory available or if they'll reduce the add-on memory consumption (say in reducing the add-on texture resolution for example). 

In turn, you might end up loading a few very high def airports first (because they are first for whatever reason - alpha sorting or otherwise), and when comes the turn to load the aircraft add-on you want, you'll have pixelated textures in the cockpit, or you won't be able to fly the aircraft at all :-)

Edited by RXP
  • Like 2
  • Upvote 1

Jean-Luc | reality-xp.com
This message from Reality XP is protected by a disclaimer: reality-xp.com/aboutrealityxp/email.html

Let your voice be heard and help us make a difference for you: Vote !
Open up communications with Reality-XP (Microsoft Flight Simulator Forums)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...