- Final Fantasy 7 Rebirth: Ultimate Performance and Stutter Reduction Guide (Linux / Ubuntu)
- Automated Install Script
- Before you start
- Step 1 — Install FFVIIHook
- Step 2 — Install Ultimate Engine Tweaks
- Step 3 — Install DLSS4 / FSR4 / XeSS (OptiScaler)
- Step 4 — Set Steam Launch Options
- Step 5 — In-game settings
- Step 6 — Install Fantasy Optimizer
- Step 7 — Install Enhanced Fantasy Visuals
- Linux Troubleshooting — Persistent Stuttering
- Optional — AVX2 Emulation for old CPUs
- Uninstall
install-mods.sh automates all three mod installations on Linux/Steam Deck. install-mods.ps1 does the same on Windows, auto-detecting your Steam library, copying the required files, and extracting the selected OptiScaler preset.
chmod +x install-mods.sh
./install-mods.shThen paste the printed Launch Options into Steam → right-click game → Properties → Launch Options.
.\install-mods.ps1The PowerShell installer uses your Windows config folder automatically:
%USERPROFILE%\Documents\My Games\FINAL FANTASY VII REBIRTH\Saved\Config\WindowsNoEditor\
Unlike Linux, Windows does not need the Steam Launch Options from Step 4.
| Flag | Description | Default |
|---|---|---|
--gpu nvidia |
Use DLSS4 (NVIDIA) | ✅ default |
--gpu amd |
Use FSR4 (AMD / other GPU) | |
--no-vrr |
Use No-VRR Engine.ini variant | VRR enabled |
--no-optiscaler |
Skip OptiScaler / upscaler install | OptiScaler installed |
--no-fantasy-optimizer |
Skip Fantasy Optimizer (.pak) | Installed |
--no-enhanced-visuals |
Skip Enhanced Fantasy Visuals (.pak) | Installed |
--efv-fog |
Use the Fog Enabled variant of Enhanced Fantasy Visuals | No fog |
--verify |
Check all mods are correctly applied | |
--uninstall |
Remove all mod files |
PowerShell equivalents:
| PowerShell switch | Description |
|---|---|
-Gpu nvidia / -Gpu amd |
Select DLSS4 or FSR4 preset |
-NoVrr |
Use the No-VRR Engine.ini variant |
-NoOptiScaler |
Skip OptiScaler |
-NoFantasyOptimizer |
Skip Fantasy Optimizer (.pak) |
-NoEnhancedVisuals |
Skip Enhanced Fantasy Visuals (.pak) |
-EfvFog |
Use the Fog Enabled variant of Enhanced Fantasy Visuals |
-Verify |
Check installed files |
-Uninstall |
Remove installed files |
# NVIDIA with DLSS4 and VRR (recommended for most users)
./install-mods.sh
# AMD GPU with FSR4 and VRR
./install-mods.sh --gpu amd
# NVIDIA, no VRR (standard monitor without G-Sync/FreeSync)
./install-mods.sh --no-vrr
# AMD, no VRR
./install-mods.sh --gpu amd --no-vrr
# Only FFVIIHook + Engine tweaks, skip OptiScaler
./install-mods.sh --no-optiscaler
# Skip Fantasy Optimizer or Enhanced Fantasy Visuals
./install-mods.sh --no-fantasy-optimizer
./install-mods.sh --no-enhanced-visuals
# Use Fog Enabled variant of Enhanced Fantasy Visuals
./install-mods.sh --efv-fog
# Verify all mods are correctly installed (run this if you experience stuttering)
./install-mods.sh --verify
# Remove all installed mod files
./install-mods.sh --uninstall# NVIDIA with DLSS4 and VRR (recommended for most users)
.\install-mods.ps1
# AMD GPU with FSR4 and VRR
.\install-mods.ps1 -Gpu amd
# NVIDIA, no VRR
.\install-mods.ps1 -NoVrr
# Only FFVIIHook + Engine tweaks, skip OptiScaler
.\install-mods.ps1 -NoOptiScaler
# Skip Fantasy Optimizer or Enhanced Fantasy Visuals
.\install-mods.ps1 -NoFantasyOptimizer
.\install-mods.ps1 -NoEnhancedVisuals
# Use Fog Enabled variant of Enhanced Fantasy Visuals
.\install-mods.ps1 -EfvFog
# Verify all mods are correctly installed
.\install-mods.ps1 -Verify
# Remove all installed mod files
.\install-mods.ps1 -Uninstall- Auto-detects your Steam root and parses
libraryfolders.vdfto find all library paths - Locates the FF7 Rebirth
End/Binaries/Win64folder and the correct config dir (Documents\My Games\...on Windows, Wine prefix on Linux) - Installs FFVIIHook — copies
xinput1_3.dllto the game binaries folder - Installs Engine.ini — copies the VRR or No-VRR variant and sets it read-only
- Installs OptiScaler — extracts the DLSS4 (NVIDIA) or FSR4 (AMD) zip into the game binaries folder
- Installs Fantasy Optimizer — copies the
.pakfile intoEnd/Content/Paks/~mods/ - Installs Enhanced Fantasy Visuals — copies the standard or fog-enabled
.pakintoEnd/Content/Paks/~mods/ - Prints the Steam Launch Options on Linux (Windows does not need them)
Note
After the script finishes, set Anti-Aliasing Method → DLSS in-game (Step 5). On Linux, you must still manually paste the printed Launch Options into Steam.
Warning
FFVII XeSS Mod v1.3.1-15-1-3-1-1742123804.zip File too large to be tracked by Git (need to use Git LFS). Download directly from NexusMods page and put under FFVII DLSS4-FSR4 (zipped) so installation script works.
Launch the game at least once and close it. This creates the config folder you will need in Step 2.
Locate your two key paths and keep them handy — you will use them throughout this guide:
# Game binaries folder (drop DLLs here)
/path/to/SteamLibrary/steamapps/common/FINAL FANTASY VII REBIRTH/End/Binaries/Win64/
# Engine config folder (drop Engine.ini here)
/path/to/SteamLibrary/steamapps/compatdata/2909400/pfx/drive_c/users/steamuser/Documents/My Games/FINAL FANTASY VII REBIRTH/Saved/Config/WindowsNoEditor/
Replace
/path/to/SteamLibrarywith your actual Steam library location (e.g.~/.steam/steamor/media/you/disk/SteamLibrary).
Install order matters: FFVIIHook (Step 1) must be installed before Engine Tweaks (Step 2) will have any effect.
FFVIIHook patches the game so that [ConsoleVariables] settings in Engine.ini always take priority. Without it, the Engine Tweaks in Step 2 do nothing.
- Copy
xinput1_3.dllfromFFVIIHook-Rebirth-*/End/Binaries/Win64/into your game'sEnd/Binaries/Win64/folder.
Gamepad issues? If the controller stops working, rename
xinput1_3.dlltodxgi.dll,winmm.dll,d3d9.dll, ord3d11.dll— then update theWINEDLLOVERRIDESin Step 4 to match the new name.
After every official game patch, check that the DLL is still present. Steam may remove it during updates.
Definitive optimized Engine.ini built over 1+ year across 40+ UE games. Removes most stuttering, improves performance, reduces input latency, and improves picture clarity — without visual loss or crashes.
Choose your variant first:
| My display supports VRR (G-Sync / FreeSync)? | Use this folder |
|---|---|
| Yes — enabled in both GPU driver and display settings | FF7Rebirth Ultimate Unreal Engine.ini (VRR)-*/ |
| No, or unsure | FF7Rebirth Ultimate Unreal Engine.ini (No VRR)-*/ |
On Linux, VRR must be enabled at the compositor level in addition to the GPU driver. On GNOME (Ubuntu 24.04+, mutter 46+) it is an experimental feature that is off by default — even if your panel supports it.
Check if your panel supports VRR:
# Decode panel model from EDID
python3 -c "
import sys
data = open('/sys/class/drm/card0-eDP-1/edid','rb').read() # adjust card/connector as needed
m = int.from_bytes(data[8:10], 'big')
c = ''.join(chr(((m>>(10-5*i))&0x1F)+64) for i in range(3))
pid = int.from_bytes(data[10:12], 'little')
print(f'Panel: {c} 0x{pid:04X}')
"Look up the result on Panelook to confirm VRR support. The BOE NE16NZH (2560×1600, 240Hz) used in many 2024–2025 gaming laptops supports VRR at 48–240Hz.
Enable VRR in GNOME mutter:
# List available experimental features (variable-refresh-rate should appear)
gsettings range org.gnome.mutter experimental-features
# Enable it
gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"
# Verify
gsettings get org.gnome.mutter experimental-features
# expected: ['variable-refresh-rate']Log out and log back in — the compositor only picks up this change after a new session starts. After logging in, VRR will be active on any display (or panel) that advertises support, and the r.VSync=0 / r.D3D12.UseAllowTearing=1 lines in the VRR Engine.ini variant will work correctly.
Note
If you use KDE Plasma, go to System Settings → Display & Monitor → select your display → Variable Refresh Rate and set it to Always enabled or Automatic.
Install:
- Copy
Engine.inifrom your chosen variant folder into:/path/to/SteamLibrary/steamapps/compatdata/2909400/pfx/drive_c/users/steamuser/Documents/My Games/FINAL FANTASY VII REBIRTH/Saved/Config/WindowsNoEditor/ - Make it read-only so the game cannot overwrite it:
chmod 444 "/path/to/.../WindowsNoEditor/Engine.ini"
Warning
Do not use this alongside any other "optimization" mod. It is already comprehensive.
GitHub releases · NexusMods page
OptiScaler (by cdozdil) adds DLSS 4 (transformer model), FSR 4.1, XeSS 3.0 and XeLL frame generation support. This repo bundles OptiScaler v0.9.0 (the current stable release).
Choose your upscaler:
| GPU | Recommended preset | Hook DLL |
|---|---|---|
| NVIDIA (RTX) | DLSS4 | version.dll |
| AMD / other | FSR4 | dxgi.dll |
Note
AMD / FSR4 users: The large FSR DLLs (amd_fidelityfx_upscaler_dx12.dll, amd_fidelityfx_framegeneration_dx12.dll) are not tracked in this repo due to their size (~53 MB combined). Download the full OptiScaler release from the link above and place those two DLLs inside FFVII DLSS4-FSR4/OptiScaler-v0.9.0/ before running the install script.
Install:
- Copy all files from
FFVII DLSS4-FSR4/OptiScaler-v0.9.0/into your game'sEnd/Binaries/Win64/folder. - Rename
OptiScaler.dlltoversion.dll(NVIDIA) ordxgi.dll(AMD).
The install script does both steps automatically.
Warning
Upgrading from OptiScaler ≤ 0.7.9? Manually delete nvapi64.dll and nvngx.dll from End/Binaries/Win64/ before installing 0.9. The uninstall script (or ./install-mods.sh --uninstall) handles this automatically.
Notes:
- Steam/Epic overlay is disabled by default. Re-enable it by setting
DisableOverlays=falseinOptiScaler.ini. - Adjust Dynamic Resolution Scaling (minimum) in Graphics settings to control resolution quality — there is no standard preset selector.
- Frame generation (DLSS-FG / FSR-FG / XeFG) can be toggled in-game with the
Endkey (opens OptiScaler overlay). - OptiScaler now bundles Fakenvapi (
fakenvapi.dll) — no separatenvapi64.dllis needed.
gamemoderun tells the Linux kernel to prioritise the game process (CPU governor, scheduler, I/O) for a free performance boost.
sudo apt install gamemodeGameMode uses polkit to apply privileged optimisations (CPU governor, split-lock mitigation, GPU priority). Your user must be in the gamemode group, otherwise GameMode launches silently but does nothing — the game still has gamemoderun in the launch string, but the optimisations are never applied.
sudo usermod -aG gamemode $USERThen log out and log back in so the new group membership takes effect. Verify:
groups $USER # "gamemode" should appear in the outputVerify it is working after launching the game:
gamemoded -s # should report "gamemode is active"On laptops the CPU often stays in powersave mode, which throttles clock speeds and causes stuttering even when GameMode is running. If you experience stuttering on a laptop, set the governor to performance before launching the game:
sudo apt install cpufrequtils
sudo cpufreq-set -g performanceTo restore it afterwards:
sudo cpufreq-set -g powersaveTip: GameMode should do this automatically while the game runs. If
gamemoded -sconfirms GameMode is active but you still stutter, the governor change above is the fix. Runcat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorto check your current governor.
All three mods require Wine DLL overrides to load on Linux. Combine everything into a single Launch Options string.
In Steam: right-click the game → Properties → Launch Options, and paste one of the following:
DLSS4 variant (NVIDIA — recommended):
WINEDLLOVERRIDES="xinput1_3=n,b;version.dll=n,b" PROTON_ENABLE_NVAPI=1 __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 VKD3D_CONFIG=pipeline_library_app_cache MANGOHUD=1 MANGOHUD_DEVICEINDEX=1 gamemoderun %command% -nodirectstorage
FSR4 variant (AMD or other GPU):
WINEDLLOVERRIDES="xinput1_3=n,b;dxgi.dll=n,b" RADV_PERFTEST=nggc VKD3D_CONFIG=pipeline_library_app_cache MANGOHUD=1 gamemoderun %command% -nodirectstorage
If you renamed
xinput1_3.dllin Step 1 (e.g. todxgi.dll), update the first override entry to match.
| Variable | Purpose |
|---|---|
VKD3D_CONFIG=pipeline_library_app_cache |
Persists the VKD3D pipeline cache across sessions — reduces shader stutter on subsequent launches |
MANGOHUD=1 |
Enables the MangoHud performance overlay (FPS, frametime, GPU/CPU usage) |
MANGOHUD_DEVICEINDEX=1 |
Tells MangoHud to read from the discrete GPU on NVIDIA Optimus laptops (Intel+NVIDIA). Without this, MangoHud reports 0% GPU by reading the Intel iGPU instead |
-nodirectstorage |
Disables DirectStorage, which is unstable under Proton |
- Go to Graphics → Anti-Aliasing Method and set it to DLSS. OptiScaler spoofs your GPU to unlock this option, then transparently redirects it to FSR4 or XeSS depending on which variant you installed.
- Set Background Model Detail to Ultra. Any lower setting causes aggressive billboarding (3D objects turning into flat 2D sprites just a few meters from Cloud). It is VRAM-heavy but eliminates a very noticeable visual artefact.
- Adjust Dynamic Resolution Scaling (minimum) to balance resolution vs. performance.
Fantasy Optimizer is a .pak mod that adjusts in-game parameters to improve performance and reduce visual overhead.
Install:
- Create the mods folder if it doesn't exist:
mkdir -p "/path/to/SteamLibrary/steamapps/common/FINAL FANTASY VII REBIRTH/End/Content/Paks/~mods" - Copy
ZZFrancisLouisFOVer2_P.pakfromFinal Optimizer (Ver2)-*/into that~mods/folder.
Enhanced Fantasy Visuals is a .pak mod that improves the game's visual quality — better lighting, colours, and atmosphere.
Choose your variant first:
| Variant | File | When to use |
|---|---|---|
| Standard | ZFrancisLouis_EFVEpic_P.pak |
Default — recommended |
| Fog Enabled | ZFrancisLouis_EFVFogEpic_P.pak |
If you want volumetric fog restored |
Install:
- Create the mods folder if it doesn't exist:
mkdir -p "/path/to/SteamLibrary/steamapps/common/FINAL FANTASY VII REBIRTH/End/Content/Paks/~mods" - Copy one of the
.pakfiles fromEnhanced-Fantasy-Visuals/(your chosen variant) into the~mods/folder.
Note
Only install one variant at a time. If both .pak files are present, remove the one you don't want.
If the game stutters despite all mods being installed, work through the following in order.
sudo apt install -y irqbalance libgamemode0 gamemode
sudo systemctl enable --now irqbalanceWithout libgamemode0, gamemoderun in the launch string will cause the game to crash immediately with a black window.
On laptops with hybrid CPUs (Intel P-core + E-core), the kernel may route the NVIDIA and Intel GPU interrupts to slow E-cores, causing them to hit 100% sys time and stutter the game.
Find the IRQ numbers for your NVIDIA and Intel GPUs:
grep -E "nvidia|i915" /proc/interruptsThen pin them to P-cores (adjust the IRQ numbers to match your system):
# Example: IRQ 217 = NVIDIA, IRQ 243 = i915
echo 0-7 | sudo tee /proc/irq/217/smp_affinity_list
echo 0-7 | sudo tee /proc/irq/243/smp_affinity_list
0-7covers the 8 P-cores on an Intel Core Ultra 9 275HX. Adjust the range to match your CPU's P-core count (lscpushows the topology).
To make this persistent across reboots, create a udev rule:
sudo tee /etc/udev/rules.d/99-irq-gpu.rules << 'EOF'
ACTION=="add", SUBSYSTEM=="pci", DRIVER=="nvidia", RUN+="/bin/sh -c 'for irq in $(cat /sys/bus/pci/devices/$id/irq 2>/dev/null); do echo 0-7 > /proc/irq/$irq/smp_affinity_list; done'"
EOFWith VRAM at 90%+ (common on 8 GB GPUs), Frame Generation requires an additional ~1.5 GB for interpolation buffers, causing constant VRAM eviction and severe stutters.
Frame Generation is already disabled by default in the OptiScaler.ini shipped with this repo ([FrameGen] Enabled=false). Do not enable it if your GPU has 8 GB or less.
irqbalance intentionally offloads interrupts to E-cores to keep P-cores free for applications — but for GPU interrupts this is counterproductive. Ban the E-cores:
# Find your E-core range first
lscpu --all -p=cpu,core,cluster | grep -v "^#"
# Ban CPUs 8–23 (adjust to your CPU's E-core range)
echo 'IRQBALANCE_BANNED_CPUS=FFFF00' | sudo tee /etc/default/irqbalance
sudo systemctl restart irqbalanceAn uncapped game at 720p with a fast GPU can render 200–400 FPS. Each frame generates a VkQueueSubmit ioctl + Wine sync calls, flooding the GPU interrupt and causing high kernel sys time. Cap to your monitor's refresh rate or 120:
In-game: Settings → Frame Rate → 120
Or edit GameUserSettings.ini directly:
FrameRateLimit=120.000000
Proton Experimental has a known winevulkan:signaller_worker wait timed out deadlock with NVIDIA drivers that causes the game to hang at a black window. Use the stable Proton 10.0 release.
In Steam: right-click FF7 Rebirth → Properties → Compatibility → check Force the use of a specific Steam Play compatibility tool → select Proton 10.0.
Only needed if your CPU does not support AVX2 (typically pre-2013 Intel CPUs). Skip this if you have a modern CPU.
The game refuses to launch without AVX2. This mod uses Intel SDE to emulate the missing instruction at a significant performance cost (~15–40 FPS on an overclocked i7-2700k/3770k). Frame generation is strongly recommended to compensate.
Install:
- Copy the
SDE/folder andFFVII-SDE-Launcher.batfromFFVII DLSS4-FSR4/FFVII AVX2 Mod v1.2-*/into yourEnd/Binaries/Win64/folder. - Launch the game via
FFVII-SDE-Launcher.batinstead of the normal executable.
Known issues:
- First boot can take 5–15 minutes.
- Stutters when loading new scenes, areas, or effects for the first time.
- Set Characters Displayed to
0in Graphics settings when in cities. - No sound after initial shader cache build → restart the game.
- Install the game on your fastest SSD (it uses DirectStorage).
Uninstall: Delete the SDE/ folder and FFVII-SDE-Launcher.bat.
| Mod | What to delete |
|---|---|
| FFVIIHook | xinput1_3.dll (or whichever name you used) from End/Binaries/Win64/ |
| Ultimate Engine Tweaks | Engine.ini from the WindowsNoEditor/ config folder |
| OptiScaler (DLSS4/NVIDIA) | version.dll, amd_fidelityfx_dx12.dll, fakenvapi.dll, fakenvapi.ini, dlssg_to_fsr3_amd_is_better.dll, libxell.dll, OptiScaler.ini, D3D12_Optiscaler/ from End/Binaries/Win64/ |
| OptiScaler (FSR4/AMD) | Same as above but dxgi.dll instead of version.dll, plus amd_fidelityfx_upscaler_dx12.dll, amd_fidelityfx_framegeneration_dx12.dll |
| Fantasy Optimizer | ZZFrancisLouisFOVer2_P.pak from End/Content/Paks/~mods/ |
| Enhanced Fantasy Visuals | ZFrancisLouis_EFVEpic_P.pak or ZFrancisLouis_EFVFogEpic_P.pak from End/Content/Paks/~mods/ |
| AVX2 Emulation | SDE/ folder and FFVII-SDE-Launcher.bat from End/Binaries/Win64/ |
Also remove the WINEDLLOVERRIDES line from your Steam Launch Options.
