Fixing the Broken Texture Streaming in Control
I picked up Control for cheap on the Steam summer sale, but one thing that was getting in the way of my enjoyment of it was the game’s extremely broken texture streaming. A quick glance at the game’s subreddit page or Steam discussions shows it’s a really common problem, and it took me long enough to piece together a solution between several different sources that I figured I’d write down some notes to help the next person who’s considering refunding the game because of it. Not to mention it seems like I’m seeing deleted threads and comments all the time on Reddit these days, so who knows how long solutions posted there are going to stick around.
Control’s issue is that after only a couple minutes the game stops loading high quality versions of textures for things like characters and important world details, reducing everything to about PS2 level quality.
It seems to be a problem with the game engine itself. Knocking the graphics settings down works temporarily but the blurry textures come back after only a few minutes. I’m running on an RX 6700 XT, a 12 GB card, so I’m pretty certain I’m not hitting a VRAM limit. Even if I was, I’d expect lowering the settings to be a permanent fix.
What worked for me
I downloaded and installed these two mods from Nexus Mods. Installation is simple, you just extract the zip contents to Control’s root directory.
Next, paste this XML into Control\data\globaldb\tweakables.xml
.
<tweakables>
<tweakable type="float1" name="Texture Streaming:Max texture load time per update (ms)" value="100.000000"/>
<tweakable type="float1" name="Texture Streaming:Max texture request time per update (ms)" value="10.000000"/>
<tweakable type="int" name="Texture Streaming:Update Slices" value="1"/>
<tweakable type="float1" name="Texture Streaming:Distance scale" value="0.250000"/>
<tweakable type="float1" name="Texture Streaming:Mip target bias" value="0.500000"/>
<tweakable type="int" name="Texture Streaming:Min Pool Size MB" value="2048"/>
<tweakable type="int" name="Texture Streaming:Target texture pool size MB" value="4096"/>
<tweakable type="int" name="Texture Streaming:Max Dropped Mips (Characters)" value="0"/>
<tweakable type="int" name="Texture Streaming:Max Dropped Mips (Player)" value="0"/>
<tweakable type="bool" name="LOD: Use ObjectScaleOverride" value="1"/>
<tweakable type="float1" name="LOD: ObjectScaleOverride" value="3.000000"/>
<tweakable type="float1" name="Hierarchy LOD:Distance scale" value="3.000000"/>
</tweakables>
No, I haven’t got a clue what these settings are doing. I found them in a Reddit comment that I can’t for the life of me track down again, and you see now why I’m writing this post.
That should be all you need to do to apply the fix. If you’ve made it to the point in the game where you’ve cleansed your first control point (roughly 30-45 minutes in), a good quick way to test the fix is to go to the control point and switch between the different outfits. The new outfit textures should load in pretty quickly every time you switch. After applying the fix myself, I played for over an hour and never saw a blurry texture.
What didn’t work for me
I’m including these here because they may still be options to explore if you want to avoid modding the game for some reason.
It’s worth noting that my system has an Intel i5-13600K and an AMD Radeon RX 6700 XT.
Switching to DX11 mode
Control, at least on my system, defaults to using DX12. If you add -showlauncher
to the game’s launch options, you’ll be shown a menu that allows you to run in DX11 mode when you start the game.
Some people report that switching to DX11 mode solves the blurry texture issue. I tried it for myself and DX11 mode ran significantly worse than DX12 on my system. There was lots of noticeable micro-stuttering and the game just felt a lot worse to play because of it, but your mileage may vary.
Disabling resizeable BAR
This is another option that people report some success with. You’ll have to look up the specific steps of how to do this depending on your GPU. On AMD, you need to change a couple of options in the BIOS to disable resizeable BAR.
I don’t know about you, but I wasn’t about to go changing BIOS settings to workaround an issue for one specific game so I didn’t even bother with this. Still, it might be something to try if you’ve exhausted other options and are bent on getting it to work.
A dumb closing thought
Why is gaming like this? This isn’t even close to my worst example. There’s one (not very old!) game whose executable I had to manually patch just to get launching on newer CPUs.
— JP