Valheim
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
yesterday
Downloads
351
Size
4.4MB
ADDatHost Valheim hosting
€1

⚑ GRAPHICS OVERDRIVE ⚑

Screen-Space Reflections, Water & Terrain Tessellation, FSR 3 Upscaling & Frame Generation and 100+ Hidden Graphics Settings in Valheim

Valheim BepInEx Unity Client Side Developed & Tested on Linux

🐧 Developed and Tested on Linux

All development and testing of Graphics Overdrive was done on Linux: the native Linux version of Valheim on Vulkan, with an NVIDIA GeForce RTX 4070 (laptop GPU).

  • Windows: the Windows libraries are built from the same source and included, but they have not been through the same testing. A Windows tester has confirmed the Native Door and DLSS on a GeForce RTX 5070 laptop GPU (1.0.2). If something misbehaves on Windows, please report it with your logs (see "Logs" in the FSR 3 section).
  • AMD and Intel GPUs: FSR 3 is made to run on them, but they have not been tested.

βœ… Fixed in 1.0.2: the Native Door switching itself off on Windows

On Windows, the Native Door went into safe mode after the second start and stayed there: FSR 3, DLSS and frame generation were gone until it was reset.

  • The cause was on our side: the Vulkan layer did not answer one lookup with its own function, and Steam's pipeline-cache layer, which sits above it in the games Steam starts, asks exactly that. The game's graphics calls then passed the layer by, so it never saw a frame and every start counted as a failed one. Fixed in both Vulkan layers, on Linux and Windows, and confirmed on a Windows tester's PC.
  • If you were stuck in safe mode, the first start of 1.0.2 clears it by itself, once.

βœ… Fixed in 1.0.1: FSR 3 Frame Generation ghosting around your character

In 1.0.0, FSR 3 frame generation drew dithered, half-shifted copies of your character's outline (cape, backpack, weapon) while the camera turned.

  • The cause was on our side, not in FSR 3: the depth image handed to frame generation was not depth. With Valheim's deferred rendering, Unity's copy of "the camera's depth" holds a picture of the scene instead, so frame generation could not tell what was in front of what. Graphics Overdrive now copies depth straight from the game camera's depth buffer. The FSR 3 and DLSS upscalers and DLSS Frame Generation got the same wrong depth in 1.0.0 and get the real one now.
  • A depth check confirms it while you play: every two seconds a few rays are cast into the scene and compared with the depth image, and the status rows of the scaler and of frame generation show the result ("depth checked: ok").

🌌 The Problem: Valheim Leaves Most of Its Own Graphics Dials Locked

Valheim runs on Unity 6000's Built-in Render Pipeline with Post Processing Stack v1. The engine and the game ship far more dials than the settings menu shows:

  • Dormant Screen-Space Reflections: Post-Processing Stack v1 contains a raymarched SSR engine, but Valheim leaves it switched off. Wet stone, metal and polished armor get flat reflections.
  • Downsampled Ambient Occlusion: SSAO is rendered below native resolution.
  • Tiny Streaming Buffers: Async GPU uploads default to a 4 MB buffer and a 2 ms time slice, which can show up as stutter and pop-in when crossing zones.
  • The 150 m Shadow Wall: Sun shadows vanish beyond 150 m, flattening distant mountains and forests.
  • Locked Tessellation: The game has one Tessellation switch for water and terrain, and no way to tune either.
  • Hidden VRAM Blind Spots: There is no way to see how a setting change affects your GPU's video memory.
  • No Modern Upscaler: Below 100% the game only stretches its image (bilinear or nearest neighbor), and it has no frame generation.

Graphics Overdrive opens all of it up in one place, and everything it does is purely local rendering.


πŸ‘‘ Features at a Glance

  1. GPU Detection & VRAM Estimate:
    • Shows the detected GPU, graphics API (Vulkan / DX11 / DX12) and VRAM size.
    • A scene VRAM estimate with a health gauge (Optimal, Moderate, Heavy, Critical): the engine's loaded-texture figure plus a model of the render targets, shadow maps, SSR / AO buffers and grass / LOD meshes. It is a heuristic, not a measurement, and it moves with your dials so you can see which ones are expensive.
  2. Njord Dark Obsidian UI:
    • Obsidian black panels with Norse Gold trim.
    • Opening F11 frees the cursor and blocks player input and camera look while the window is open.
  3. Graphics Menu Takeover:
    • A diagonal red ribbon on Settings > Graphics, a live VRAM banner, a preset bar, and Overdrive sliders above the standard Valheim rows.
    • Presets: Vanilla, Balanced, High, Ultra, SSRT, plus your own saved presets.
    • How it interacts with the game's own sliders: the mod applies its dials right after the game applies its graphics settings, so for the values the mod controls (shadows, LOD, point lights, grass, streaming, soft particles) the Overdrive dial wins over the game's own slider while the mod is enabled. The game's on/off checkboxes for anti-aliasing, SSAO, bloom, chromatic aberration, motion blur and tessellation stay in charge, and so does the 3D resolution while CustomRenderScalePercent is 100. Overdrive dials apply at once and are saved to the config right away, so Back in the Settings window does not undo them.
  4. Screen-Space Reflections (SSR):
    • Raymarched reflections on opaque surfaces (wet stone, metal, polished armor) using Post-Processing Stack v1's SSR. This is screen-space only, so it cannot reflect anything off-screen, and Valheim's water is a transparent shader, so SSR does not add reflections to the water surface itself. It is not hardware ray tracing (Valheim's graphics device does not expose any).
    • Up to 1024 ray steps, step size, max distance, blur, brightness and backface tracing.
  5. Full-Resolution Ambient Occlusion:
    • Disables the forced downsampling for native-resolution Amplify Occlusion with 4 quality levels.
  6. Shadows up to 800 m & Unlimited Point-Light Shadows:
    • 2 or 4 directional cascades, up to 4096 px maps, Close-Fit or Stable-Fit projection.
    • Point-light reach and shadow reach are applied to every light, including the ones that stream in later, and scaled from each light's own vanilla value.
  7. Water, Terrain & Atmosphere:
    • Water tessellation and terrain tessellation as separate dials (the game's Custom/Water and Custom/Heightmap shaders both expose _Tess), plus terrain relief depth, water ripple strength, water refraction strength and a world fog density multiplier.
    • Applied to nearby water and terrain only; the far LOD water and distant terrain stay cheap.
  8. Anti-Aliasing & Post-FX Tuning:
    • FXAA quality preset, TAA sharpening / ghosting / jitter tuning, chromatic-aberration strength, motion-blur shutter / samples / blending, bloom, tonemapper, exposure, contrast, saturation and white balance.
  9. Supersampling (experimental):
    • CustomRenderScalePercent above 100 renders the 3D scene into a larger buffer and scales it down (SSAA). Below 100 uses the game's own upscaler.
  10. AMD FSR 3 Upscaling & Frame Generation (experimental, Vulkan):
    • Pick your fidelity with a preset or the dials, then pick the scaler on its own: Vanilla, or FSR 3 from Native AA to Ultra Performance, with an output scale up to 200% for supersampling. "Ultra" + "FSR 3 Performance" pairs like it does in other games.
    • FSR 3 frame generation: generated frames fill the gap up to your frame limit (real frames first), with the HUD kept sharp.
    • With the optional DLSS Add-on (GeForce RTX): DLSS, DLAA and DLSS Frame Generation in the same menus.
    • Needs the Native Door, which is on by default and changes nothing until you choose FSR 3 or DLSS. See the FSR 3 section below.
  11. Performance HUD (F10):
    • FPS, frame time, 1% and 0.1% lows, memory, VRAM estimate and the active scaler.
  12. Live Tweak Suite (F11):
    • A floating window with 8 tabs, including the scaler and frame-generation dials, a read-only graphics API / GPU capability panel and a shader property dump button for finding further dials.
    • Every setting is in both places: the F11 window and Settings > Graphics carry the same dials, in the same order.
  13. Menu-Scene Stress Test:
    • A short camera tour of the main-menu scene that records average / 1% low FPS and saves a report. It never touches a world or your character. See the Benchmark section below.

πŸŽ›οΈ Complete Knob & Dial Reference

Every dial can be tuned via Esc > Settings > Graphics (or Settings on the main menu), the F11 Live Overlay, or BepInEx/config/com.wubarrk.graphicsoverdrive.cfg. The Vanilla column is the game's own value, read from its shipped assets (Valheim 1.0). The Presets column is the span across the built-in Balanced, High, Ultra and SSRT profiles (see Built-in 1-Click Profiles below); the values are written by the presets themselves and are not recommendations on top of them. Category names match the sections of the config file.

Category Setting Range / Options Vanilla Presets (Balanced – SSRT) What it does
Master MasterEnable True / False β€” β€” Master switch for every override. Turning it off re-applies the game's own graphics settings right away (quality settings, light ranges, post-processing, render scale) and stops the mod applying anything; per-object values (grass, water, terrain, smoke, item glow, camera) return as those objects are recreated, at the latest on the next start.
Master CurrentPreset a built-in or saved preset name, or Custom β€” β€” The active profile. Set automatically when you pick a preset or tweak a dial.
Master AutoApplyResolutionPresets True / False β€” β€” When the display resolution changes, switch to the profile you last chose on that resolution.
Master ExclusiveControl True / False β€” β€” On (default): Graphics Overdrive's values are the ones drawn. Right before each frame, what another graphics mod changed among the settings this mod has a dial for is put back, and doubled effects are reduced to one (one AO, one anti-aliasing, one reflection pass, the game's own post-processing profile). Off: whichever mod writes last wins.
Master ResolutionPresetsMap text β€” β€” Which profile is linked to which resolution (for example 1920x1080:ultra;2560x1440:balanced). Managed by the mod.
Ray Tracing & AO EnableScreenSpaceReflections True / False Off Off – On Post-Processing Stack v1 screen-space reflections on opaque surfaces (wet stone, metal, polished armor). Screen-space only, so nothing off-screen is reflected, and the transparent water surface gets none.
Ray Tracing & AO SSRQuality Low, High β€” (SSR is off) Low – High Half-resolution or full-resolution reflection buffer.
Ray Tracing & AO SSRIterationCount 16 – 1024 β€” 128 – 512 Raymarch steps per pixel. More steps reach farther and sharper at a higher GPU cost.
Ray Tracing & AO SSRStepSize 1 – 8 β€” 2 – 3 Raymarch stride (log2); lower catches finer silhouettes.
Ray Tracing & AO SSRMaxDistance 10 – 300 m β€” 120 – 280 m Reflection trace distance.
Ray Tracing & AO SSRReflectionMultiplier 0 – 2 β€” 1 – 1.25 Reflection brightness.
Ray Tracing & AO SSRReflectionBlur 0.1 – 4 β€” 0.8 – 1 Blur applied to the reflections.
Ray Tracing & AO SSRReflectBackfaces True / False β€” Off – On Trace through backfaces (slight cost, better vertical reflections).
Ray Tracing & AO AOFullResolution True / False Off (downsampled) On Native-resolution ambient occlusion instead of the game's downsampled one.
Ray Tracing & AO AOSampleCount Low, Medium, High, VeryHigh Medium Medium – VeryHigh Amplify Occlusion samples per pixel.
Ray Tracing & AO AOIntensity 0 – 3 1 1 – 1.35 Multiplier on the game's per-environment AO intensity.
Ray Tracing & AO AORadius 0.2 – 8 m 3 m 2 – 3 m Occlusion radius.
Ray Tracing & AO AOPowerExponent 0.5 – 4 3 1.8 – 2 Occlusion contrast curve.
Shadows & Lighting ShadowDistance 50 – 800 m 150 m 220 – 700 m Directional shadow draw distance.
Shadows & Lighting ShadowMapResolution Low, Medium, High, VeryHigh High (2048) High (2048) – VeryHigh (4096) Directional shadow map size.
Shadows & Lighting ShadowCascades 2, 4 4 4 Number of directional shadow cascades (Unity supports 2 or 4).
Shadows & Lighting ShadowNearPlaneOffset 0.1 – 10 m 3 m 3 m Shadow near-plane offset (acne versus detached shadows).
Shadows & Lighting ShadowProjectionMode CloseFit, StableFit StableFit CloseFit CloseFit is sharper, StableFit removes shimmer when the camera rotates.
Shadows & Lighting PixelLightCount 4 – 32 8 12 – 32 Forward pixel light limit (transparents, particles).
Shadows & Lighting PointLightDistance 20 – 200 m 40 m 60 – 150 m Reach of torches, sconces and campfires (scaled from each light's own value).
Shadows & Lighting PointLightShadowDistance 10 – 150 m 20 m 35 – 90 m Distance at which point lights cast shadows.
Shadows & Lighting PointLightLimit -1 (unlimited) – 500 40 40 – unlimited How many point lights the game keeps switched on at once (the nearest ones win).
Shadows & Lighting PointLightShadowLimit -1 (unlimited) – 32 3 6 – unlimited Simultaneous shadow-casting point lights.
Shadows & Lighting RealtimeReflectionProbes True / False On On Realtime reflection probe updates (glossy armor, wet surfaces).
LOD & Streaming LodBias 0.5 – 10x 2x 2.5 – 7.5x Mesh LOD multiplier (less pop-in).
LOD & Streaming MaximumLodLevel 0 – 3 0 0 Highest LOD level allowed (0 = full-detail meshes always allowed).
LOD & Streaming EnableLodCrossFade True / False On On Dithered crossfade between LOD levels.
LOD & Streaming ParticleRaycastBudget 1024 – 16384 4096 4096 – 16384 Raycasts per frame for colliding particles.
LOD & Streaming AnisotropicMode Disable, Enable, ForceEnable ForceEnable ForceEnable Anisotropic filtering.
LOD & Streaming MaxQueuedFrames 1 – 3 2 1 Frames the CPU may queue ahead of the GPU (1 = lowest input latency, 3 = highest throughput).
LOD & Streaming AsyncUploadBufferSizeMB 4 – 256 MB 4 MB 32 – 128 MB Async texture / mesh upload buffer. Larger can reduce stutter while zones stream in, at the cost of memory.
LOD & Streaming AsyncUploadTimeSliceMS 1 – 32 ms 2 ms 4 – 16 ms CPU time per frame spent on background uploads.
LOD & Streaming BackgroundLoadingPriority Default, Low, BelowNormal, Normal, High the game's own Default How much time per frame Unity spends integrating background-loaded assets (zone streaming). Default leaves the game alone.
Foliage & Clutter ClutterDistance 30 – 160 m 45 m 60 – 130 m Grass and ground clutter radius. Beyond about 100 m the mod also raises each grass prefab's own fade distance, which the game caps at 100 m.
Foliage & Clutter ClutterDensityScale 0.2 – 3x 1.5x 1.1 – 1.8x Vegetation density. Changing either grass dial rebuilds the grass once the slider stops moving.
Resolution & AA CustomRenderScalePercent 50 – 200% 100 (the game's own 3D-resolution setting) 100% Below 100 uses the game's upscaler; above 100 renders larger and scales down (supersampling, experimental). 100 leaves the game's own setting alone. Not used while FSR 3 runs (FSR 3 sets the render size).
Resolution & AA AAMode Off, FXAA, TAA TAA TAA Anti-aliasing method. The game's own "Anti-aliasing" checkbox is still the master switch. Switched off while FSR 3 runs, because FSR 3 anti-aliases the image itself.
Resolution & AA OverrideAaTuning + FxaaQuality, TaaSharpen, TaaStationaryBlending, TaaMotionBlending, TaaJitterSpread FXAA presets; TAA 0 – 3, 0 – 0.99, 0 – 0.99, 0.1 – 1 FXAA ExtremeQuality; TAA 0.3 / 0.95 / 0.85 / 1.0 Off Custom FXAA preset and TAA sharpness, ghosting and jitter.
Resolution & AA SoftParticles True / False On On Depth-faded particles.
Resolution & AA ForceMaxTextureResolution True / False Off (the game already runs at full resolution) Off – On Pins the global texture mip limit to 0. The game already runs at 0, so this only guards against other mods lowering it.
Post-FX & Camera OverrideBloom + BloomIntensity, BloomThreshold, BloomSoftKnee, BloomRadius 0 – 2, 0.1 – 2, 0 – 1, 1 – 7 0.3, 0.7, 0.7, 5 Off Bloom override.
Post-FX & Camera OverrideColorGrading + TonemapperMode, PostExposureEV, ColorContrast, ColorSaturation, ColorTemperature None / ACES / Neutral, Β±2 EV, 0.5 – 2, 0 – 2, Β±50 ACES, +1.0 EV, 1.2, 1.0, -8 Off (SSRT switches it on with these same values) Color grading override.
Post-FX & Camera SunShaftsIntensity, SunShaftsBlurRadius 0 – 3, 0.5 – 6 1.0, 3.0 1.1 – 1.6, 3 God rays.
Post-FX & Camera CameraFieldOfView 40 – 110Β° 65Β° 70 – 85Β° Field of view. The mod leaves the game's temporary FOV effects (grapple kick and similar) alone.
Post-FX & Camera CameraMaxDistance 3 – 35 m 8 m (boat 16 m) 8 – 15 m Third-person zoom limit. The boat limit stays at twice this value.
Post-FX & Camera CameraShakeScale 0 – 2x 1x unchanged Screen-shake multiplier. Presets keep your own value.
Post-FX & Camera OverrideChromaticAberration + ChromaticAberrationIntensity 0 – 1 0.15 Off Strength of chromatic aberration (its on/off is the game's own setting).
Post-FX & Camera OverrideMotionBlur + MotionBlurShutterAngle, MotionBlurSampleCount, MotionBlurFrameBlending 0 – 360Β°, 4 – 32, 0 – 1 150Β°, 10, 0 Off Motion blur tuning (its on/off is the game's own setting).
Water, Smoke & Spirits SmokePuffSize 0.5 – 10 m 4 m 1.6 – 2.4 m Campfire and chimney smoke puff size.
Water, Smoke & Spirits SpiritVfxIntensity 0 – 3x 1x 1.1 – 1.6x Multiplier for the glow particles on upgraded weapons and armor. Items without glow stay unchanged.
Water, Terrain & Atmosphere WaterTessellation 1 – 32 4 6 – 16 Tessellation factor of the near water surface (Custom/Water _Tess).
Water, Terrain & Atmosphere WaterRippleStrength 0.25 – 4x 1x 1x Multiplier on the water normal-map strength (_NormalScale).
Water, Terrain & Atmosphere WaterRefractionStrength 0 – 3x 1x 1x Multiplier on refraction distortion (_RefractionScale).
Water, Terrain & Atmosphere TerrainTessellation 1 – 32 4 4 – 12 Tessellation factor of nearby terrain (Custom/Heightmap _Tess).
Water, Terrain & Atmosphere TerrainDisplacementScale 0 – 3x 1x 1 – 1.5x Multiplier on terrain relief depth (_Displacement).
Water, Terrain & Atmosphere FogDensityScale 0 – 3x 1x 1x Multiplier on the world fog density.
Performance HUD EnableFpsHud, FpsHudToggleKey, FpsHudPosition, FpsHudShowFrameTime / Lows / Memory / Vram, FpsHudTextScale (0.7 – 2), FpsHudBackgroundAlpha (0 – 1) β€” β€” β€” On-screen performance overlay (F10). Frames longer than 1 s (loading screens, alt-tab) are not counted in the lows.
Live Overlay LiveOverlayToggleKey any key β€” β€” Opens the live tweak window (F11).
Diagnostics VerboseLogging True / False β€” β€” Extra [GraphicsOverdrive] lines in the BepInEx log (rate limited).

Tessellation note: the water and terrain tessellation dials only take effect while the game's own Tessellation setting (Settings > Graphics) is on. The overlay's Water tab shows its state.

SSR note: the SSR settings do nothing until EnableScreenSpaceReflections is on (Balanced leaves it off; High, Ultra and SSRT switch it on).


⚑ Built-in 1-Click Profiles

The preset bar sits on the Graphics Settings tab and in the F11 Live Overlay. Every built-in preset starts from the game's own values, so switching presets never leaves the previous preset's overrides behind. Each line lists what differs from Vanilla.

  1. πŸ›‘οΈ Vanilla: the game's own values (150 m shadows at 2048 px with StableFit projection, 45 m grass at 1.5x density, 2x LOD, torches 40 m with shadows to 20 m, 40 active point lights, TAA, ACES, 65Β° field of view, a 4 MB streaming buffer, SSR off, tessellation 4).
  2. βš”οΈ Balanced: 220 m shadows (CloseFit), full-res AO, 12 pixel lights, torches 60 m (shadows 35 m), 2.5x LOD, 60 m grass at 1.1x, 1-frame queue, 32 MB streaming, water tessellation 6, smaller smoke puffs (1.6 m), 70Β° field of view. SSR off.
  3. πŸ‘‘ High: 320 m shadows at 4096 px, SSR (half-res, 128 steps), High AO, 16 pixel lights, torches 80 m (shadows 50 m, 80 active lights), 3.5x LOD, 80 m grass at 1.25x, 64 MB streaming, water 8 / terrain 6, 75Β° field of view, 10 m zoom.
  4. πŸ”₯ Ultra: 480 m shadows, SSR (full-res, 256 steps), VeryHigh AO, 24 pixel lights, torches 110 m (shadows 70 m), unlimited point lights and point-light shadows, 5x LOD, 105 m grass at 1.5x, 128 MB streaming, water 12 / terrain 8, 80Β° field of view, 12 m zoom.
  5. 🌟 SSRT: the maximum-quality profile. 700 m shadows, SSR (full-res, 512 steps, 280 m), VeryHigh AO, 32 pixel lights, torches 150 m (shadows 90 m), unlimited point lights, 7.5x LOD, 130 m grass at 1.8x, 128 MB streaming, water 16 / terrain 12, 85° field of view, 15 m zoom. Very heavy on the GPU; the name stands for screen-space ray tracing, which here means the raymarched screen-space reflections.

The tuned presets also set field of view and zoom distance; change them afterwards if you prefer your own (screen shake is never touched by a preset).

The scaler (Vanilla or FSR 3, see below) is not part of a preset: you pick it separately, and changing presets keeps it.

A fresh install starts on Balanced, or on Vanilla when the GPU reports under 4 GB of VRAM. Your own saved presets appear next to the built-in ones. Tweaking any dial (in the menu, the overlay or BepInEx's configuration manager) switches the active profile to Custom, and Custom is kept across restarts and display changes. Values in the config file that were edited by hand and no longer match the stored preset are kept as Custom at startup instead of being overwritten. Choosing a preset applies it (and links it to the current display resolution, so a laptop / external monitor swap can switch profiles automatically).


πŸš€ FSR 3 Upscaling & Frame Generation (Native Door, experimental)

Valheim has no modern upscaler. Graphics Overdrive adds AMD FSR 3 through its Native Door: a small patcher and Vulkan libraries that ship in this package. The Native Door is on by default: it opens at game start, so FSR 3 can be picked without a restart, and nothing in the picture changes until you choose FSR 3 (or DLSS with the add-on). It can be switched off on the settings page.

What you get

  • FSR 3 upscaling as its own scaler, next to the game's own (Vanilla). Modes, with the render size per axis: Native AA (full size, anti-aliasing only), Ultra Quality (1.3x smaller), Quality (1.5x), Balanced (1.7x), Performance (2x) and Ultra Performance (3x). Each button shows the render size for your screen.
  • Output scale 100 – 200%: above 100, FSR 3 builds an image larger than your screen and scales it down, which is supersampling on top of FSR 3's anti-aliasing.
  • Sharpening (FSR 3's RCAS, 0 = off) and texture mip bias (Auto keeps textures sharp at the lower render size, as AMD recommends; Manual; Off).
  • FSR 3 frame generation: generated frames between the rendered ones, for smoother motion with a little more input latency. By default it fills up to your frame limit: every frame the game renders in time is shown as it is, and generated frames fill the gaps (for example 80 rendered + 40 generated = 120 frames per second; in a heavy fight 50 + 70). While the game keeps up with the limit by itself, nothing is generated. It never slows the game down: after a hitch it catches up instead of showing everything later. It works with Vanilla scaling too. AMD recommends a base frame rate of about 60 FPS or more.
  • A sharp HUD with frame generation: with FSR 3 as the scaler at output scale 100%, frame generation also gets the game's 3D view without the HUD, so the crosshair, hotbar, minimap, chat and menus come from the rendered frames instead of being interpolated with the moving scene.
  • The scaler is independent of the presets, so any preset pairs with any FSR 3 mode.

Requirements

  • Vulkan. On Linux, the native Linux version of Valheim already runs on Vulkan. On Windows, Valheim runs on Direct3D 11 unless you add -force-vulkan to its launch options (Steam: right-click Valheim > Properties > General > Launch Options). Under Proton, use the native Linux version instead. macOS is not supported.
  • A GPU and driver with Vulkan support. FSR 3 runs on AMD, NVIDIA and Intel GPUs. If your GPU lacks a feature FSR 3 needs, the settings page says so and FSR 3 stays off.

How to switch it on

  1. The Native Door is on by default. If you switched it off: Settings > Graphics, section 🎯 RESOLUTION, SCALING & TEXTURES, switch on Native Door for FSR 3, then restart the game.
  2. On the same page, choose Scaler: FSR 3 and a mode. It applies at once, and the status row shows the render size and the cost per frame.
  3. For frame generation, choose Frame Gen: FSR 3 and restart once. After that, switching between FSR 3 and Off works without a restart. The status row shows rendered + generated frames per second.

The same controls are in the F11 overlay (tab 🎯 Scaling).

Good to know

  • The very first start of FSR 3 can hitch for a moment while the graphics driver compiles its shaders.
  • FSR 3 upscales the game's finished image, post effects included. The game's own anti-aliasing is switched off while FSR 3 runs, because FSR 3 does its own.
  • The HUD is kept sharp only with FSR 3 as the scaler at output scale 100% (the status row says "HUD from the real frames"). With the Vanilla scaler, supersampling above 100% or DLSS Frame Generation, the HUD is part of the generated frames, so its edges (crosshair, hotbar, minimap) can smear slightly while the camera moves. HUD elements that move with the world (enemy health bars, damage numbers) are shown at the rendered frame rate.
  • Depth check: the status rows of the scaler and of frame generation end with "depth checked: …". "ok" means the depth handed to FSR 3 / DLSS matches the scene. "Unsure" shows when little with collision is in view (open sky, water) and clears by itself. NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED should never show unless the "old depth copy" diagnostics switch is on: please report it with your logs.
  • Things the game animates inside its shaders (wind in trees and grass, water waves, particles, fire and smoke) come without motion vectors from the game, so frame generation has to estimate their movement: a little shimmer or ghosting around them is expected.
  • The frame generation limit (πŸ–₯️ FRAME PACING > Frame Gen Limit) is the most frames shown per second. Its default 0 means your display's refresh rate, so frame generation never shows more frames than the display can (the extra frames would tear). On a VRR display (FreeSync, G-Sync) set it a few below the refresh rate, for example 162 on a 165 Hz screen. With the game's Vsync on, the display's refresh rate is the limit.
  • Use one frame generator at a time. Do not combine it with Lossless Scaling, lsfg-vk, AFMF or your driver's own frame generation.
  • Safe mode: if the game fails to reach its first frame twice in a row with the Native Door on, the Native Door switches itself off and the settings page says why. To try again, delete BepInEx/cache/GraphicsOverdrive/vulkan/strikes.txt.
  • What it touches: at game start the patcher (BepInEx/patchers) switches on a Vulkan layer that enables the GPU features FSR 3 needs. It also copies one small library into the game's own plugin folder, where Unity hands it the frame: valheim_Data/Plugins/x86_64/go_router.dll on Windows, libgo_router.so on Linux. Switching the Native Door off removes that copy at the next start. If you uninstall the mod while the Native Door is on, delete that one file yourself; it does nothing on its own.
  • Logs: BepInEx/cache/GraphicsOverdrive/vulkan/ (patcher.log, layer.log, router.log, fg.log) plus the [Native], [Upscaler] and [FrameGen] lines in BepInEx/LogOutput.log. With Fill pacing fg.log gets a line every 10 seconds (rendered and shown rates, frame times, each kind of jump, latency), so a stretch that felt choppy can be found in it; past 1 MB the log moves to fg.log.old at the next start. Please include them, with your GPU, driver and operating system, when you report a problem.
  • DLSS comes as a separate, optional download: the Graphics Overdrive DLSS Add-on (GeForce RTX cards). It carries NVIDIA's DLSS runtime under NVIDIA's own licence, so this mod stays free of NVIDIA code. With the add-on installed, the scaler and frame-generation rows also list DLSS (DLAA to Ultra Performance, DLSS Frame Generation on RTX 40 series and newer). Without it, nothing here changes.

Native Door settings (config sections Native and Native Scaler; they appear only when the Native Door patcher is installed):

Setting Range / Options Default What it does
[Native] Enabled True / False True The Native Door itself, on by default so FSR 3 can be picked without a restart (it does nothing on DirectX, servers and headless runs). Takes effect at the next game start.
[Native] FrameGeneration Off, FSR3; with the DLSS add-on also DLSS, NvidiaSmoothMotion Off FSR3 = AMD FSR 3 frame generation (any GPU). DLSS = DLSS Frame Generation (DLSS add-on, RTX 40 series and newer). NvidiaSmoothMotion = the NVIDIA driver's own frame generation (DLSS add-on installed, Linux, RTX 40 series and newer). Turning it on from Off takes effect at the next game start; after that, FSR3, DLSS and Off switch live.
[Native] FrameGenHudless True / False True Keep the HUD sharp with frame generation: it gets the 3D view without the HUD, so the HUD comes from the rendered frames. Needs FSR 3 frame generation and FSR 3 as the scaler at output scale 100%; otherwise the HUD is interpolated as before. The layer checks the copy against the screen and sets it aside by itself if it does not match. Off = interpolate the HUD (for comparison).
[Native] FrameGenUprightInputs True / False True Diagnostics only, leave on. Frame generation gets the game's depth and motion vectors turned the right way up (Unity keeps them upside down on Vulkan). Off hands them over as stored, which makes moving things ghost in the generated frames; it exists to compare the two live (F11 Scaling tab and the settings page).
[Native] FrameGenOldDepthCopy True / False False Diagnostics only, leave off. Hands frame generation and the upscaler the depth copy of 1.0.0, which with the game's deferred rendering is a picture of the scene rather than depth: the ghost around your character comes back and the depth check in the status rows says NOT DEPTH. It exists to compare the two live (F11 Scaling tab and the settings page).
[Native] FrameGenPlayerMotionVectors True / False False Diagnostics, live: every renderer on your own character (body, armour, cape, backpack, weapons) writes its own motion vectors (per-object, skinned). If a ghost around your character disappears with it, some of them did not; with VerboseLogging each renderer's own setting is logged when your equipment changes. Off puts them back.
(no setting) Diagnostics: record 24 frames for the developer switch off Both menus, with frame generation on. Switch it on, close the menu and turn the camera around your character: after 3 s it waits for the camera to turn (at most 20 s), then saves what frame generation works on for 24 consecutive frames: depth and motion vectors, the upscaled image as the screen gets it and each frame's camera numbers, to BepInEx/cache/GraphicsOverdrive/capture-<time>/ (raw data, about 28 MB per frame at 2560x1440, about 0.7 GB in all, written in the background). It switches itself off when the files are written; nothing changes on screen. For the developer to replay the frames offline.
[Native Scaler] Scaler Vanilla, FSR3; with the DLSS add-on also DLSS Vanilla Vanilla = the game's own scaler with CustomRenderScalePercent. FSR3 = AMD FSR 3. DLSS = NVIDIA DLSS (DLSS add-on, GeForce RTX).
[Native Scaler] Quality NativeAA, UltraQuality, Quality, Balanced, Performance, UltraPerformance Quality FSR 3 / DLSS mode (render size per axis: 1x, 1.3x, 1.5x, 1.7x, 2x, 3x smaller). With DLSS, NativeAA is DLAA, and UltraQuality is FSR 3 only.
[Native Scaler] OutputScalePercent 100 – 200 100 Size of the upscaled image relative to the screen; above 100 it is scaled down to the screen (supersampling).
[Native Scaler] Sharpness 0 – 1 0.25 FSR 3 sharpening (RCAS), 0 = off.
[Native Scaler] DlssPreset Default, J, K, L, M Default DLSS add-on only: the DLSS model ("DLSS Model" in the menus, where Default reads "Auto"). Default lets NVIDIA choose per mode; K = transformer (best quality), J = like K with less ghosting but more flicker, L = the default of Ultra Performance, M = the default of Performance.
[Native Scaler] MipBias + MipBiasManual Auto, Manual, Off; -3 – 1 Auto; -1 Texture sharpness while FSR 3 renders below the screen size. Auto = log2(render / output) - 1.
[Native Scaler] DiagnosticFlipMotionX / Y True / False False Diagnostics only. Leave these off unless moving the camera smears the picture, and report it if it does.
[Native] DeviceExtensions, Features, Inject, LayerLogLevel text / True, False / 0 – 2 as shipped Advanced: what the Vulkan layer switches on, and how much it logs.
[Native] RayTracing True / False False Experimental probe, next game start. The layer also switches on the GPU's hardware ray tracing on the game's Vulkan device, and the mod checks whether it works there: it traces 4096 test rays inside the game's frame, reports whether Unity's own ray tracing turns on, and counts what a ray-traced scene would have to cover once you are in a world. Nothing is drawn with ray tracing; the results are the [RayTracing] lines in BepInEx/LogOutput.log and the F11 Engine tab.

Frame pacing (Settings > Graphics, section πŸ–₯️ FRAME PACING, and the F11 Scaling tab; works with or without the Native Door). These settings go through the game's own frame limiter, so its FPS limit and its 60 FPS menu cap still apply. The game runs borderless and cannot switch your display's mode (Unity's exclusive fullscreen exists only on Windows); a limit below the display's refresh rate is a pacing target that a VRR display (FreeSync, G-Sync, adaptive sync) follows. The same section has the switch for the FPS HUD (F10), which shows the frames on screen with frame generation and the real (rendered) rate underneath.

Setting Range / Options Default What it does
[Display] FrameGenLimit 0 – 360 (the slider goes up to your display's rate) 0 Frame generation limiter: the most frames per second shown while frame generation runs, 0 = the display's refresh rate. With Fill pacing the game renders up to this many frames itself and generated frames fill the rest; with Even 2x the game renders half of it. On a VRR display set it a few below the refresh rate; without VRR pick one that divides the refresh rate (90 or 60 on 180 Hz), or frames stay on screen for uneven numbers of refreshes (the status row says so). With the game's Vsync on the display's refresh rate is the limit. Without frame generation it does nothing (use the game's own FPS limit).
[Display] FrameGenPacing Even2x, Fill Even2x Even2x: exactly one generated frame halfway between two rendered ones; the game renders half the limit, which leaves it spare time, so its frames stay even (Valheim's frame times vary a lot). Fill (FSR 3): frames go out on an even clock at the limit; every rendered frame that arrives in time is shown, generated frames fill the gaps (up to 4 per rendered frame), and nothing is generated while the game keeps up. Fill works best when the game's own frame rate is steady: an unusually long frame shows as a small jump. It has about half a rendered frame more latency. DLSS Frame Generation always uses Even2x.
[Display] HalfRefreshRate True / False False The game renders at most half the display's refresh rate. With frame generation the generated frames fill up to the limit; without it and with the game's Vsync on, every frame is shown for two refreshes.
[Display] FixUnsupportedResolution True / False True At game start, a saved fullscreen resolution that the monitor does not offer (for example one kept from a laptop screen after moving to an external monitor) is replaced by the monitor's largest mode and saved; Valheim checks this itself only on the Steam Deck. With frame generation on, a saved fullscreen resolution of another shape than the monitor (16:10 on a 16:9 monitor) is replaced by the monitor's own resolution, because it crashed the game in the graphics driver right after start (Linux, XWayland). Same-shape choices (1920x1080 on 2560x1440) are kept; windowed mode is never changed.

🏁 Benchmark

A menu-scene stress test, started from Settings > Graphics on the main menu (button under the preset bar). In a loaded world the button is grayed out.

  • The camera tours the viewpoints the game itself placed in the menu scene (about 3.5 s per leg, roughly 20 s in total) while frame times are recorded. It only moves the menu camera, so it cannot affect a world, your character, other players or a server.
  • Before it starts, your current dials are saved as a preset called benchmarked_N (the newest one is reused when nothing changed), and Settings closes as if you had pressed OK.
  • The result screen shows average FPS, 1% / 0.1% lows, frame-time deviation, a per-leg breakdown and an estimated peak VRAM, and a report is written to BepInEx/config/GraphicsOverdrive/Benchmarks/.
  • While it runs, the game's own 60 FPS menu cap is lifted so the number reflects your GPU. If V-Sync or a frame limit is on, the report says so, because the numbers cannot exceed it.
  • Esc aborts a run. An aborted run records nothing.
  • Scope: the menu scene is much lighter than a world. Use it to compare presets and dials on the same PC and resolution, not to predict FPS in a base or a forest. For real gameplay numbers use the FPS counter (F10) while you play.

⌨️ Hotkeys

Hotkey Action Description
F10 Toggle Performance HUD FPS, frame time, 1% / 0.1% lows, memory, VRAM estimate. Rebindable in the config.
F11 Toggle Live Tweak Overlay The live tweaking suite with cursor unlock and input blocking. Rebindable in the config. F11 is also the game's screenshot key; it does not take a screenshot when it opens or closes the overlay.
Esc Abort stress test Stops a running menu-scene stress test and restores the menu.

πŸ”Œ What a Mod Can and Can't Do

The plugin changes what Unity and the game already expose. The Native Door (see the FSR 3 section) goes one step further: it opens the game's Vulkan device before the game creates it, which is how FSR 3 gets in. What is still not possible:

  • Not included: hardware ray tracing, XeSS or NVIDIA Reflex. SSR here is screen-space. DLSS is the separate add-on (see the FSR 3 section). An experimental switch ([Native] RayTracing) only tests whether hardware ray tracing can run on the game's device; nothing is drawn with it.
  • No async-compute tricks. The game has almost no compute work to overlap.
  • No variable-rate shading. Unity enables the Vulkan extension but exposes no managed API for it.
  • FSR 3 needs Vulkan. On Windows that means the -force-vulkan launch option; under Direct3D 11 the Native Door stays closed. External tools such as gamescope (FSR 1) on Linux keep working as before. Frame-generation tools such as Lossless Scaling run outside the game, so do not stack them with FSR 3 frame generation.
  • The F11 Engine tab lists what your GPU / API report supports.

πŸ’‘ Good to Know

  • Watch the cost. The heavy dials are SSR (full resolution and many steps), full-res AO, tessellation factors, a render scale above 100%, very long shadow distances and high LOD bias. The presets are ordered by cost; raise things one at a time with the F10 HUD and the VRAM gauge open.
  • The VRAM gauge is an estimate. It follows your dials in the right direction but is not a measurement.
  • Turning the master switch off re-applies the game's own graphics settings at once (quality settings, light ranges, post-processing, render scale). Per-object values such as grass, water, terrain, smoke, item glow and camera return as those objects are recreated, at the latest on the next start.
  • Where things live: the config is BepInEx/config/com.wubarrk.graphicsoverdrive.cfg, saved presets are BepInEx/config/GraphicsOverdrive/Presets/*.json, stress-test reports are in BepInEx/config/GraphicsOverdrive/Benchmarks/, and the Native Door keeps its logs and state in BepInEx/cache/GraphicsOverdrive/vulkan/. To start over, delete the cfg (and the Presets folder if you want).
  • Troubleshooting: the mod's lines in BepInEx/LogOutput.log come from the GraphicsOverdrive source; switch on VerboseLogging for more detail. If a game update breaks one dial, the mod skips only that part, logs one warning line for it ("could not be applied and is skipped") and everything else keeps working.

🧩 Compatibility

  • Client-side only. It works in single-player and on any server, and nobody else needs it. It never touches networking, world data or other players.
  • Other graphics mods: with Exclusive Control on (the default, [0 - Master] ExclusiveControl, also on the settings page and in the F11 Engine tab), Graphics Overdrive's values are the ones drawn. Right before each frame it puts back anything another mod changed among the settings it has a dial for (shadows, LOD, reflection probes, anti-aliasing, SSR, AO, post-FX values, water and terrain), and it removes doubled effects: one ambient occlusion (the game's Amplify Occlusion, so a second post-stack or add-on AO is switched off), one anti-aliasing (FXAA / TAA, or FSR 3 / DLSS alone, no MSAA on top), one reflection pass and the game's own post-processing profile. The first correction of each setting is logged once, the F11 Engine tab counts them and names the mods that patch the game's graphics code. Settings Graphics Overdrive has no dial for (for example another mod's water colour, normal-map strength or depth-of-field tuning) stay with that mod. Switch Exclusive Control off to let whichever mod writes last win.
  • Dedicated servers: if the DLL is placed on a server by accident it detects the headless process, writes nothing and does nothing. The Native Door patcher stays inert on servers too.
  • Overlays and other Vulkan layers (Steam overlay, MangoHud, OBS capture and similar) can run alongside the Native Door. Use only one frame generator at a time.

πŸ”’ Privacy

Graphics Overdrive never connects to the internet: it downloads nothing, collects nothing and sends nothing. Everything it writes stays in your BepInEx folder, plus the one Native Door library in the game's plugin folder while the Native Door is on.


πŸ“¦ Installation

Gale Mod Manager (Recommended)

  1. Install Gale Mod Manager.
  2. Click Install with Mod Manager at the top of this page.

Manual Installation

  1. Ensure you have BepInEx 5.4.2351 installed for Valheim.
  2. Download the release zip and extract:
    • plugins/GraphicsOverdrive.dll into Valheim/BepInEx/plugins/GraphicsOverdrive/;
    • the contents of patchers/ (the patcher DLL and its native folder) into Valheim/BepInEx/patchers/GraphicsOverdrive/. Keep the native folder next to the patcher DLL. This part is only needed for FSR 3.
  3. Launch the game and open Settings > Graphics.

Dependency: denikson-BepInExPack_Valheim-5.4.2351.


πŸ“œ Licence & Credits

  • Graphics Overdrive Β© 2026 Wubarrk. All rights reserved, with the permissions listed in LICENSE.txt: play it, install it through mod managers and modpacks that reference this package, and show it in videos and streams.
  • FSR 3 comes from the AMD FidelityFX SDK (MIT licence, modified build). The Windows libraries also contain the MinGW-w64 runtime. The notices are in THIRD-PARTY-NOTICES.txt.
  • AMD, FidelityFX and FSR are trademarks of Advanced Micro Devices, Inc. NVIDIA, GeForce RTX and DLSS are trademarks of NVIDIA Corporation. Vulkan is a registered trademark of The Khronos Group Inc. Graphics Overdrive is an independent mod, not affiliated with or endorsed by AMD, NVIDIA, The Khronos Group, Iron Gate or Coffee Stain.

Crafted with pride by Wubarrk. Join our community and follow updates on Discord: https://discord.com/invite/GTTCnGS6Ym.

DatHost β€” Valheim server hosting, first month for one euro
DatHost β€” Valheim server hosting, first month for one euro
DatHost β€” Valheim server hosting, first month for one euro
DatHost β€” Valheim server hosting, first month for one euro
DatHost β€” Valheim server hosting, first month for one euro