Forum Discussion
unity2k
12 years agoHonored Guest
DX9 vs DX11 Performance - Warning!
This week we hit a performance issue so we started testing elements within game that could be creating the impact and lowering our FPS. Problem is what we have found does not bode well for our development, we have learned that DX11 running on UDK does not perform as well as DX9 - and it is easy to see that Epic would have no reason to fix this with UE4 in the pipeline. It is also a known issue in the Epic forums - we now know.
Had someone warned us NOT to develop in DX11 (a best practices sticky page would be a good idea), we would have built things in DX9. Except that in DX9 we don't have the same material functions, or at least that's what it looks like as the DX9 version kicks errors on the materials we've created while developing while in DX11 mode. So maybe we have to go back and redo materials, no big deal right? But what if we are developing for a moment two years out and want DX11 capability and want to maintain the hope we can migrate to UDK 4? Remember that UE4 does NOT support DX9, or so we've read.
Then there's the issue of FPS playback in different modes using the same scene, in the Editor window we see 117fps, in the Viewport at 1920x1200 it slows to 85fps, and finally in 32bit DX9 Game mode at 1280x800 it runs at 52fps. The lesson to be shared here is that when your game is running in stand alone mode (without UDK running in the background) you will get yet another FPS reading. Sorry but I've not run this exact test example, I'm basing this last statement on the fact that we change the display size of UDK and get one FPS reading, and then minimize it and get yet another reading.
I feel like we're amateurs stumbling about, but I guess that's about right.
Had someone warned us NOT to develop in DX11 (a best practices sticky page would be a good idea), we would have built things in DX9. Except that in DX9 we don't have the same material functions, or at least that's what it looks like as the DX9 version kicks errors on the materials we've created while developing while in DX11 mode. So maybe we have to go back and redo materials, no big deal right? But what if we are developing for a moment two years out and want DX11 capability and want to maintain the hope we can migrate to UDK 4? Remember that UE4 does NOT support DX9, or so we've read.
Then there's the issue of FPS playback in different modes using the same scene, in the Editor window we see 117fps, in the Viewport at 1920x1200 it slows to 85fps, and finally in 32bit DX9 Game mode at 1280x800 it runs at 52fps. The lesson to be shared here is that when your game is running in stand alone mode (without UDK running in the background) you will get yet another FPS reading. Sorry but I've not run this exact test example, I'm basing this last statement on the fact that we change the display size of UDK and get one FPS reading, and then minimize it and get yet another reading.
I feel like we're amateurs stumbling about, but I guess that's about right.
6 Replies
Replies have been turned off for this discussion
- cyberealityGrand ChampionYikes! I did not know this.
- BlackFangHonored GuestIf you are developing for 2 years out, I think you will be fine. Epic has been hinting the Unreal 4 UDK (U4DK?) will be made available very quickly after a couple of their games release with it. A select few on the Epic forums have already been given early access and begun writing tutorials. DX11 would be expected to have a larger performance hit than DX9. It is a more advanced rendering method with more advanced features such as real-time tessellation of model geometry based on heightmaps. You don't need to change your materials, just switch the renderer back to DX9 and DX11 functions in materials will automatically be disabled. It works in a similiar way that PhysX particles are turned off on non-Nvidia cards.
- kristiamoHonored GuestA few thoughts:
My tests have always shown DX11 to perform worse than DX9, though I was expecting that from a more advanced graphics implementation on the same hardware. As blackfang said, the DX11 features in materials are disabled when running DX9, and in my case, the framerate jumps up considerably.
As for migrating to UE4, I wouldn't hold out too much hope. I've heard that materials probably won't be compatible due to the change in lighting systems. So it will probably be the same amount of work converting to UE4, regardless of whether you are using DX9 or DX11 featured shaders.
The fps readings you listed are strange to me, considering you dropped the resolution and got a worse framerate. Are you sure you didn't mean 62fps? Because while the editor is capped at ~120, the game is capped at 62 by default. You can change it in DefaultEngine.ini
[Engine.Engine]
bSmoothFrameRate=TRUE
MinSmoothedFrameRate=22
MaxSmoothedFrameRate=62
[UnrealEd.EditorEngine]
bSmoothFrameRate=FALSE
MinSmoothedFrameRate=5
MaxSmoothedFrameRate=120
[UnrealEd.UnrealEdEngine]
bSmoothFrameRate=FALSE
MinSmoothedFrameRate=5
MaxSmoothedFrameRate=120 - gumgumHonored GuestHey everyone. I am a beginner, I would like to change UDK from DX11 to DX9, but in UDK the "switch renderer" button is grayed out. I also cant find "AllowD3D" anywhere in the ini files. Does anyone know what the problem is? Thanks :)
- BlackFangHonored GuestIt is DX9 by default and will not give the option for 11 unless you have a card that supports it.
- gumgumHonored GuestOh ok thanks :).
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 5 years ago
- 4 months ago