Borderlands' terrible framerate on Windows 10 systems compared to Windows 7/8.1

Hello, Internet.

I’m sure that a great many of you are currently annoyed with 2K’s policy that Borderlands and Borderlands 2 are currently not supported on Windows 10, despite the fact that the games run on this OS and that 2K continues to sell them on Steam without any support. (http://support.2k.com/hc/en-us/articles/206288558-A-Note-About-Windows-10-Compatibility-)

Like some of you, I’m also affected by what’s very likely a software problem. On my system, Borderlands runs at 35-60 frames per second with all details maxed out on Windows 10 Pro 64-bit, while on Windows 7 Pro with identical driver versions and the same game install, I’m seeing a minumum of 60fps most of the time, with maximums of 100fps. I see similar behaviour from Borderlands 2, and Windows 8.1 keeps the game performing at Windows 7 levels as well. I never played BL1 on Windows 8.1, take note.

All this on a lowly machine with:

  • AMD Athlon X3 445 3.1GHz
  • MSI 970 Gaming
  • AMD Radeon R7 265 2GB GDDR5
  • Crucial MX500 240GB SSD
  • Corsair VS550 PSU

Now, I’m aware of a particular bug in the DirectX 9.0C implementation on Windows 10 that limits the total size of a virtual memory pool to 4GB. Borderlands was developed for a 32-bit OS environment, and back then you had to create a virtual memory pool using PAE extensions to get around the 32-bit memory address limit. For some reason, the DirectX runtime on Windows 10 hard codes the size of this memory pool to 4GB. Microsoft is not in the habit of fixing old bugs that affect game performance for anything on Windows that isn’t from their first party studios, and they’re certainly not fixing this one. Foresight isn’t one of their strong points.

This is the original bug report filed for DirectX 9.0 when developing applications using that API on Visual Studio: https://connect.microsoft.com/VisualStudio/feedback/details/1263324/gpu-memory-allocation-limit-on-directx9-windows-8

This is the relevant thread that brought up that bug report again last year: https://answers.microsoft.com/en-us/windows/forum/games_windows_10/eta-on-windows-8-10-dx9-memory-allocation-issues/94f56a72-a0cf-4169-a8b3-de753182175e

Those of you who play Skyrim with the ENB mod on Windows 8.1/10 will probably be able to relate, because the ENB dev had to go through the trouble of writing a tool to figure out what the virtual VRAM pool was for systems running Windows 8.1/10.

You can download that tool here: http://enbdev.com/download_vramsizetest.htm

Related: https://forums.geforce.com/default/topic/863242/geforce-drivers/-request-remove-4gb-limit-of-vram-for-dx9-games/1/

Additionally, I’ve seen guides online before that suggest reducing the quality of shadow maps to increase performance on weaker systems back when Windows 7 was still shipping. There’s a possibility that the DirectX runtime on Windows 8.1 defaults to using plain old DX9.0 instead of a feature-level compliant run level under DX11. It’s possible that the feature-level implementation reduces the maximum size of shadow maps to 2048kb instead of a maximum of 4096kb, and the way the Willow engine runs tries to always submit shadow maps in 4K even when the final render might use a lower quality shadow map. I somewhat confirmed this when testing on Windows 7 last year sometime, because dropping shadow maps from 4K to 2K had no effect on the framerate. I had to drop to 512k to see any significant performance improvement.

Related: https://www.gamedev.net/topic/615438-discrepancies-in-maximum-texture-size/

I’d like to get to the bottom of this, and I need this community’s help with that. If you have any workarounds that you can share that brought performance back up, please share it. BL and BL2 are in a pool of games that just typically run slower on Windows 10, and a lot of them also happen to be running on UE3 as well.

It’s worthwhile getting to the bottom of this in the interests of game preservation, because no-one is going to want to install an OS that’s more than a decade old just to enjoy Borderlands.

I can offer an instance of BL2 running fairly well in Windows 10. Where do you want to start? Related hardware? Game options? Unrelated hardware? System options?

Here are those parts on my rig:

  • Intel Core i7 5820K 3.3GHz
  • ASUS Sabertooth X99
  • Gigabyte Geforce GTX 980 Ti
  • Intel 750 Series 400GB SSD
  • Corsair RM750X PSU

I don’t have all the details maxed out (although I do have Physx turned on high, the rendering engine set to Cinematic, and play at 2560x1440). It typically runs between 60 to 165 frames per second (it’s capped at 165 because I have G-Sync enabled, and my display tops out at 165). I can bring it to a crawl (30 FPS) if I abuse certain types of Physx, but maybe we should start by standardizing some scene or action with which to compare notes? Anecdotal evidence about framerate performance is going to introduce a huge margin of error. What’s a scene you can reproduce that drags the framerate down to an unacceptable level?

1 Like

At the moment, Borderlands’ major issue is with the lighting engine. BL2 I’m not concerned with just yet, but I do see people on reddit having frame drops and swings just as drastic as mine on BL1.

I have areas in the beginning of the game in Fyrestone that are repeatably bad, and the most taxing parts of the game framerate-wise are in the beginning sections of the main campaign, the Zombie Island of Dr Nedd, and the General Knoxx DLC.

I will have most details soon, but I’m ironing out the details first for people to use as a comparison, and then I’ll share what I have so far.

I made this thread a while back:

It has a good bit of information on the problem I’ve had, too. Feel free to ask me to test more things, if you’d like.

1 Like

Hi, I think I might have found a solution. At least it worked for me. I disabled the Max Framerate in the “WillowEngine” data. The guy in this video actually gives a pretty good description how to do it. https://www.youtube.com/watch?v=rAxl0LhOFXo You’ll find the data in the “documents” file --> “mygames”–>“borderlands” -->“WillowGame”–>“Config”, then double click “WillowEngine”. Search for smooth: type in “FALSE” instead of “TRUE” and set both “MinSmoothedFrameRate=” and “MaxSmoothedFrameRate=” to"0". This will disable the Framelock. Hope it helps you as well as it did help me.

Btw. I use Windows 10 with I7 4790k, a GTX1080 and 16gb ddr3 ram. I had the issue that the frames were maxed out at 62 fps. Now I’m getting up to 250

Smoothed framerate will do that, yeah. Probably the worst idea UE3 had, making the max anything besides -1, which will let it smooth up to any framerate. Though you might get better performance in general without the smoothing, like with that change. I’m not sure what the engine does to “smooth” the frames though.

Also, this change works on any other game running Unreal Engine 3, given that they actually have the option in use in the first place, also given you know where the ini files are.

That’s a weird fix… I’m not at my computer at home (Win 10) to check, but I haven’t seen that issue; I’m curious to see if I have it set or not (and if not, what effect changing it would have).