Jump to content

Recommended Posts

Posted

Would like to discuss the merits of each API...  I suppose the best thing DX9 has to offer is compatibility with old video cards, though certainly 99% of the folks that think about flight simulation will have a DX11 compatible card these days...

 

So...  What does DX11 (and 12) offer in terms of graphics?  I've always thought what the team has done with DX9 was pretty amazing and I'm excited to see how well they can do with DX11.  What kinds of things can be expected/enhanced?

  • Upvote 1
Posted

DX 11 basically puts less pressure on the CPU, and more pressure on the GPU (rightfully) to perform tasks, which means an increase in FPS and Graphics for PCs/Laptops that match the minimum specs of the game in hand. DX 12 is more of the same, and IIRC it allows more SLI support.

ShamrockOneFive
Posted

It's a bit of a marketing thing rather than a truly what's possible but this is a decent enough overview of DX11 features:

http://www.geforce.com/hardware/technology/dx11/technology

 

It's been around since 2009 so most people have a video card that already has DX11 support. My old PC that was getting long in the tooth (and was over 5 years old) had a perfectly capable DX11 supported card in it.

 

That entire list of graphical updates that Jason was talking about in his update marked with "Possibly if research results are good" I'm guessing is at least partially to do with features that DX11 may enable them to do. It may not even look that dramatically different but they will be able to use the effects without incurring as much of a hit on the good ole frame rate.

 

We'll see what else they get up to. Maybe some fancier lighting and shadow system with subsurface scattering for example?

Posted

DX11 absolutely makes much better use of the graphics card we pay good money for, over DX9. I saw a huge difference in that department when DCS moved to it with the Edge engine.

Excited to see this series move to it as well, and of course opens up VR support much more.

  • Upvote 1
Posted

(...) I've always thought what the team has done with DX9 was pretty amazing (...)

 

Shuttering, bad optimalization, 9,5km render range etc. etc.

 

Srsly man?

Posted (edited)

Shuttering, bad optimalization, 9,5km render range etc. etc.

 

Srsly man?

Precisely.

 

Those are the engine limitations because it's on dx9. Its all using a single thread for most of the processing.

 

They really stretched the limits of DX9 and how much it can be optimized for a 2016 game.

Edited by Jade_Monkey
Posted

DX11 absolutely makes much better use of the graphics card we pay good money for, over DX9. I saw a huge difference in that department when DCS moved to it with the Edge engine.

Excited to see this series move to it as well, and of course opens up VR support much more.

My only hope is that we get multi threading on the dserver, or something like it. My concern is that Dx11 will be great for single players, but that does not mean that multiplayer will see any benefit necessarily.

 

Specifically, 84 players online is only possible with an empty map with nothing happening on the ground! The entire point of dx11 would be in my opinion to increase the possible ground activity while keeping the same number of players.

  • Upvote 2
Posted (edited)

Precisely.

 

Those are the engine limitations because it's on dx9. Its all using a single thread for most of the processing.

 

They really stretched the limits of DX9 and how much it can be optimized for a 2016 game.

 

Yes, the problem is ... why they use dx9 in god damn 2016, even when the game started in 2013 the dx9 was outdated ... The dx 11 should be from the first begining not implemented after so long time, and still we don't know for sure when we will get it and will it change antyhing.

Edited by =LG=Wicher
Posted (edited)

The only thing i want from the further BOS development is a good FPS increase to at least allow for stable 60 fps in wings of liberty in all cases instead of 30-40 fps we re getting in dogfights. 30-40 fps is unplayable especially when war thunder gives me 160 fps. In shooters lags start from 90 fps lol

 

However i can guarantee 99% it will never happen. It will take no less then a complete redesign of the game's engine and the devs wont do that, rather sell more planes to us.

Edited by Max_Damage
Posted

The only thing i want from the further BOS development is a good FPS increase to at least allow for stable 60 fps in wings of liberty in all cases instead of 30-40 fps we re getting in dogfights. 30-40 fps is unplayable especially when war thunder gives me 160 fps. In shooters lags start from 90 fps lol

 

However i can guarantee 99% it will never happen. It will take no less then a complete redesign of the game's engine and the devs wont do that, rather sell more planes to us.

I really hope you're wrong and DX11 will fix our performance issues and give us better visuals but I have this sneaking suspicion that this game has a bad case of spaghetti code.

Posted

First post (hi everyone!), but I thought I'd chip in as I used to be a games graphics programmer using DX9 and DX11, and to maybe temper some of the excitement around DX11.

 

Purely in itself, moving from DX9 to DX11 will have basically zero effect on the look of the game, or its performance. Each version of DX is a superset of the previous one - it just adds new options and capabilities. In fact DX11 will still run on DX9 GPUs, as long as you don't use any of the new features. The API changed significantly from DX9 to 10 (and a little from 10 to 11), so DX9 titles need major rewrites of their graphics code to move to DX11, which takes time. At the end you'll have a DX11 title that takes no advantage of the new features, but after that you can start to make improvements.

 

For a flavour of what could be improved, some of the headline features of DX11 over DX9 are instancing, tessellation and compute shaders (plus a bunch of other smaller things I've probably forgotten).

 

'Instancing' means drawing multiple copies of objects in one go. In DX9 if you want to draw e.g. ten tanks, you set up the position/rotation of a tank and draw it, and repeat this ten times. In DX11 you can set up an array of transforms for each tank and draw ten at once, potentially saving a load of CPU time (each draw call is expensive). This may well be of use here.

 

'Tessellation' can be used to dynamically generating new vertices depending on where the camera is. It's useful for height-mapped ground terrains to generate the optimum number of vertices for the given camera angle, and avoid copying so much data to the GPU (again slow). I don't know if this is applicable at the moment, but it's pretty much a requirement for doing good looking dynamic water.

 

'Compute shaders' are for doing general purpose (not necessarily graphics) parallelisable work on the GPU. It's still mainly used to do graphics effects though and is great for doing super-quick particle systems, hundreds of dynamic lights, post-processing effects, stuff like that. Again I don't know how useful it'll be for this game.

 

So, DX12. The main advantage of DX12 is that it can be much more efficient on the CPU, by stripping away most of the driver and giving direct access to the hardware. It's Windows 10 only though, so most (or all?) existing titles add DX12 in addition to DX11 support, as otherwise you're cutting your customer base. That doubles up your work though each time you add a new graphics feature, so personally I think DX11-only is the way to go for now.

 

At the end of the day though I doubt graphics rendering is actually the bottleneck, so there will be limitations on what a change of DX version can achieve for performance. I suspect that most of the CPU is used for flight modelling and AI, so even if you removed all CPU usage from the graphics, I doubt it would have that great an effect. The other coming improvements around AI efficiency will likely do more (but the devs will know for sure).

 

Hope that's useful!

  • Upvote 4
Posted

First post (hi everyone!), but I thought I'd chip in as I used to be a games graphics programmer using DX9 and DX11, and to maybe temper some of the excitement around DX11.

 

Purely in itself, moving from DX9 to DX11 will have basically zero effect on the look of the game, or its performance. Each version of DX is a superset of the previous one - it just adds new options and capabilities. In fact DX11 will still run on DX9 GPUs, as long as you don't use any of the new features. The API changed significantly from DX9 to 10 (and a little from 10 to 11), so DX9 titles need major rewrites of their graphics code to move to DX11, which takes time. At the end you'll have a DX11 title that takes no advantage of the new features, but after that you can start to make improvements.

 

For a flavour of what could be improved, some of the headline features of DX11 over DX9 are instancing, tessellation and compute shaders (plus a bunch of other smaller things I've probably forgotten).

 

'Instancing' means drawing multiple copies of objects in one go. In DX9 if you want to draw e.g. ten tanks, you set up the position/rotation of a tank and draw it, and repeat this ten times. In DX11 you can set up an array of transforms for each tank and draw ten at once, potentially saving a load of CPU time (each draw call is expensive). This may well be of use here.

 

'Tessellation' can be used to dynamically generating new vertices depending on where the camera is. It's useful for height-mapped ground terrains to generate the optimum number of vertices for the given camera angle, and avoid copying so much data to the GPU (again slow). I don't know if this is applicable at the moment, but it's pretty much a requirement for doing good looking dynamic water.

 

'Compute shaders' are for doing general purpose (not necessarily graphics) parallelisable work on the GPU. It's still mainly used to do graphics effects though and is great for doing super-quick particle systems, hundreds of dynamic lights, post-processing effects, stuff like that. Again I don't know how useful it'll be for this game.

 

So, DX12. The main advantage of DX12 is that it can be much more efficient on the CPU, by stripping away most of the driver and giving direct access to the hardware. It's Windows 10 only though, so most (or all?) existing titles add DX12 in addition to DX11 support, as otherwise you're cutting your customer base. That doubles up your work though each time you add a new graphics feature, so personally I think DX11-only is the way to go for now.

 

At the end of the day though I doubt graphics rendering is actually the bottleneck, so there will be limitations on what a change of DX version can achieve for performance. I suspect that most of the CPU is used for flight modelling and AI, so even if you removed all CPU usage from the graphics, I doubt it would have that great an effect. The other coming improvements around AI efficiency will likely do more (but the devs will know for sure).

 

Hope that's useful!

Well that's depressing since the devs probably don't have the time to rewrite the engine and take advantage of what DX11 has to offer. Thanks for the info though.

Posted

I really hope you're wrong and DX11 will fix our performance issues and give us better visuals but I have this sneaking suspicion that this game has a bad case of spaghetti code.

ofc it wont fix anything, just allow some more graphics and VR

Posted

First post (hi everyone!), but I thought I'd chip in as I used to be a games graphics programmer using DX9 and DX11, and to maybe temper some of the excitement around DX11.

 

Purely in itself, moving from DX9 to DX11 will have basically zero effect on the look of the game, or its performance. Each version of DX is a superset of the previous one - it just adds new options and capabilities. In fact DX11 will still run on DX9 GPUs, as long as you don't use any of the new features. The API changed significantly from DX9 to 10 (and a little from 10 to 11), so DX9 titles need major rewrites of their graphics code to move to DX11, which takes time. At the end you'll have a DX11 title that takes no advantage of the new features, but after that you can start to make improvements.

 

For a flavour of what could be improved, some of the headline features of DX11 over DX9 are instancing, tessellation and compute shaders (plus a bunch of other smaller things I've probably forgotten).

 

'Instancing' means drawing multiple copies of objects in one go. In DX9 if you want to draw e.g. ten tanks, you set up the position/rotation of a tank and draw it, and repeat this ten times. In DX11 you can set up an array of transforms for each tank and draw ten at once, potentially saving a load of CPU time (each draw call is expensive). This may well be of use here.

 

'Tessellation' can be used to dynamically generating new vertices depending on where the camera is. It's useful for height-mapped ground terrains to generate the optimum number of vertices for the given camera angle, and avoid copying so much data to the GPU (again slow). I don't know if this is applicable at the moment, but it's pretty much a requirement for doing good looking dynamic water.

 

'Compute shaders' are for doing general purpose (not necessarily graphics) parallelisable work on the GPU. It's still mainly used to do graphics effects though and is great for doing super-quick particle systems, hundreds of dynamic lights, post-processing effects, stuff like that. Again I don't know how useful it'll be for this game.

 

So, DX12. The main advantage of DX12 is that it can be much more efficient on the CPU, by stripping away most of the driver and giving direct access to the hardware. It's Windows 10 only though, so most (or all?) existing titles add DX12 in addition to DX11 support, as otherwise you're cutting your customer base. That doubles up your work though each time you add a new graphics feature, so personally I think DX11-only is the way to go for now.

 

At the end of the day though I doubt graphics rendering is actually the bottleneck, so there will be limitations on what a change of DX version can achieve for performance. I suspect that most of the CPU is used for flight modelling and AI, so even if you removed all CPU usage from the graphics, I doubt it would have that great an effect. The other coming improvements around AI efficiency will likely do more (but the devs will know for sure).

 

Hope that's useful!

 

 

Thanks for the breakdown! Really interesting.

 

I think the devs are aware (or learning about) the instancing part and probably working to reduce the load a bit.

 

They also announced an unexpected improvement in CPU load after changing the landing gear physics coming in the next patch, which will definitely help with having AI units taxiing and parking.

 

I agree that the total improvement is hard to predict. I just hope that balances the load better between GPU and CPU, or at least the engine makes better use of multiple cores.

Posted (edited)

The only thing i want from the further BOS development is a good FPS increase to at least allow for stable 60 fps in wings of liberty in all cases instead of 30-40 fps we re getting in dogfights. 30-40 fps is unplayable especially when war thunder gives me 160 fps. In shooters lags start from 90 fps lol

 

However i can guarantee 99% it will never happen. It will take no less then a complete redesign of the game's engine and the devs wont do that, rather sell more planes to us.

Buy a better video card. It runs buttery smooth on my i7 with RX 480. I get 60+ FPS in low-level furballs, with all settings cranked up to max.

Edited by JG13_opcode
Posted

Buy a better video card. It runs buttery smooth on my i7 with RX 480. I get 60+ FPS in low-level furballs, with all settings cranked up to max.

Which multiplayer server and where do you live?

 

I have a consistent framerate and perfect smoothness in single player, and on a MP server I have running on the same subnet (0ms);however, as soon as I hit a multiplayer server 200ms away, I see a considerable impact. Almost like the engine is in IO wait pending details from the server before drawing.

Posted

Buy a better video card. It runs buttery smooth on my i7 with RX 480. I get 60+ FPS in low-level furballs, with all settings cranked up to max.

I have i5 4460 + gtx 970. As for the videocard well i wont do that just for IL2 it is unreasonable for me.

 

I wish i had your fps lol. I just refuse to play right now because of it. And btw how do you know its a videocard and not a CPU?

Posted

Buy a better video card. It runs buttery smooth on my i7 with RX 480. I get 60+ FPS in low-level furballs, with all settings cranked up to max.

How? I have an overclocked 1070 and a 4690K @ 4.5GHz and while I do get 60FPS most of the time, I still get drops into the 40s on servers like Berloga or even playing single player with a lot of AI battles going on. Something doesn't add up. I play on max settings too and this isn't the only game that gives me problems. Either your eyes aren't sensitive to frame rate drops or you have a G-Sync monitor.

  • Upvote 1
Posted

True, try low level fight with Sturmoviks or bf110 (8-10 planes)

Posted

I am always at 60 fps on WOL...I can make the game run under 60 fps but on WOL I never drop below 60 fps...I play at 6270x2160 resolution also. 

Posted

 

'Compute shaders' are for doing general purpose (not necessarily graphics) parallelisable work on the GPU. It's still mainly used to do graphics effects though and is great for doing super-quick particle systems, hundreds of dynamic lights, post-processing effects, stuff like that. Again I don't know how useful it'll be for this game.

 

 

Thanks for the breakdown Schizofen!

 

In your opinion, could DirectCompute be used to process the flight model or collision detection code on the GPU?

Posted (edited)

In short, if you're expecting any sort of increases in performance (FPS) department then I'd suggest to focus your expectations in different area.

 

I really hope you're wrong and DX11 will fix our performance issues and give us better visuals but I have this sneaking suspicion that this game has a bad case of spaghetti code.

Go and find any game out there that had any sort of performance improvements when using it instead of DX9. DCS isn't exactly the best example here since they didn't simply implement DX11, they've rewritten most of that old crap that still remembered LockON Modern Air Combat (2003!). Old DCS was like CS1.6 - you can make CS1.6 to look like the latest Call of Duty, but be prepared that it will butcher each and any hardware you throw at it.

 

 

Buy a better video card. It runs buttery smooth on my i7 with RX 480. I get 60+ FPS in low-level furballs, with all settings cranked up to max.

Mate, I'm running IL2 with 5960X (8 cores) and Titan X and game still get below 60FPS at times - and I don't even use higher resolution than 1080p. It just happens.

 

 

It's Windows 10 only though, so most (or all?) existing titles add DX12 in addition to DX11 support, as otherwise you're cutting your customer base.

Or you could just use Vulkan, you know... as an added bonus to the amazing performance improvements you could run your game on multiple platforms (Windows 7+, Linux, consoles) instead of Windows 10 only (even though MS claims that XbOne uses DX12 now devs have confirmed that in practice it's not as good as it sounds as it appears that Xbox'es version of DX12 differs significantly to the point where you're working on two versions of the game anyway).

 

At the end of the day though I doubt graphics rendering is actually the bottleneck, so there will be limitations on what a change of DX version can achieve for performance. I suspect that most of the CPU is used for flight modelling and AI, so even if you removed all CPU usage from the graphics, I doubt it would have that great an effect. The other coming improvements around AI efficiency will likely do more (but the devs will know for sure).

What it would do is employ remaining 14 threads on my CPU to do some actual work as of right now they're chilling and soaking coke with ice on a hammock.

 

Mantle has shown with Battlefield 4 in the past the amazingness that can be achieved if one focus at developing with it in mind (for comparison using A10-7800 with iGPU: DX11, 1080p, low details, struggless to keep 20fps when nothing is happening on the screen, switch to Mantle and with same hardware used you're enjoying rock-solid 60fps on high details when shit is hitting the fan all arround you - I mean, the difference is too significant to overlook) - lately idSoftware has shown what they can do with it in latest iteration of Doom, and they're still learning!

Edited by Marrond
  • 2 weeks later...
Posted

In your opinion, could DirectCompute be used to process the flight model or collision detection code on the GPU?

 

Probably not, it's likely too complex to be worthwhile. DirectCompute is great for certain classes of problems, when you're running the exact same code thousands and thousands of times across different input data, which isn't really the case here.

 

Marrond is right about the CPU cores. Moving from single to multi threaded should open up massively more performance than any change to graphics API. However if your engine has been built to be single threaded, moving to multi-threaded is... non trivial shall we say (been there done that).

 

Vulkan would probably be the way to go rather than DX12 due to not being locked to Win10, but would be a massively more complex than going from DX9 to DX11. These APIs give you great wins if you're maxing out a CPU core entirely with graphics work, such as in graphically demanding games like Battlefield 4 and Doom. Here though I would think that going multi-core would be a much better use of dev time, but even then it may well be more work than they have time or budget for.

  • Upvote 1
Posted (edited)

Which multiplayer server and where do you live?

 

I have a consistent framerate and perfect smoothness in single player, and on a MP server I have running on the same subnet (0ms);however, as soon as I hit a multiplayer server 200ms away, I see a considerable impact. Almost like the engine is in IO wait pending details from the server before drawing.

WoL, I live in Canada. 90+ fps in the air, less on the ground.

Mate, I'm running IL2 with 5960X (8 cores) and Titan X and game still get below 60FPS at times - and I don't even use higher resolution than 1080p. It just happens.

nVidia cards must suck, then. I only drop below 60 fps if I'm on the taxiway with lots of other aircraft kicking up smoke. Even then, it only goes down to 55 or so.

Edited by JG13_opcode
Posted

... Mate, I'm running IL2 with 5960X (8 cores) and Titan X and game still get below 60FPS at times - and I don't even use higher resolution than 1080p. ...

That doesn't sound right?!?

 

I'm running a GTX 1080 @ 1440p and don't suffer slowdown like that.

Posted

I would try running the game without hyper threading to see if it helps. The game does not like utilizing too many threads, so go for few threads, but of a larger capacity. I guess this is a trait of DX9.

  • 2 weeks later...
Posted

 

 

For a flavour of what could be improved, some of the headline features of DX11 over DX9 are instancing

 

Dx9 also has instancing, right? What advantages does Dx11 have in that area?

Posted

Dx9 also has instancing, right? What advantages does Dx11 have in that area?

 

 

Reading up a bit it looks like DX9 did indeed get proper indexing support with shader model 3. I must have been stuck with SM2 because I remember doing it with indexing into vertex constants and duplicating data, which wasn't great. Apologies, DX9 was a long time ago...

 

From the latest dev diary it sounds like they've found some good perf improvements though, which is cool.

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
×
×
  • Create New...