In 2026, the most effective DX12 “fix” is to manually unlock the texture detail and force the engine to recognize the full hardware buffer without the game’s internal safety throttling. This prevents the “Memory Leak” sensation that often occurs after 30 minutes of gameplay on the Italian Campaign map.
File Path
The configuration file is located in your Windows Documents folder. Do not confuse this with the template files in the Steam installation directory.
%USERPROFILE%\Documents\My Games\Company of Heroes 3\configuration_system.lua
Technical Note: If you are experiencing frequent crashes, you may also see a configuration_user.lua in this folder. For a clean reset, you can delete both files and allow the game to regenerate them, but manual edits to the “system” file are required to bypass texture caps.
Optimized DX12 Stability & Texture Block
Open the file with Notepad++ and locate the texturedetail setting. This is often “Locked” or greyed out in the UI for users with 8GB–12GB cards. By setting this to 0 or 1, you stabilize how the DX12 renderer pages assets.
| Parameter | Recommended Value | Technical Purpose |
texturedetail | 0 (Ultra) / 1 (High) | 0 forces Ultra; use 1 for better DX12 stability on 8GB VRAM cards. |
antialiasing | 0 (Off) | Removing TAA in the script can stop DX12 “Ghosting” artifacts. |
vsync | false | Disabling in-game VSync solves the DX12 “Input Lag” common in RTS. |
windowmode | 1 | Forces Fullscreen; DX12 performs better in exclusive mode than borderless. |
-- Locate line [28] or search for "texturedetail"
setting = "texturedetail",
variantUInt = 0, -- Set to 0 for Ultra, 1 for High
-- Search for "windowmode"
setting = "windowmode",
variantInt = 1, -- 1 = Exclusive Fullscreen
-- Search for "vsync"
setting = "vsync",
variantBool = false,
HowTo: Engineering a Stable DX12 Environment
Beyond the .lua edits, follow these GameEngineer.net steps to resolve persistent DX12 hangs:
- Unlock the “Ultra” Cap: If your settings are greyed out, setting
texturedetailto0in the script is the only way to force the high-fidelity assets. However, if you crash during heavy artillery barrages, move this back to1. - The “Bugsplat” Prevention: In your Steam launch options, add
-force-feature-level-11-1. While the game runs in DX12, this forces the API to use a more stable feature set that avoids some of the newer, unoptimized shader calls. - Virtual Memory (Pagefile): CoH3 is notorious for high “Commit Charge.” Ensure your Windows Pagefile is set to “System Managed” on your fastest NVMe SSD. A fixed/small pagefile will cause DX12 to crash as soon as the map fills with debris.
- Shader Pre-Caching: If you experience stuttering, allow the game to sit in the main menu for 2–3 minutes after a driver update. DX12 compiles shaders in the background; jumping straight into a match causes massive “Pipeline State Object” (PSO) stutter.
- Disable Overlays: Disable Steam, Discord, and RivaTuner overlays. DX12 is highly sensitive to “Layer Hooking,” which often triggers the game’s anti-tamper or memory protection logic.
Technical Explanation: VRAM Throttling and DX12 Command Buffers
DirectX 12 gives the engine direct control over the GPU’s memory. In Company of Heroes 3, the developers implemented a “Safety Lock” that prevents users with less than 16GB of VRAM from selecting Ultra textures. This was intended to prevent crashes, but it often causes “Texture Swapping” lag as the engine constantly cycles lower-res assets.
By manually editing variantUInt = 0, you take control of the Command Buffer. If your GPU has 8GB–10GB of VRAM, the game will now utilize the full buffer. As long as you aren’t running at 4K, this actually improves stability by preventing the “Asset Paging” stutters that occur when the game tries to stay under its conservative, artificial VRAM limit.