Uberplayer Posted February 8, 2015 Share Posted February 8, 2015 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. 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 Grid Autosport Best multithreaded rendering i have seen. Almost no cpu usage and fully gpu bound. Sniper elite 3 Mantle Link to comment Share on other sites More sharing options...
dadaddadada Posted February 8, 2015 Share Posted February 8, 2015 (edited) 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 February 8, 2015 by dadaddadada Link to comment Share on other sites More sharing options...
Uberplayer Posted February 8, 2015 Author Share Posted February 8, 2015 (edited) 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 February 8, 2015 by Uberplayer Link to comment Share on other sites More sharing options...
dadaddadada Posted February 8, 2015 Share Posted February 8, 2015 (edited) I used max settings, SMAA, Depth of field, Bloom and Motion blur turned off. mmh could you try checking back gpu usage with everything turned on? Those are the most gpu-intensive options. Edited February 8, 2015 by dadaddadada Link to comment Share on other sites More sharing options...
Uberplayer Posted February 8, 2015 Author Share Posted February 8, 2015 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 More sharing options...
MillbrookWest Posted February 8, 2015 Share Posted February 8, 2015 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. https://msdn.microsoft.com/en-us/library/windows/desktop/ff476890%28v=vs.85%29.aspx Link to comment Share on other sites More sharing options...
Uberplayer Posted February 8, 2015 Author Share Posted February 8, 2015 (edited) 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. So it certainly can be done. Edited February 8, 2015 by Uberplayer Link to comment Share on other sites More sharing options...
MillbrookWest Posted February 8, 2015 Share Posted February 8, 2015 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 More sharing options...
Uberplayer Posted February 8, 2015 Author Share Posted February 8, 2015 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now