We do often include affiliate links to earn us some pennies. See more here.

Tweaking Performance in XCOM 2

By -
When Firaxis chose to use Unreal Engine to power their latest title, XCOM 2, they chose to stay on the older version 3 of the engine instead of the latest, and fully Linux-compatible, version 4. It seems that when they brought XCOM: Enemy Unknown to the masses, they'd hacked that version 3 engine so much, it was practically an entirely new fork. Porting all their customisations to the newer engine would have been daunting, so they decided to stick with that customised engine for XCOM2.

However, this has brought some hangovers from that earlier version with it, hangovers that Feral left in place during the porting. In particular, many titles using UE3 suffer from an extremely low default memory allocation. In fact, the default PoolSize is set at just 10Mb, and I suspect that Feral have to leave it that way to ensure maximum compatibility. In fact, besides Poolsize, you can tweak quite a few settings in your game's ini file, but as usual, it appears that PoolSize is the primary factor in smoothing out the performance. Original credit to this tester for Unreal Engine 3 here from 2013, regarding the original XCOM game.

Having tried these changes myself, I can report that performance leapt from "frustrating and shoddy" to "entirely playable". There is still a little stutter evident in the loading transitions while in the dropship, but in-game performance is definitely a huge improvement. I'd go as far as to use the phrase "buttery smooth". No more slide-show explosions, or missed action-shots.

Here's what you can do.

Important Note: We suggest reverting these changes for any patches that come, as it could affect them. Always revert changes like this when a patch is released.

Before making any changes, you might want to make a copy of your file, then you'll need to open it for editing:

cd ~/.local/share/feral-interactive/XCOM2/VFS/Local/my\ games/XCOM2/XComGame/Config
cp XComEngine.ini XComEngine.ini.original
gedit XComEngine.ini


And then find the PoolSize=10 line and change it to something more reasonable, such as 256.

If you just want the quick fix, you can skip this section, however as the more detailed article points out, you might want to change the following lines too. I did, but it's not entirely clear how much they contribute. Feel free to experiment!


MipFadeInSpeed0=0
MipFadeOutSpeed0=0
MipFadeInSpeed1=0
MipFadeOutSpeed1=0
MinSmoothedFrameRate=30
MaxSmoothedFrameRate=400
bInitializeShadersOnDemand=True
DisableATITextureFilterOptimizationChecks=False
UseMinimalNVIDIADriverShaderOptimization=False
PoolSize=256 (or VideoRAM/4, up to 768 max)
bAllowMultiThreadedShaderCompile=True
ThreadedShaderCompileThreshold=4 (match your CPU cores, so an i3=2, while i5 or i7=4)
OnlyStreamInTextures=True


Having made the changes, the first thing that XCOM 2 tries to do is set it all back to default values again, so you'll need to mark that file read-only:


chattr +i XComEngine.ini


(actually, you might want to make that change with sudo so that root owns the file, preventing XCOM 2 from changing it back - some users reported that XCOM 2 does indeed "undo" the read-only flag!)

And that should be the game fixed up for immediate play!

As always, there are a lot of systems out there that will handle these changes differently, so your mileage may vary. Remember to mark the file read-only before playing and if you still don't see a change, try the "reset to defaults" trick mentioned in the original source article.

For reference, my system specs are:

O/S: Ubuntu 14.04 64bit
GPU: Nvidia GTX670, 2Gb
Chip: Intel i7 2600k
RAM: 16Gb

I used the 256Mb PoolSize as shown above, but could have gone 512Mb, as the original source article suggested "GPU memory divided by four". I used the ShaderThreshold 4 as shown above.

If you don't know your video memory, you have two options. If you're using Nvidia, you can simply run the Nvidia XServer Settings GUI (and I think Catalyst drivers might have a similar option actually). Otherwise, you can run:


dmesg | grep VRAM


That will hopefully show you how much RAM your computer detected on start up.

Good luck, Commander! Article taken from GamingOnLinux.com.
0 Likes
About the author -
author picture
I'm Neil, an avid Linux user since 2006 and a Linux-only gamer since 2013. I used to contribute to GOL's Funding Crowd articles, but now contribute the odd article directly, most recently the Play It Now series, and the IYL articles.

I also occasionally dabble a bit in Python, I do Internet Security for a living and finally, I'm a big fan of Neil Degrasse Tyson. And not just because he has a cool first name.
See more from me
The comments on this article are closed.
30 comments
Page: 1/3»
  Go to:

Xpander Feb 9, 2016
ha.. it actually made perf worse for me.
dropped from 30 fps to 20 in the mothership (command hub)

AMD FX8320@4,4ghz, GTX 970.

didn't check into battle because was turned off by the perf drop in the command hub.

so i probably wont need this tweak, for me it runs solid 40-70 without those tweaks also, everything set to high, AO tiled, depth of field off, bloom off, 1080p


Last edited by Xpander on 9 February 2016 at 3:57 pm UTC
bollox83 Feb 9, 2016
Really noticeable improvement here. I haven't measured frame rates, but the stuttering is almost entirely gone with these changes.

Ubuntu 15.10
Intel i5 2500k
GTX 970
Renzatic Gear Feb 9, 2016
I found this a couple days back, and it made a MASSIVE amount of difference for me, from unplayable, to perfectly fine with everything up, save texture detail, which I have to set to Medium to prevent stutter, even with the .ini tweaks.

According to the ingame FPS counter, which you can access from the Feral launcher by going to the Advanced tab, entering -showtestpanel, then enabling it in the new tab that shows up immediately to the right of it, I'm getting a consistent 45-50 FPS in mission
Liam Dawe Feb 9, 2016
@xpander, you're using a beta though arent you frome what I saw in the IRC?
harleywastaken Feb 9, 2016
in-mission the engine tweaks helped a great deal; the beta patch helped to a lesser degree (with engine tweaks off). i'd love patch notes for the beta patch. performance outside missions is still atrocious, along with the abysmal after-mission load times and OpenVPN/networking launch issues. i saw no "performance regression" with the 361.18 drivers compared to 35x.xx.

i'd also like to know why MSAA is missing from the Linux version completely, and i'd love more info on Windows vs Linux graphics/driver issues/differences, but that's mostly because i'm a nerd, not to complain about it.

that being said, the fact that Feral has a beta performance patch out before the Windows version is... i don't even know the right word to use. their support is (still) great; i remember working with them when EU/EW came out to get the (same as XCOM2, sigh) networking issue fixed.

great job so far (again), Feral!


Last edited by harleywastaken on 9 February 2016 at 6:10 pm UTC
linux_gamer Feb 9, 2016
Quoting: scaineAnd then find the PoolSize=10 line and change it to something more reasonable, such as 256.
Poolsize issues are quite common with the Feral ports (Spec Ops: The Line eg.), though it is not too hard to get appropriate values by the command line, as described above. Why are the sizes set to values which don't even come near to the minimum settings (1024/4=256>>10) ?
Liam Dawe Feb 9, 2016
Quoting: linuxgamer
Quoting: scaineAnd then find the PoolSize=10 line and change it to something more reasonable, such as 256.
Poolsize issues are quite common with the Feral ports (Spec Ops: The Line eg.), though it is not too hard to get appropriate values by the command line, as described above. Why are the sizes set to values which don't even come near to the minimum settings (1024/4=256>>10) ?

Spec Ops is VP, not Feral.
nocri Feb 9, 2016
Really nice ! Although the game crashes on my i5 with 4 threads, but with 2 works just fine :) thanks.
Teodosio Feb 9, 2016
20FPS -> 40FPS

Thanks!!!! :D
Uncleivan Feb 9, 2016
Heck where can i get the beta patch? Feral software has no patches released still


Last edited by Uncleivan on 9 February 2016 at 8:04 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.