Jump to content
The Lotus Eaters: Share Bug Reports and Feedback Here! ×
The Lotus Eaters: Known Issues ×

Warframe Rendering Threads


Uberplayer
 Share

Recommended Posts

Warframe really need to use more rendering threads. In reality it is using only 3 threads for rendering. That means if i restrict warframe to only use 3 cores, fps doesn't change at all. Fps should change as i have only 30% gpu usage. According to process explorer warframe is using multiple threads but not for rendering. For rendering it is using only 3 as seen on image.

warframefcuax.png

 

As it is now i'm really cpu limited in this game, because it is not using available threads of cpu.

Other game do better job of multithreaded rendering.

 

Battlefield 3

battlefieldbvuu6.png


 

Grid Autosport

autosport55uc0.png

 

Best multithreaded rendering i have seen. Almost no cpu usage and fully gpu bound.

Sniper elite 3 Mantle

sniperelite2nucb.png

 

Link to comment
Share on other sites

I agree with you on warframe needing tweaks on the rendering pipeline. What in-game video options were you using to get only 30% gpu usage tho? All at minimum or all at max?

I speculate that the high CPU peak in warframe is due to the heavy usage of Occlusion Culling techniques when they are not needed and might actually negatively impact performance on some systems with non-optimal cpu. Speculation tho.

While a redistribution of the workload on multiple processors could help alot, my guess is that most of the performance concerns in warframe are due to overoptimization (cpu that helps "too much" the gpu, very crudely said).

 

I think that a buttom to turn off some intensive cpu-side optimizations such as OC so that warframe ends up relying more on the gpu horsepower is long overdue.

 

Other thing, if a game has close to no cpu usage and entirely relies on gpu then it has the opposite problem: it is not optimized at all which is equally bad.

Edited by dadaddadada
Link to comment
Share on other sites

I used max settings, SMAA, Depth of field, Bloom and Motion blur turned off.

 

When are thing done cpu which aren't effective on cpu you end up with game that doesn't run good even on powerful gpus unless you have really powerful cpu. Prime example of that is GTA IV (shadows on that game was done by cpu if i remember correctly)

So better mutlithreding and moving things on gpu should help with performance.

Edited by Uberplayer
Link to comment
Share on other sites

I checked it in dojo (only player in dojo) , because i get higher gpu usage in dojo than in normal game with other players.

With my previous setting i get 46% gpu usage, with max settings 53% usage. You were right that these setting are gpu intensive but even with everything max it is nowhere near full gpu usage as I'm cpu limited.

Link to comment
Share on other sites

Keep in mind Warframe is a DX9 based game. Multithreading would be a lot better if Warframe could use the DX11 API exclusively. As it stands DX9 isn't the best for multithreading. I imagine the devs do as much as they can with DX9.

 

Mantle isn't a fair API to use as it was built specifically for multithreading. DE however don't create DirectX.

 

Differences between Direct3D 11, 10 and 9:
 
-Direct3D 11 defaults to mostly thread-safe and continues to allow applications to opt-out using D3D11_CREATE_DEVICE_SINGLETHREADED. If applications opt-out of being thread-safe, they must adhere to threading rules. The runtime synchronizes threads on behalf of the application allowing concurrent threads to run. In fact, the synchronization in Direct3D 11 is more efficient than using the thread-safe layer in Direct3D 10.
 
-Direct3D 10 can support the execution of only one thread at a time. Direct3D 10 is fully thread safe and allows an application to opt-out of that behavior by using D3D10_CREATE_DEVICE_SINGLE_THREADED.
 
-Direct3D 9 does not default to thread safe. However, when you call CreateDevice or CreateDeviceEx to create a device, you can specify the D3DCREATE_MULTITHREADED flag to make the Direct3D 9 API thread safe. This causes significant synchronization overhead. Therefore, making the Direct3D 9 API thread safe is not recommended because performance can be degraded.
 
Link to comment
Share on other sites

There has been games with great muthithreading supporting booth dx9 and dx11. For example Crysis 2, Far cry 3, blood dragon, games done on ego engine (dirt 2, dirt 3....), tomb raider....

 

Here is screen from Far cry blood dragon on dx9 with good multithreading.

fcbddx9gluyc.png

 

So it certainly can be done.

Edited by Uberplayer
Link to comment
Share on other sites

Multithreading isn't a 'thing' where you flip a switch and get good multithreading.

 

Rome 2 is a DX11 game, yet it runs almost entirely on a single thread. Dying light has just come out and it too runs almost entirely on a single thread, and it is a DX11 exclusive game if im not mistaken.

 

The way the game functions needs to be considered. Just because Far-cry can utilise successive cores does not make it "Good" multithreading. Very little happens in Far-cry (relatively). It's an open world and the core usage is probably the engine doing a lot of background streaming/Data management wherein the overhead is tolerable.

 

Warframe has lots going on that the game engine needs to keep track of. So hitting that overhead will hurt them more than they will gain.

 

Besides, it's not as if Warframe isn't becoming more threaded. Patients.

Not everyone has a high-end PC with 8+ cores and a top of the line GPU. Most of the userbase still have 2-4 core CPU's and lower end GPU's.

Link to comment
Share on other sites

I'm not saying that it is simple thing to get good multithreading. I just want them to use all cores of cpu, because not everyone have intel cpu with high single core performance. It would help mostly people with lower end cpus like amd cpus. Its not like that cannot be done as consoles have 6 cores reserved for game and on pc it run only on 3. I know i know, different api but it is not impossible to done it on pc.

Link to comment
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
 Share

×
×
  • Create New...