Jump to content
[DE]Glen

Experimental Physics Optimizations

Recommended Posts


TL;DR: Pink Fluffy Unicorns Dancing on Rainbows.

 

We have been working on some changes that will improve frame rate by optimizing how we simulate physics objects in the game (player and enemy movement, ragdolls, projectiles, etc). Local testing failed to turn up any problems so last week we deployed them to PC; unfortunately we ran into some rare crashes we couldn't figure out quickly so we had to yank them out before the weekend.

 

On Friday we ran all kinds of crazy stress-tests to try to find bugs in the optimizations; we ran a 2-Core/HT laptop for hours, we made a workstation fake how many cores it has, and tried all sorts of ways to change things up to shake bugs out. Some volunteers from the community even tried process CPU affinity hacks and brutal frame-rate limiters without reproducing any problems.

 

There's actually two parts to these changes:

 

First, if you have a dual-core system (no hyper-threading) we actually disengage some of the threading infrastructure to avoid contention with the draw or simulation threads -- this change was re-enabled in Hotfix 16.4.9 this afternoon and is pretty safe. If you have a dual-core system you might feel it run a bit smoother -- the frame-rate might be more consistent.

 

The second half of the optimizations change the way we process physics tasks on Quad-Core and better systems (including Xbox One and PlayStation 4). I'm personally very excited by these changes because I measured a 5ms frame-time improvement in an Earth Excavation stress-test benchmark I was running on Xbox One -- (To hit 60FPS you only 16.6ms to generate a frame so 5ms is pretty huge).

 

After being burned last week by unanticipated problems we were gun-shy about enabling the second half of the optimizations today; what we decided to do instead was release them behind a secret configuration variable you can enable. We couldn't expose this as an in-game setting because some of the crashes we saw were players just loading up the game -- we suspect some aspect of their avatar's cloth or jointed attachments were crashing before they could even login.

 

If you have a Quad-Core or better and like to live dangerously, here's how you can help:


  • Quit Warframe before starting

  • <Windows-Key + R> to Run, Open %LOCALAPPDATA%\Warframe

  • Edit EE.cfg in a text editor (Notepad is fine)

  • Under [Windows_Config,/EE/Types/Base/Config] add this line: Physics.UseJobs=1

  • Save the file, launch Warframe, and enjoy.


If you run into trouble you can remove that line and it will revert to usual behavior. What we are most interested in is crashes that you ONLY get with the optimizations enabled -- if you want to help please note the WAR-number of your crashes and try switching off UseJobs to see if you can get prove that it only happens with the optimizations enabled.

 

Note: if you totally screw up your EE.cfg you can just delete it; the game will make a fresh one (but will reset some of your settings).

 

We suspect the problem is related to cloth and jointed pieces of equipment --  Mirage with Hall of Mirrors is a good way to get a lot of dangling bits on screen and Nekros' Mortos Binds are pretty busy as well. Don't forget your Syandanas and Sugatras -- they count, too. You could also try stress-testing with Mag's Pull or other abilities that make ragdolls.

 

Finally, if you don't know what a WAR-number is, here's where you'd find it:

 

pBAJbHt.gif


 

Thanks for reading and good luck -- we're hoping someone out there can help us find the missing link.

 

  • Upvote 55

Share this post


Link to post
Share on other sites

So tl;dr if i have a quad core processor and i want a better performance i can enable the option in the EE.cfg but i have to expect crashes if i do it?

Edited by .-KG-..-Ragulab-.
  • Upvote 4

Share this post


Link to post
Share on other sites

Neat. Will try it out when I get home from work today.

My laptop is a bit crummy, so I'm interested to see how much oomph this optimization gives.

  • Upvote 4

Share this post


Link to post
Share on other sites

Will try this now.  

 

I guess an infested survival mission would help since it's a lot of spawning.  Or a T3/T4Surv...

Share this post


Link to post
Share on other sites

So tl;dr if i have a quad core processor and i want a better performance i can enable the option in the EE.log but i have to expect crashes if i do it?

 

There's a chance that it might crash. A small chance, given how many people have been trying to reproduce this bug without success.  More the point is hoping there's people in the community that will be willing to take a (small, mildly annoying) hit for the team to help figure out what's going on.

  • Upvote 5

Share this post


Link to post
Share on other sites

Experimental Physics ~ Yay!!  I vote for bullets moving a 99%c, so they hit with the mass of a frickin' PLANET!!!  Take that, Salad!!!  BLAM!! BLAM!!

 

 

 

Or.....is that.....not what you meant.......

  • Upvote 12

Share this post


Link to post
Share on other sites

I guess an infested survival mission would help since it's a lot of spawning.  Or a T3/T4Surv...

 

Maybe going to a relay will be a good test as well.

  • Upvote 1

Share this post


Link to post
Share on other sites

So tl;dr if i have a quad core processor and i want a better performance i can enable the option in the EE.cfg but i have to expect crashes if i do it?

 

EE.cfg not *.log but other than that what Momaw said^^

Share this post


Link to post
Share on other sites

TL;DR: Pink Fluffy Unicorns Dancing on Rainbows.

 

LOL, that's why you are the best Glen XD

 

 

Not apt for brony-haters :P

 

 

 

 

  • Upvote 6

Share this post


Link to post
Share on other sites

But warframe is already optimized ;-; on PC at least...

there's still a lot of bottlenecks that can be worked on.

and by all means.

- - - - -

still unable to cause Crashing on purpose, even though i should be a prime candidate for crashes based on the people that have been crashing.

  • Upvote 2

Share this post


Link to post
Share on other sites

I like this kind of dev post. MOAR!

 

I like optimization, and my potato PC too. MOAR!!

 

I like this game's physics & ragdoll.MOAAAAAR!!!

  • Upvote 6

Share this post


Link to post
Share on other sites

I do see an improvement with rag-doll FPS.  It is a lot smoother.  I never had FPS issues with rag-doll effects but they were choppy looking.  Now I can see the infested bounce fluidly all over the place. 

 

I'm going to test Excal's Ex. Blade combo that causes rag doll and also his Slash Dash. 

 

Edit:  Could just be me but, enemies do hit the ground smoother.  It's less choppy after the initial knock down.  Sometimes enemies would bounce up and down then proceed to get it.  Or clip through the floor.  Weird stuff.  

 

Also Excal's combo literally makes a heavy gunner shoot up as if he was hit by a Mike Tyson Uppercut.  

 

No performance issues in relay.  Overall I'll keep the config in use.  

 

Simple specs:  AMD Phenom X4 + GTX 9XX 

Edited by Ishki88
  • Upvote 1

Share this post


Link to post
Share on other sites

Question, I'm trying this tomorrow. I guess EE.cfg is shared between the Steam Version of the game and the Web version of the game? (Have both installed, I just use Steam for pure convenience). Just so I know if I need to update the other version as well.

Share this post


Link to post
Share on other sites

Found in EE.cfg those lines:

GRAPPLINGHOOK={}
GEAR_HOTKEY_0={
    {
        key=EN_T
        inputMode=IM_NORMAL
        invert=0
        deadzone=0
        scale=1
        povAxis=PAT_UNUSED
    }
 
I wonder...

Share this post


Link to post
Share on other sites

Maybe going to a relay will be a good test as well.

The OP mentioned that certain types of cloth attachments may be causing crashes, so going to places where lots of other Tenno are would probably be a very good way to test it. More Tenno means more Warframes decorated in different ways, so a higher chance of encountering the problematic ones. Of course, this is just my interpretation of a guess the OP made so take that with a grain of salt.

Share this post


Link to post
Share on other sites

-snip-

a Grapple hook feature was worked on for a good while a ways back, including showing it in a Devstream or two.

it's been quite a while, can probably assume it's been scrapped.

  • Upvote 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...