CPU PhysX Tweaks for Borderlands 2? It's Tinkering Time!

Jinx01

n00b
Joined
Apr 11, 2012
Messages
36
Decided to start this because it came up in another thread:
Is it even possible to remove certain PhysX effects? The water effects absolutely destroy my i7-950, particularly in Caustic Caverns and Bloodshot Stronghold. In both of those cases the main problem is large bodies of water that are pointlessly modeled with physX effects that do almost nothing to enhance their realism (whirlpool, caustic lake). It makes a lot more sense to only model flowing water (broken pipes), or even just skip the water altogether since it doesn't look all that real to begin with, more like weird flowing goop in most cases. I'd gladly give up exploding barrels with goo inside if it meant I could keep the fabric and particle effects enabled without game-destroying slowdowns on certain levels.
Totally agree, those two areas are unplayable with PhysX CPU due to the water effects. In fact, I do great in Bloodshot Stronghold until I reach the area with the whirlpool and pipe of water. If you could just disable fluids, and maybe reduce the quantity and lifetime of debris somewhat, the game would be great on a good CPU.

--------------------------------------------------------------------------------------


Anyway, I already tinkered with this a bit last week, but with little success.

Not sure if this will be useful to you or anyone else, but here are my notes from when I was trying before:
PhysX ideas:
search under "particle" for tweaks
(according to people in alice mr this doesn't effect physx)
search under "apex" for tweaks

TRYING OUT:
WillowEngine.ini
Engine.PhysicsLODVerticalEmitter
ParticlePercentage=100
(changing to 20 -> didn't help, might have made it worse, ridiculous number of gibs particle gibs)

WillowGame.ini
MaxPhysicsSubsteps=5
Change to 1 to simplify (works for BatmanAA)
(tried 2, it did not help; haven't tried 1 yet)

http://forums.gearboxsoftware.com/showthread.php?t=88772
WillowEngine.ini
MaxParticleVertexMemory=131972
changed to 33668 (maybe helped a little bit? didn't get to test in huge fights though)

PhysXMeshCacheSize=8
(trying at 64) (seemed to help a little bit; try higher?)
(trying at 256) (fatal error at launch)
(trying at 128) (fatal error at launch)

PhysXGpuHeapSize=128
*(trying 256) (seemed to help a good bit, some fights just fine with debris flying) (did it reset to 128?!)
(trying 512) (need to retest; didn't crash anyway)
My notes are a bit of a mess, but maybe it will give others some ideas. Sometimes it's hard to really tell, because certain areas are fine under CPU. I'd also add that I think a recent patch improved CPU PhysX a good bit already. But some areas are still unplayable. I've been looking around to see what tweaks worked in other PhysX games, and in UT3, as a start.

I'm dubious as to how much we are able to change. If we could just find someway to remove the fluid effects, though, this game would be quite playable on Medium with a good CPU (probably 6+ core or high end 4 core w/ hyperthreading).
 
Ok, I have useful infor from Gearbox... I'll Quote it from the Website it was in...
UPDATE: I did finally get an answer from Gearbox about the slow downs we were seeing on the AMD results. Apparently when larger collections of PhysX simulations are running on the CPU, those threads can take quite a bit longer than they would when running on the GPU. As a result, the CPU (and rest of the game engine code) becomes "blocked" waiting for a single thread to finish, which results in the lower CPU utilization we saw on the AMD results as well as the lower overall performance. Because PhysX is an NVIDIA engine, even if Gearbox chose to they likely couldn't add in additional multi-threaded capabilities to the PhysX code path so the slow down here is likely to stay.

So It looks like PhysX is STILL a Single Threaded Process... I feel that if it was Multi-Threaded an i5 or anything faster would yield good Results at High PhysX...

I'm Looking for Tweaks as Well, just Love Tinkering...
 
Ok, I have useful infor from Gearbox... I'll Quote it from the Website it was in...
UPDATE: I did finally get an answer from Gearbox about the slow downs we were seeing on the AMD results. Apparently when larger collections of PhysX simulations are running on the CPU, those threads can take quite a bit longer than they would when running on the GPU. As a result, the CPU (and rest of the game engine code) becomes "blocked" waiting for a single thread to finish, which results in the lower CPU utilization we saw on the AMD results as well as the lower overall performance. Because PhysX is an NVIDIA engine, even if Gearbox chose to they likely couldn't add in additional multi-threaded capabilities to the PhysX code path so the slow down here is likely to stay.

So It looks like PhysX is STILL a Single Threaded Process... I feel that if it was Multi-Threaded an i5 or anything faster would yield good Results at High PhysX...

I'm Looking for Tweaks as Well, just Love Tinkering...
Thats frustrating. Fundamentally the process is highly parallel, so the only thing holding it back is effort on the part of the coding team. I understand they want to sell GPU's, but damn if it isn't irritating. I will have to double check CPU utilization on those particular levels, but I don't see lower GPU utilization, despite the purported cause being a CPU bottleneck. Either way, it doesn't really excuse the fact that the impact is completely acceptable on particles and fabric, but completely obnoxious on fluids. Customization to reduce the fluid effects would go a long, long way in making the other PhysX effects completely playable on AMD GPU's with the simulation running on the CPU.
 
Test at Medium PhysX... It's not bad... Much less of a load... I'd say 70-80% of the particle effects are still in play (but shortened) the Fluids are present for a short time and then become a kinda mist... No lingering bobs of goo slowing ya down or running water...

Not what we where looking for but it makes it Playable on more systems and Still looks good...
 
@Pandakun:
When I run with PhysX enabled (ie med or high, low is basically 'off'), I get moderate use of all 6 cores; with it off, BL2 mostly uses just two cores. So I think it's multi-threaded, even if it's still too slow for fluids, and it is FAR better optimized than say Arkham Asylum which is unplayable without an Nvidia card if you want PhysX (and quite clearly uses only one core if you check).

The little pools of water from blood/goo aren't the issue, it's running water that accumulates over time. The running water is only in a few levels like Bloodshot Stronghold or Caustic Caverns, which become unplayable (15fps for me) in areas with flowing liquids. I can literally look at the water and watch my framerate go down from 60 to 15 over the course of about 10 seconds. Many areas are fine for me running Medium on CPU, it's just when I get physx water or sometimes excessive/ridiculous debris piling up. For example, Bloodshot Stronghold runs pretty well until I reach the big circular water area, even in some pretty intense battles.

What's sad is that the water looks stupid, and the amount of debris is ridiculous, even on medium. Even if I HAD an Nvidia card I'd want those turned off/down. Why can't they just give us some options to tweak those effects, like everything else?

OH OH OH. Here's a question, I can't check now as I'm out on the laptop but... has anyone tried leaving PhysX on but turning down other detail sliders in video options? Maybe one of those would kill the water if set low enough?

*EDIT*
Solutions to some of these issues may be HERE, I'll report back after testing.
*EDIT2* I already tried a lot of what he lists, and none of it had any effect as I could tell.

I'm a bit thrown because tweaks that work for other games like Alice 2 do not seem to work for BL2. Is it possible you have to change the default .ini files in the main game directory? (I've seen a few oddball games like that)
 
Last edited:
Ok, I'm running the Hybrid PhysX and here is what I see...
Resolution 1360 x 768 (windowed)...
PhysX on Medium during this Test...
Frameraet NEVER Dipped below 55 on either test...

With Hybrib PhysX
CPU Usage = 34%
Cores in Use = 2 (Plus 2 HyperThreads)

Disabled the GT640 in Windows...
CPU Usage = 39%
Cores in Use = 3 (Plus 3 HyperThreads)

NOTE: on RARE Occasion I would see the 4th Core and Thread have a Tint but if Use...
I'll Try this again in Caustic Caverns for a REAL Test... But that will have to wait...

Tried again... No apps running but Steam, GPUz, and BL2...
In Caustic Caverns with GT640 Disabled in Windows... So this is Just a Stock i7 3770 and an HD7850...
1360 x 768 (Windowed) All High Setting PhysX High...
CPU Usage = 40%
Cores in Use = 3 (Plus 3 HyperThreads)...
Just Being in Caustic Cavern dropped my Framerate to 30 and to 15 in Fights...

Note: Had Framerate Locked at 60... Only Afew Times did it Dip to 55 in Other Places... I'm Starting to Think Caustic Caverns needs FIXED...
 
Last edited:
The only other thing I can think of - and this is beyond me - is for someone to go into the .upk files for each level that has water and remove the files related to those, then repack it. Not sure if that would cause issues, though. I also see some .upk that may have more default game values in it.

I'd really like the thirdperson option back, too.
 
Sorry to be late to the discussion here but I think I found a way to improve the performance or rather how choppy the game feels when physx is set to medium on an i7 920 D0 X58 system. First let me say that I'm running at 3.8ghz with 6970s in trifire at 5670x1080 resolution. For the most part it feels smooth with 70 fps with most of the in game quality settings set on high with all my three 6970s reporting 90+ percent utilization. Though as soon as I set to medium physx setting gpu utilization drops and the games fps jumps from 20 fps to 60 fps. The solution I found was to enable vsync and triple buffering and set the games fps limit in-game to 22-60 fps. After that it feels very smooth though with limited fps but I can't notice unless benchmarking..

Just wanted to share that info.. Thanks.
 
another way is to disable the useless ambient occlusion, that boosted my framerates and i am running with physx on high with a gt430 hybrid

do you have a dedicated nvidia card for hybrid physx, davidm71? if not, that could be your problem too, as your 920 would be handling the physx which cpu physx is terrible for performance also
 
another way is to disable the useless ambient occlusion, that boosted my framerates and i am running with physx on high with a gt430 hybrid

do you have a dedicated nvidia card for hybrid physx, davidm71? if not, that could be your problem too, as your 920 would be handling the physx which cpu physx is terrible for performance also


That particular system does not have a dedicated physx card. I'm tempted to install one but then I would have to hybridize the Gpus and afraid i would loose stability and my 16x, 16x, 16x lanes would turn into 16x, 16x, 8x, 8x. So I'll try turning off AO if you say it's useless. I read is costs like 10 percent in performance having it on, but the whole key about limiting frames is that the CPU doesn't have to work as hard handling the Gpus and has more time to do the physx instead I think..

Thanks
 
I've been playing a lot of this game, and I have three 560ti 448's. Two are in SLI, and the third is dedicated physx.

I see physx slowdowns during heavy action even with this setup if my physx is set to high.

I see no slowdowns in either bloodshot stronghold or caustic caverns as long as I have my physx set to medium.

However, the new zone 'washburne refinery' which has no water... lags like a motherfucker. My framerate according to 'show fps' is always above 50, but it feels more like 15.

I'm also running a ton of tweaks to the ini files. Not all of which seem to work correctly. You have to remember that BL2 is actually running on an extremely heavily modified UT3 engine... So the tweaks literally may no longer be applicable.
 
I've been playing a lot of this game, and I have three 560ti 448's. Two are in SLI, and the third is dedicated physx.

I see physx slowdowns during heavy action even with this setup if my physx is set to high.

I see no slowdowns in either bloodshot stronghold or caustic caverns as long as I have my physx set to medium.

However, the new zone 'washburne refinery' which has no water... lags like a motherfucker. My framerate according to 'show fps' is always above 50, but it feels more like 15.

I'm also running a ton of tweaks to the ini files. Not all of which seem to work correctly. You have to remember that BL2 is actually running on an extremely heavily modified UT3 engine... So the tweaks literally may no longer be applicable.


Try running just two cards in sli with physx shared at automatic selection and/or try all three in tri sli with auto physx selection. I found minor choppiness on my nvidia 480 gtx rig when I had selected dedicated vs automatic physx card selection.
 
No difference running in the above configurations.
On another note, the 310.90 WHQL nvidia driver released today contains physx fixes for the UT3 engine. after work I'll give it a shot and post back.
 
Doh! Totally forgot to do it. Played a lot of BL2 this weekend so it would have been nice. I'm installing it *right* now. I'll go to washburne and we'll see if it's any better.

Edit:
Seems about the same.
On the other hand it disabled SLI on reboot and I found out my problem is microstutter, and the game feels a lot better with SLI off. sigh.
 
Last edited:
I just installed a 9800GT for dedicated PhysX to go alongside my single GTX670. I plan on playing BL2 again this w/e for the new DLC and just wanted to know if it was better to have the dedicated PhysX card or rather to let my Dual Xeon x5670's handle the PhysX load?

I've never had a dedicated PhysX processor, nor have I changed the settings in the Nvidia control panel so I have no idea what the best config is.

The game previous to installing the 9800GT has had great framerates in all but the most hectic battles with PhysX on high, should I expect improved, the same or reduced performance by dedicating the 9800GT to PhysX? I'm really clueless.
 
I'm curious to see if my 8800GTS will help with this game. I have a GTX480 and the game will run 60FPS solid with PhysX set to low; at medium PhysX it gets rough. I have FXAA and AO enabled along with other details set high; 1680×1050.
 
I've got three 560 ti 448's. Two in SLI, and a third to drive a third panel and do physx. i get slowdowns in intense scenes when physx is set to high. I do not think the 9800gt dedicated will help you. I just set physx to medium and was done with it. no more problems.

Since my discovery on monday I've also configured the profile for BL2 to use a single gpu instead of SLI. Better experience all around even though my fps isn't as high. Just smoother all around.
 
Lose AO its worthless

How can you say that? Either you don't know what AO does or you don't like a bit of added graphical realism.

Sure AO can look odd in some places but I am quick to dismiss this when I see what it adds.
 
How can you say that? Either you don't know what AO does or you don't like a bit of added graphical realism.

Sure AO can look odd in some places but I am quick to dismiss this when I see what it adds.

I think he means that the performance cost is high compared to what it adds to the whole shebang. Its a nice effect but easy to forget you don't have it when your trying to get decent fps at high resolutions.
 
*pokes* head back into thread
(before I forget, I ran across this article regarding CPU/GPU performance. Sounds like with a good Intel CPU PhysX on CPU might be doable.)

The AMD TressFX thing got me thinking about PhysX again... I'm hoping TressFX has options that will allow you to run on CPU, adjust it, and let Nvidia users run on GPU if possible. Which made me think...

Why hasn't someone made a "PhysX Tweak Utility"? Maybe with profiles for each game. There are lots of PhysX/Apex cvars in the Borderlands 2 .ini files, but none of them actually seem to function. I'm suspecting they *could* be altered, though, by someone who knew what they were doing - either globally or on a per-game basis. (imo Nvidia should provide a tool like this or in-game options themselves grrrrr)

Something as simple as changing the "giblife" or "maxdebris" or "maxparticle" type of variable would let someone playing CPU or a weaker Nvidia card set it to something more reasonable. I mean, PhysX effects are so ridiculous I would turn some of them down anyway, like the debris amount with looks ridiculous sometimes. At the minimum you could set it so you got some particle effects that disappear on their own (like gun sparks and weapon gore), which are a good bit of the best effects anyway.

Alternatively, do you think someone could use The PhysX SDK to create modified game DLLs with CPU-friendly settings?

*edit* Just tried Bloodshot Stronghold with PhysX on Medium. Wanted to try it with RadeonPro's Dynamic Vsync, and run FXAA through that, to see if it helped. It didn't lol. In fact, I swear there are more particles than there used to be, and the whole thing ran like total crap. After, I took shots of my CPU/GPU desktop widgets. Here's what they looked like (ignore last part of each graph, that's from when I went back to desktop obviously):

bl2physxmedbloodshotstrong.jpg


It seems to be using all 6 cores, but none over around 60%. And the GPU itself is nowhere near full load, even though I was getting under 20fps much of the time.

Didn't get the fps here, but it was going from 15-35, and felt very choppy. The debris, like over where that guy is standing, just seems to keep piling up and never fade away like you would expect.
 
Last edited:
8800/9800/250 are too weak for physx HIGH on borderlands2

With New ATI and Nvidia drivers i can run BL2 with Vsync ON and never drop a frame now.
ATI 13.2 beta and Nvidia 314.14 using the new Hybridiz method
 
What I don't really get, running 3 x 680 4GB cards, are the games that have physx but it is CPU-only physx, while I have plenty of card to handle GPU physx. Why do these developers hardcode to CPU physx even if Nvidia Physx is available and selected to one of the cards?
 
Back
Top