Something needs to be done about the performance of PhysX in Borderlands 2/TPS and that’s what my goal is. I have spent the last 6 weeks doing a ton of research into the way PhysX works and the CPU/GPU utilization aspect of it and Ideally I would like to hire someone to work on the PhysX aspect of the game since i am not proficient in coding, and in the meantime, I am learning how to do this myself.
Specifically, I want someone to decode and edit the .dll and the .bin files in the game directory and change any calls or strings and maybe some float lines to make fluid and particle effects work better on multi threaded hardware. The end goal is for me and everyone else to finally have a fix for the low fps when PhysX is being utilized. I will be updating this thread as I come across more info.
I believe some of the .dll and .bin files in the game directory hold the code that is overriding any important INI tweaks that are made. I want to change the lifetime of particles AND SPH fluid effects since no PhysX ini tweaks work besides “MaxParticleResize”. Eventually If I come up with a tweak that fixes PhysX for me, I will release it to everyone else so our FPS can stop being held down.
Back in 2013, I had a GTX 680 classified and a I7 920 @ 4.4GHz. I was able to run Borderlands 2 with no problem 60 + fps on the highest settings while on 1920 X 1080. Fast forward to now, I have a GTX 1080 Classified oc’d with a I7 5930k oc’d to 4.6ghz and I am unable to maintain that same 60fps @1920 x 1080 with better hardware while fluid and particle effects are being used. It’s most evident in, but jot limited to Bloodshot Stronghold when I am using my DP Unkempt Harold(DPUH) and fighting enemies with fluid effects around while the DPUH is kicking up solid particles. My FPS is 120 when there is no liquid or particles. I have used a lot of ini tweaks but none of the important ones work besides maxparticleresize but that does not affect the lifetime of the particles or the fluid effects.
I find it unacceptable to lower or disable PhysX as IMO it adds a lot to the game in terms of things like oh…you know…fun. I’m seeing posts all over the Web on how people with triple sli 980s, 1080s, and dual titan setups are having the same problem. Neither Gearbox or Nvidia are working on fixing this issue so I feel it’s time to do something about this and I am going to try my best to get PhysX working as it should because this is my favorite game. If this works for Borderlands 2, I will try to optimize The Pre-Sequel as well.
A lot of people who are using monitoring software are reporting very low CPU/GPU usage even when PhysX effects are intense. What is going on?
Back during release, Nvidia and Gearbox boasted that the PhysX runs great on Borderlands 2 and that we wouldn’t have the issues we at undressed having now. It’s not like it’s a month after release. The game came out 5 years ago. I think it’s safe to say we won’t be getting help from anyone at Nvidia or gearbox.
Here is a very interesting article about PhysX in Borderlands 2. It’s from PhysxInfo.com and apparently the person (Zogrim) who made the article spoke to the devs that worked on Physx and this is what he had to say.
“First thing I did after the release – I have asked the PhysX content team, who has worked with Borderlands, if game using APEX – it is not. Just default PhysX Cloth and PhysX Particle System implementations. So those settings have no use”
EDIT 1: I’m sure it’s been mentioned a few times but I want to share a link to an excellent guide on how to tweak Borderlands 2 and Borderlands TPS to look better. The guide is mostly for people that have more powerful PCs but if you know a thing or two about INI tweaking, you can set the parameters lower according to your systems capabilities. FYI, the only tweak that doesn’t work on Borderlands 2 is “Physxlevel=3” For Borderlands 2, a Physxlevel of 0 is low, 1 is medium and 2 is high. The Pre-Sequel has an extra setting of Very High. More food for thought on the subject.
[Borderlands 2 and TPS tweak guide]
EDIT 2. I figured out after playing with reshade and sweetfx that if you use the sweetfx configurator to install sweetfx with the “install sweetfx” button, it will install 2 fIles that will prevent PhysX from being loaded to your GPU properly which means that your CPU will be computing any PhysX calculations instead. Those 2 files are dxgi.dll and dxgi.fx, if you are using sweetfx, delete those 2 files in your game folder where the main executable is. They are associated with direct x 11 or 10 but borderlands 2 is direct x 9.
Apparently there is a Windows 10 compatability issue with borderlands 2. I messaged support and got the generic " borderlands 2 is not supported in Windows 10 message" reply. I gave the rep a lot of good links and info on this issue too. I expected to hear more about what is causing PhysX to slowdown.
Also I am seeing posts pointing to a specific patch/ dlc in Borderlands 2 as a cause of the poor performance however I have doubts because the same thing happens in The Pre-Sequel.
A user known as “V” on the Nvidia forums has this to say in a thread (link below) about PhysX slowdowns on high end hardware.
“I actually had a dialogue with Gearbox, the developer of this game, and Nvidia regarding PhysX issues years ago when Borderlands 2 just came out. We even made a specific tool to find issues with PhysX in the game and sent it to Nvidia for further testing. What ultimately happened was that Nvidia didn’t care enough, and Gearbox couldn’t fix it. Our short conclusion was pretty much this: This game is not well optimized for modern hardware. We had some technical reasons of course, but it’s been years and I don’t remember the specifics. I vaguely recall it being something about the cores and threads and not actually the GPU.”
EDIT 3: Just added another GTX 1080 classified so I can SLI this game because I am desperate. ■■■■ MY LIFE! It runs worse than on 1 card. I should not be surprised since this is an old game. With 1 GPU, at 3840 by 2160, I get about 50fps standing still. Now with SLI, I get 12 fps standing still. I don’t know what else to do.
For anyone interested in enabling the built in PhysX Benchmark, see my video below
and follow this steam guide