Skip to content

Zenardi/ff7rebirth-pc-optimization

Repository files navigation

Final Fantasy 7 Rebirth: Ultimate Performance and Stutter Reduction Guide (Linux / Ubuntu)

image


Automated Install Script

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.

Quick start — Linux / Steam Deck

chmod +x install-mods.sh
./install-mods.sh

Then paste the printed Launch Options into Steam → right-click game → Properties → Launch Options.

Quick start — Windows (PowerShell)

.\install-mods.ps1

The 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.

Options

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

Examples

# 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

What the script does

  1. Auto-detects your Steam root and parses libraryfolders.vdf to find all library paths
  2. Locates the FF7 Rebirth End/Binaries/Win64 folder and the correct config dir (Documents\My Games\... on Windows, Wine prefix on Linux)
  3. Installs FFVIIHook — copies xinput1_3.dll to the game binaries folder
  4. Installs Engine.ini — copies the VRR or No-VRR variant and sets it read-only
  5. Installs OptiScaler — extracts the DLSS4 (NVIDIA) or FSR4 (AMD) zip into the game binaries folder
  6. Installs Fantasy Optimizer — copies the .pak file into End/Content/Paks/~mods/
  7. Installs Enhanced Fantasy Visuals — copies the standard or fog-enabled .pak into End/Content/Paks/~mods/
  8. 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.


Before you start

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/SteamLibrary with your actual Steam library location (e.g. ~/.steam/steam or /media/you/disk/SteamLibrary).

Install order matters: FFVIIHook (Step 1) must be installed before Engine Tweaks (Step 2) will have any effect.


Step 1 — Install FFVIIHook

NexusMods page

FFVIIHook patches the game so that [ConsoleVariables] settings in Engine.ini always take priority. Without it, the Engine Tweaks in Step 2 do nothing.

  1. Copy xinput1_3.dll from FFVIIHook-Rebirth-*/End/Binaries/Win64/ into your game's End/Binaries/Win64/ folder.

Gamepad issues? If the controller stops working, rename xinput1_3.dll to dxgi.dll, winmm.dll, d3d9.dll, or d3d11.dll — then update the WINEDLLOVERRIDES in 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.


Step 2 — Install Ultimate Engine Tweaks

NexusMods page

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)-*/

Enabling VRR on Linux (GNOME / Ubuntu)

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:

  1. Copy Engine.ini from 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/
    
  2. 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.


Step 3 — Install DLSS4 / FSR4 / XeSS (OptiScaler)

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:

  1. Copy all files from FFVII DLSS4-FSR4/OptiScaler-v0.9.0/ into your game's End/Binaries/Win64/ folder.
  2. Rename OptiScaler.dll to version.dll (NVIDIA) or dxgi.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=false in OptiScaler.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 End key (opens OptiScaler overlay).
  • OptiScaler now bundles Fakenvapi (fakenvapi.dll) — no separate nvapi64.dll is needed.

Step 4 — Set Steam Launch Options

Install GameMode

gamemoderun tells the Linux kernel to prioritise the game process (CPU governor, scheduler, I/O) for a free performance boost.

sudo apt install gamemode

Add your user to the gamemode group

GameMode 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 $USER

Then log out and log back in so the new group membership takes effect. Verify:

groups $USER   # "gamemode" should appear in the output

Verify it is working after launching the game:

gamemoded -s   # should report "gamemode is active"

Fix CPU governor on laptops

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 performance

To restore it afterwards:

sudo cpufreq-set -g powersave

Tip: GameMode should do this automatically while the game runs. If gamemoded -s confirms GameMode is active but you still stutter, the governor change above is the fix. Run cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor to check your current governor.

Set the options in Steam

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 → PropertiesLaunch 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.dll in Step 1 (e.g. to dxgi.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

Step 5 — In-game settings

  1. 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.
  2. 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.
  3. Adjust Dynamic Resolution Scaling (minimum) to balance resolution vs. performance.

Step 6 — Install Fantasy Optimizer

NexusMods page

Fantasy Optimizer is a .pak mod that adjusts in-game parameters to improve performance and reduce visual overhead.

Install:

  1. Create the mods folder if it doesn't exist:
    mkdir -p "/path/to/SteamLibrary/steamapps/common/FINAL FANTASY VII REBIRTH/End/Content/Paks/~mods"
  2. Copy ZZFrancisLouisFOVer2_P.pak from Final Optimizer (Ver2)-*/ into that ~mods/ folder.

Step 7 — Install Enhanced Fantasy Visuals

NexusMods page

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:

  1. Create the mods folder if it doesn't exist:
    mkdir -p "/path/to/SteamLibrary/steamapps/common/FINAL FANTASY VII REBIRTH/End/Content/Paks/~mods"
  2. Copy one of the .pak files from Enhanced-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.


Linux Troubleshooting — Persistent Stuttering

If the game stutters despite all mods being installed, work through the following in order.

1. Install irqbalance and libgamemode

sudo apt install -y irqbalance libgamemode0 gamemode
sudo systemctl enable --now irqbalance

Without libgamemode0, gamemoderun in the launch string will cause the game to crash immediately with a black window.

2. Pin GPU interrupts to P-cores

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/interrupts

Then 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-7 covers the 8 P-cores on an Intel Core Ultra 9 275HX. Adjust the range to match your CPU's P-core count (lscpu shows 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'"
EOF

3. Disable Frame Generation on 8 GB VRAM GPUs

With 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.

4. Ban E-cores from irqbalance

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 irqbalance

5. Cap the frame rate

An 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

6. Use Proton 10.0, not Proton Experimental

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.


Optional — AVX2 Emulation for old CPUs

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:

  1. Copy the SDE/ folder and FFVII-SDE-Launcher.bat from FFVII DLSS4-FSR4/FFVII AVX2 Mod v1.2-*/ into your End/Binaries/Win64/ folder.
  2. Launch the game via FFVII-SDE-Launcher.bat instead 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 0 in 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.


Uninstall

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.

About

The ultimate guide to fixing stuttering and optimizing performance in Final Fantasy VII Rebirth

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors