Valheim
Install with App

Details

Latest version
1.1.3
Last Updated
First Uploaded
Downloads
355
Likes
1
Size
5MB
Dependants
ADDatHost Valheim hosting
€1

Changelog

[1.1.3]

  • FSR 1, on every graphics card and every graphics API. New scaler choice FSR 1: the game's own scaler, with the smaller 3D view brought up to the screen by AMD FSR 1 (edge-adaptive upscaling plus sharpening) instead of the game's plain stretch. It is made of shaders only, so it needs neither the Native Door nor Vulkan: it runs under Direct3D 11 on Windows, where FSR 3 and DLSS cannot. It is meant for integrated graphics and older cards: lower the 3D render scale for more frames per second, and FSR 1 keeps the picture crisp. AMD's modes as render scale: 77 Ultra Quality, 67 Quality, 59 Balanced, 50 Performance.
    • One Scaler row for all scalers, on Settings > Graphics and in the F11 window, in Basic and Expert: Vanilla, FSR 1, and with the Native Door on Vulkan also FSR 3 and DLSS. Without the Native Door the row offers Vanilla and FSR 1; in 1.1.2 that page had no scaler row.
    • FSR 1 sharpening (Expert mode, 0 to 1, default 0.9, which is AMD's own default). 0 switches the sharpening pass off: one pass instead of two, the fastest.
    • FSR 1 only scales up. It runs while the 3D view is smaller than the screen (a render scale below 100, or the game's own 3D resolution setting below the screen's size) and waits otherwise. The status row and the F10 HUD show what it does ("FSR 1 960x540").
    • New settings: [6 - Resolution & AA] UpscaleFilter (Game / FSR1) and Fsr1Sharpness.
    • Tested on Linux with Vulkan, and confirmed by a Windows tester on integrated graphics (Intel HD Graphics 4600). If the picture looks wrong with FSR 1 on your GPU, pick Vanilla on the Scaler row and please report it.

[1.1.2]

  • The 3D render scale now goes down to 20% (it stopped at 50%). On Direct3D, where FSR 3 and DLSS are not available, this is the way to more frames per second: the 3D view is drawn smaller and the game stretches it to the screen. 100 still leaves the game's own 3D resolution setting in charge; above 100 is supersampling, as before.
  • The render scale dial is in Basic mode too, on Settings > Graphics and in the F11 window, whenever the game's own scaler or FSR 3 is in charge. Without the Native Door (Direct3D) it is the Basic page's scaler control; in 1.1.1 that page had none.
  • FSR 3 takes the render scale dial. Below 100, FSR 3 renders at that share of its output size in place of the size its mode gives. 20% is far below Ultra Performance's 33%: fast, and soft. At 100 or more the mode decides, as before. The status row and the HUD then read "render scale 40%" in place of the mode's name. DLSS keeps its modes: it only accepts their sizes.

[1.1.1]

  • Two menu modes: Basic and Expert, on Settings > Graphics and in the F11 window. The new Menu mode row is the first control in both, and switching changes no graphics value.
    • Basic (the default) shows the main choices: the presets (Vanilla, Balanced, High, Ultra, SSRT and your saved ones, the active one marked), the scaler with its quality mode, frame generation with its frame limit, ray tracing as one level, the performance HUD and the master switch.
    • Ray tracing levels: Low = sun and moon shadows. Medium = + blocked sky light, torches and fires, water reflections. High = + bounced light and reflections. Ultra = the same at full resolution. A combination you set by hand in Expert mode shows as "Custom".
    • Expert shows every setting. The settings page is organised in sections: ray tracing; scaler, frame generation and pacing; shadows and lights; reflections and ambient occlusion; world detail; water, terrain and atmosphere; post effects and camera; HUD and hotkeys; engine and diagnostics. The F11 window keeps its tabs and gets a Ray Tracing tab that holds everything ray tracing; the hardware ray tracing switch sits there too.
    • A note about restarting the game shows only while it is true (a switch differs from what is running now).
    • Labels and help texts on the settings page are shorter, in sentence case, with the unit in the label ("Grass distance (m, vanilla 45)", "Frame limit (fps, 0 = monitor rate)").
  • Display settings in the F11 window: resolution, window mode (fullscreen or windowed), VSync, FPS limit and the 3D render scale, so the game's own settings page is not needed for them.
    • A resolution or window change is applied with an Apply button and then asks "Keep this display setting?". It goes back by itself after 10 seconds, on Esc, or if you close the game without answering.
    • VSync and the FPS limit are saved the way the game saves them: Settings > Graphics shows them and they survive a restart.
  • Everything is ready at the first game start. The Native Door asks the GPU once and enables what the mod can use: the upscaler, frame generation and hardware ray tracing extensions. Switching frame generation or a ray-traced feature on later needs no restart.
    • Hardware ray tracing is on by default ([Native] RayTracing). It costs nothing while the ray-traced features are off, and a GPU without ray tracing simply does not get it. A config from an earlier version that still says RayTracing = false is switched on once; it stays an opt-out in the settings.
    • Frame generation (FSR 3, and DLSS with the add-on) switches on and off while you play. Its layer is loaded at every start and does nothing while frame generation is Off: the game keeps its own screen buffers, no thread runs, nothing is copied. Switching it on or off makes the game rebuild its screen buffers once (about 50 ms). [Native] FrameGenPreload = false brings back the old behaviour. NVIDIA Smooth Motion still needs a restart.
    • If the graphics driver refuses the full set, the game starts with less instead of failing: first without the ray tracing set, then with the game's own request. The log and the status rows say which one happened.
    • If a game start does not reach its first frame, the next start loads less by itself (no ray tracing set, no frame generation preload), and both menus say so. If that fails too, the Native Door switches itself off, as before. To try the full set again, delete stage.txt in BepInEx/cache/GraphicsOverdrive/vulkan/.
    • Hardware scan: at every start the Native Door records what your GPU offers and what the game and the Native Door use of it (ray tracing, mesh shaders, bindless texturing limits, multi-draw indirect, BC / ASTC / ETC2 texture compression, fragment shading rate, video memory). One summary line goes into the log; the list is on the F11 Engine tab and in the settings page's engine section, the full file is hardware-scan.txt next to the Native Door logs.
    • The ray tracing probe no longer runs by itself at every start; it runs when you press its button (or with verbose logging on).
  • Ray-traced sun and moon shadows reach beyond the traced range (Hybrid and RT only). A forest across a lake, a mountain or anything else too far away to be traced casts its shadow near you again; in 1.1.0 those spots were lit, so a low sun shone through distant forests. The game's own shadow fills in exactly there, and everything that is traced keeps its sharp shadow. New switch Far shadows, on by default, about 0.15 ms per frame on an RTX 4070 laptop GPU.
    • The sun's and the moon's glare on the water disappears where the light is blocked, near or far, while ray-traced water reflections are on (from the Medium level). The game's own water never takes shadows, so without them the glare shines through.
    • Ray-traced sun shadows cost less: each shadow ray goes through the scene once instead of twice (about 40% less shadow-ray time, same picture).
  • Ray-traced torches and fires:
    • Lit exactly like the game's own lights. Valheim draws its lights with its own toon-style shader (light in steps, slightly brighter at full strength). 1.1.0 used Unity's standard formula, about 10% darker and without the steps. Graphics Overdrive now checks which light shader the game uses and matches it; if another mod puts Unity's standard shader back, it matches that.
    • Every light casts its own shadow in its own colour. Before, all traced lights at one spot shared one shadow value, so one torch's shadow came out washed out and tinted with the other lights' colours. Now the two strongest lights at each spot get their own shadows and the rest share one: where a post blocks the fire but a lamp still reaches, you see the lamp's light, and it is easy to tell which light a shadow belongs to.
    • Shadows no longer smear while a flame flickers. The traced shadows follow the light's resting point; the light itself still flickers like the game's. A torch you carry keeps its shadow with you.
    • Sharper and in the right place: a traced light is now the size of a flame (12 cm for a torch; 1.1.0 used up to 30 cm, which made torch shadows too vague to tell where the light was), and shadow edges sit within about half a pixel of the true edge instead of about 2 pixels off.
    • Fire-lit rooms show in reflections and bounced light even when they are off screen: rays that leave the screen now see torches and fires too, not only the sun and the sky.
    • New dial Point Light Strength (0 - 2, default 1 = exactly the game's own brightness).
    • The status row shows what the traced lights cost ("6 point lights (0.30 ms to light them)").
  • GI Strength above 1 only deepens the shade. In 1.1.0 it also multiplied the bounced light, so strongly lit rooms got brighter still.
  • Camera mods keep working. Graphics Overdrive used to rewrite the field of view, the zoom limits and the screen-shake strength on every frame (the Balanced preset alone set 70 degrees), which overruled first-person mods, zoom and field-of-view mods, bow-zoom effects and camera tweak mods. Now a camera value is written only when you moved its dial away from the game's own value and no other mod has set that value.
    • New setting Camera control: Auto (default) as above; On = your camera dials always win; Off = Graphics Overdrive never touches the camera. Moving a dial applies it once even when another mod set the value.
    • Presets (the built-in ones, saved ones and Vanilla) leave the field of view and the zoom limit alone while another mod owns them or Camera control is Off.
    • The log records the camera setup once per world ([Camera] lines: the mode, your dials, the plugins that patch the game camera, the other enabled cameras) and says once when it leaves a value to another mod, so a report about a camera mod comes with what is needed.
  • Texture packs (Willybach's HD Valheim, VSideLoader and CustomTextures folders, Seasonality and Seasons, Badger's HD Terrain, Cartur's HD Blood):
    • Ray tracing follows the textures a pack swaps in. Ray-traced reflections and bounced light show the pack's textures, and leaf shadows follow the pack's leaf shapes, also when a texture changes while you play: a season change, a reload command, a tint, or a location whose textures the pack swaps a moment after it appears. The reflection follows within about 5 seconds, a leaf shadow within about 10.
    • Leaf shadows no longer turn into solid boxes for a moment when a season or a pack swaps a leaf texture: the old shape stays until the new one is ready.
    • Both menus say what is installed and what it costs (the "Texture packs" line with the texture settings in Expert mode): the loaders found, their files, and the video memory their textures take. A pack whose texture data is larger than your GPU's video memory is called out (Willybach's HD Valheim 2.0 "HIGHER" loads 26.6 GB of textures at the main menu).
    • New: texture pack fit, Auto by default. Willybach's HD Valheim loads every texture of the pack into video memory at the main menu: 26.6 GB for its HIGHER tier. On Linux and Proton a pack that does not fit stops the game at its loading screen (the driver runs out of memory). There the fit loads the pack's biggest textures smaller, only as far as needed for your GPU: on 8 GB no texture above 1024 px (3.3 GB of texture data; 4.6 GB of video memory on Vulkan, where the engine rounds every texture of 1024 px or less up), on 16 GB 2048 px (10.7 GB of data). On 8 GB with ray tracing on that is still more than fits next to the game: the engine keeps the rest in system memory and the game runs on; the 512 limit (about 1.4 GB) leaves more room. A pack that fits is not touched. On Windows the pack loads without help (Windows keeps the overflow in system memory, which is slower), so Auto leaves it alone there; pick a limit if you want it smaller. Only the size changes: each texture's own smaller version from the pack's files is used, nothing is recompressed. Auto, Off, or your own limit (4096, 2048, 1024, 512) in both menus; a change needs a restart. The log and both menus say what was decided.
    • The VRAM gauge counts pack textures, and texture arrays too (Badger's HD Terrain keeps its tiles in arrays, which Unity's own counter leaves out).
    • FSR 3 / DLSS texture sharpening reaches a pack's textures at once (before, a newly loaded texture got its mip bias up to 20 seconds later).
    • New: texture saver, Off by default. PNG packs load uncompressed (4096 x 4096 = 85 MB each). The saver compresses them to a quarter (DXT5, slightly lossy), one texture per frame, in the menu and on loading screens only, never while you play. Off, Auto (only when video memory is tight), Always, plus a "Compress now" button. It leaves alone: normal maps and other data textures, UI and sprite textures, textures a pack is still changing, and packs that ship compressed textures (Willybach's HD Valheim 2.0, HD Seasonality).
    • The status line says so when a pack's terrain shader has no tessellation (the terrain tessellation dial then does nothing for it), and when another mod installed a lighting shader this version of the game cannot draw (VSideLoader 1.1.2's "BetterLighting" turns every lit surface magenta on Valheim 1.0: update VSideLoader to 1.1.3).
    • Exclusive control never reverts a texture mod's work.
  • The VRAM gauge shows the real figure. With the Native Door on Vulkan, "Active" is the video memory the game really uses, as the GPU driver counts it (VK_EXT_memory_budget); the peak stays an estimate. The gauge's colour follows whichever is worse.
  • Fixed: black patches on the ground with the game's Tessellation setting on and ray-traced bounced light, blocked sky light or point lights (also in 1.1.0). With Tessellation on, the game draws the ground with small bumps and dips (up to 25 cm) that the traced terrain does not have, so every dip started its rays under the traced ground and lost its torch light and its sky light: round black blobs, most visible at night. The underside of the terrain no longer stops any ray (sun and moon shadows already worked that way).
  • Fixed: orange sparkles on trees around a fire and white dots in the sea's reflection of a fire. A flame is tiny and far brighter than anything it lights; the few rays that found it made single texels flash. One traced sample is now limited in brightness (its colour stays); the fire's light itself comes from its point light as before.
  • Removed: the "Terrain relief depth" dial. It never changed anything: the game's terrain shader has the property but does not use it (the bumps of tessellated ground are fixed in the shader). The terrain tessellation dial stays. A value left in an old config or a saved preset is ignored.
  • Fixed: a field of view you set after a grapple (or any other short field-of-view effect of the game) now applies and stays; before, the game pulled it back to the old value.
  • Fixed: a camera that another mod renders itself (a mirror, a photo or portrait camera) now sees the lights that ray-traced point lights take over; before, it could draw them dark.
  • Fixed: exclusive control switched off another mod's component on the game camera just because its name contained "Occlusion" or "ssr" (a culling mod, for example). It now only touches components that draw on the camera and are named like a second ambient occlusion, anti-aliasing or screen-space reflection effect.
  • Fixed: with frame generation Off the game is no longer forced out of a fullscreen resolution of another shape than the monitor at start. Frame generation is not started in such a resolution instead (it crashed the graphics driver on Linux, XWayland), and the status row tells you which resolution to pick.
  • Fixed: with Graphics Overdrive switched off, the settings page offered no way to switch it back on. It now shows the master switch.
  • Fixed in the F11 window: switching the scaler, frame generation, the HUD or ray tracing no longer turns your active profile into "Custom" (only changing a graphics dial does, as on the settings page); long lines on the Engine tab wrap instead of stretching the whole tab.
  • Fixed on the settings page: the list of saved presets drew over its neighbours (they are now five to a row); the FPS HUD switch was listed twice; empty note rows left gaps.
  • Ray tracing never attaches to another mod's camera that is tagged MainCamera, and when FSR 3, DLSS or frame generation stops, only the depth flags it added come off the game camera.
  • Windows: symbol files. Each of the three Windows native libraries now comes with its .pdb file (the names and addresses of its functions), which Hexium requires next to native code. The libraries' code is the same as before; the files are not loaded by the game.

[1.1.0]

  • New, experimental: hardware ray tracing. With the Native Door and a GPU with hardware ray tracing (GeForce RTX, Radeon RX 6000 and newer, Intel Arc), the lighting near you can be traced with the GPU's ray tracing, inside the game's own frame (Vulkan ray queries). Every part has its own switch, works live and is Off by default: Settings > Graphics, shadow section, and the F11 Shadows tab.
    • Needs "Hardware ray tracing" on (Settings > Graphics, engine section, or F11 Engine tab; [Native] RayTracing), then a game restart. Linux and Windows (-force-vulkan).
    • Safe by design: any error switches it off with the reason in the status row, and the game's own shadows, lighting and effects come back. If the game does not close cleanly while it runs, it starts switched off next time.
    • Developed on Linux with an NVIDIA GeForce RTX 4070 laptop GPU. Not yet tested on Windows, AMD or Intel.
  • Ray-traced sun shadows (the moon's too): Off, On, Hybrid and RT only, plus Ray-Traced Range (20 - 150 m, default 60), shared by all the ray-traced lighting.
    • Hybrid (recommended): within the range the traced shadows, and the game's own shadow only where something that is not traced (a dropped item) stands between a surface and the sun. Sharp traced shadows without doubled edges.
    • On adds traced shadows to the game's own: small objects, thin poles and fence posts, and the contact under things get sharp shadows that the shadow maps miss or blur. Both show, so the game's softer edges double up around the traced ones.
    • RT only: within the range only the traced shadows, the cleanest look. Grass and the few things that are not traced cast no shadow there.
    • Traced: the terrain, buildings, rocks, trees with their leaves and needles (cut by the leaf textures exactly like the game's own shadows), ships, carts and other objects, and characters and creatures: their shadows follow every move, taken each frame from the game's own GPU-skinned meshes. Objects just beyond the range and the terrain up to 200 m beyond it are traced too, as shadow casters: a hill's shadow at a low sun reaches into the range. Not traced: grass, water (as a caster), effects and dropped items.
    • Meshes the game keeps on the GPU only (late armor sets, many creatures and weapons, some building pieces) are traced too: they are read back from the GPU once, when they first come into range, without touching the game's own copies.
    • Ray-Traced Trees Sway With The Wind (on by default): trees and bushes lean with the game's wind in the traced scene (its own wind and each tree's own sway settings), so their shadows and the light through their leaves follow the moving crowns.
    • The status row shows what runs, how many objects are traced, the memory used and the GPU time per frame, plus the result of a depth check of its own ("depth checked: ok").
  • Ray-traced global illumination (Off, AO only, Full, + GI Strength 0 - 2): the game's flat ambient light is replaced by traced light.
    • AO only: sky light is blocked where something is in the way (under roofs and trees, in caves and corners). Cheaper.
    • Full: that, plus sunlight and firelight bounced off nearby surfaces onto others (a sunlit wall lights the ground beside it in its own colour).
    • Unity's sky reflections dim where the sky is blocked too. Strength 0 = the game's ambient, 1 = traced, 2 = twice the difference.
  • Ray-traced reflections: smooth and wet surfaces reflect what is really there, also off screen and behind other objects, where screen-space reflections show nothing. Where a reflection sees only sky, the game's sky reflection stays.
  • Ray-traced water reflections: the sea, lakes and rivers mirror the shore, trees, buildings, ships and mountains near you, on the game's own waves (the same ten waves the game moves the water with, its wind and clock, smaller in shallow water). More reflection at a low angle, less looking straight down. Where the water reflects only sky, the game's own water stays.
  • Ray-traced point lights (+ Point Light Softness, 0 - 3): torches, fires, braziers and lamps near you (up to 32) light the scene with ray-traced soft shadows: everything, you included, casts a shadow from every light, and no light leaks through walls. Their brightness, colour and flicker stay the game's. Softness: 0 = sharp, 1 = natural, 3 = very soft.
  • Ray-Traced Lighting Resolution (Full, Half, Quarter; default Half): global illumination, reflections, water and point lights are traced at this size relative to the render size, smoothed over a few frames and brought back to full size along edges. Quarter is meant for 4K and weaker GPUs. A ray that hits something that was on screen takes its lit colour from the last frame (so light bounces more than once over time); elsewhere the hit is shaded from its material's colour, the sun and the sky.
  • Conflicting effects are handled by themselves. While a ray-traced feature runs, the effect it replaces is switched off for your camera, so the two never stack: ray-traced reflections switch off the screen-space reflections, ray-traced global illumination switches off the screen-space ambient occlusion (the game's SSAO, and Post-Processing's own AO if another mod switched it on), and ray-traced point lights skip the game's own drawing of the traced lights and their shadow maps. Your own settings for them are never changed: they come back as you set them the moment the ray-traced feature is switched off or stops after an error. Both menus say what is being replaced.
  • Fixed: a value typed into a box in the F11 window was not applied (it stayed in the box, and even Force Apply All Dials used the old value). The window's text box used up the Enter key itself, a click on a button did not take the focus from the box, and a click into a second box lost the first one's value. Now Enter, a click anywhere outside the box (Force Apply All Dials, a tab, another box or slider) or closing the window applies it. A value outside the dial's range is set to its nearest end, text that is not a number is dropped (the box shows the value again), and a decimal comma counts as a point.
  • Fixed: a fresh install (or a deleted config) could start as "Custom" with the bare default values instead of on the first-start preset (Balanced, or Vanilla under 4 GB of VRAM). Another plugin can make BepInEx write Graphics Overdrive's still-empty config file before Graphics Overdrive looks for it (seen with StartupAccelerator's "Delay Config Save"), so the file counted as an earlier config. A config file counts as an earlier one now only when it holds Graphics Overdrive's settings.

[1.0.3]

  • Hexium's game-build check: the last two findings are gone. 1.0.2 was still listed as "expected to be broken", because the check also reads Graphics Overdrive's Harmony patches. Two of them hook into the game's 3D-resolution code (UpscaledFrameBuffer.UpdateCameraTarget, FrameBufferScaler.OnBufferCreated), which the dedicated server's build of Valheim (the build the check reads) leaves out; the game itself has both. They are now applied by name when the game starts, like the rest of that code since 1.0.2. Nothing changes in the game. If a game update ever removes them, the render scale dial, FSR 3 / DLSS and frame generation switch off with a log line.
  • Groundwork for an experimental feature of a later version ships with this one, switched off and hidden: nothing changes in the game or in the menus.

[1.0.2]

  • Fixed: on Windows, the Native Door went into safe mode and stayed there, so FSR 3, DLSS and frame generation were gone after the second start. Graphics Overdrive's Vulkan layer never saw a frame, so the patcher took every start for a failed one.
    • The mistake was ours: the layer did not answer one lookup (vkGetDeviceProcAddr) with its own function.
    • Steam's pipeline-cache layer (fossilize), which Steam switches on for the games it starts, sits above it and asks exactly that. The game's graphics calls then passed our layer by.
    • On Linux, Steam's overlay sits between the two and hid the mistake while the overlay was on; players with the Steam overlay off were affected too. On Windows, Steam puts the overlay above fossilize, so it showed either way.
    • Both Vulkan layers (the Native Door's layer and the frame generation layer) answer correctly now, on Linux and Windows. Confirmed on a Windows tester's PC (GeForce RTX 5070 Laptop GPU): the layer sees every frame, a second start is no longer in safe mode, and DLSS ran.
  • Safe mode left over from older versions is cleared once. They counted starts the layer could not see as failed starts, so a working PC could be stuck in safe mode. The first start of 1.0.2 clears that count, and the log says so. After that, safe mode works as before: it trips after two starts in a row that never reach a first frame.
  • Hexium's game-build check no longer lists Graphics Overdrive as "expected to be broken". The check reads the dedicated server's build of Valheim (Steam app 896660), which leaves out the 3D-resolution code (UpscaledFrameBuffer, FrameBufferScaler) that the game itself has and Graphics Overdrive uses. 1.0.1 was not broken in the game, and on a dedicated server it switches itself off. Graphics Overdrive now looks those parts up by name when the game starts, so the check finds nothing missing, and nothing changes in the game. If a future game update renames them, the render scale dial, FSR 3 / DLSS and frame generation switch off with a log line instead of throwing errors.
  • Depth check: no more false alarms while loading. It now waits until you are in the world (not on the main menu or the loading screen, not while teleporting or dead) plus 10 seconds. It reports NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED only once three checks in a row agree: single bad readings right after a spawn were false alarms.
  • With verbose logging on, the game camera line ([GameCamera] FOV=...) is written only when the FOV, zoom distance or camera shake changes, not once a second.
  • The optional DLSS add-on moves to 1.0.2 with it (same DLSS files, now requiring Graphics Overdrive 1.0.2).

[1.0.1]

  • Fixed: FSR 3 frame generation ghosting around your character (the known issue of 1.0.0). 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 (its red channel), so FSR 3 could not tell what was in front of what and blended your character's outline into the background while the camera turned. It showed up when recorded game frames were replayed outside the game: their "depth" had clouds and shadows in it. Depth now comes straight from the game camera's depth buffer, through a small shader that ships inside the DLL. 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. (The 1.0.0 notes said the game's depth was correct; it was not.)
  • New: depth check. While FSR 3, DLSS or frame generation run, a few physics rays are cast into the scene every two seconds and compared with the depth image at the same pixels. The status rows of the scaler and of frame generation (settings page and F11) show the result, and the log notes every change: "ok", or NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED if something is wrong. "Unsure" means too little with collision was in view (open sky, water).
  • With frame generation on, the game now renders into its own 3D texture also at native 3D resolution (at the screen's size, shown pixel for pixel), because the depth is copied from that texture's depth buffer. The game's own 3D resolution setting is not changed.
  • New diagnostics switch "old depth copy" (both menus, with frame generation on; [Native] FrameGenOldDepthCopy): brings back 1.0.0's depth copy to compare the two live. Leave it off.
  • The optional DLSS add-on has its own update to 1.0.1: it fixes a crash at game start on Windows with -force-vulkan.

[1.0.0] - Initial Release

  • ⚠️ Known issue: FSR 3 frame generation ghosts around your character. While the camera turns around your character, the generated frames show dithered, half-shifted copies of its outline (cape, backpack, weapon); the rendered frames and FSR 3 upscaling are not affected. It comes from FSR 3's frame interpolation: recorded game frames replayed through it outside the game show the same, its decision whether a pixel was hidden in the frame before or after flickers from pixel to pixel next to the character, while the game's depth and motion vectors are correct (DLSS Frame Generation gets the same data and shows no ghosting). For now: DLSS Frame Generation with the DLSS add-on on RTX 40 series and newer, or FSR 3 upscaling with frame generation off. A fix is being worked on.
  • Developed and tested on Linux: all development and testing was done with the native Linux version of Valheim on Vulkan and an NVIDIA GeForce RTX 4070 (laptop GPU). The Windows libraries are built from the same source and included, but have not been through the same testing; AMD and Intel GPUs have not been tested.
  • Built for Valheim 1.0.15 / 1.0.16+ (Unity 6000.0.75f1) on BepInEx 5.4.2351, .NET Framework 4.8. 100% client-side: nothing in it touches networking, servers, world data or other players, and it stays completely inert (no config file, no patches) if it is placed on a dedicated server.
  • Screen-Space Reflections (SSR):
    • Switches on Post-Processing Stack v1's raymarched reflections, which the game leaves off: up to 1024 ray steps, step size, max distance, blur, brightness, backface tracing, half or full resolution.
    • Screen-space only: it works on opaque surfaces (wet stone, metal, polished armor), cannot reflect anything off-screen and does not add reflections to the transparent water surface. It is not hardware ray tracing.
  • Full-resolution Ambient Occlusion: removes the downsampling of Amplify Occlusion; sample count, radius, power exponent and an intensity multiplier on the game's own per-weather AO strength.
  • Shadows up to 800 m: distance, 2 or 4 cascades, map size up to 4096 px, near-plane offset, CloseFit / StableFit projection.
  • Point lights: reach, shadow reach, active-light limit and shadow-caster limit. Applied to every light, including the ones that stream in later, and scaled from each light's own vanilla value so nothing compounds.
  • Water & terrain tessellation as separate dials (the Custom/Water and Custom/Heightmap shaders' _Tess), plus terrain relief depth, water ripple and refraction strength and a world fog density multiplier. Nearby water and terrain only; they need the game's own Tessellation setting.
  • LOD, grass and streaming:
    • LOD bias up to 10x, grass distance up to 160 m and grass density. Grass beyond the game's 100 m fade cap is now actually drawn, and changing a grass dial rebuilds the grass only once the slider stops moving.
    • Async upload buffer and time slice (the game uses 4 MB and 2 ms), queued frames, background loading priority.
  • Anti-aliasing and post-FX tuning: TAA / FXAA / off, FXAA quality, TAA sharpening, ghosting and jitter, chromatic aberration, motion blur, bloom, tonemapper, exposure, contrast, saturation, white balance and sun shafts. Camera field of view, zoom distance and shake; the game's temporary FOV effects (grapple kick and similar) are left alone.
  • Render scale 50 – 200%: below 100 uses the game's upscaler, above 100 renders larger and scales down (supersampling). 100 leaves the game's own 3D-resolution setting alone.
  • AMD FSR 3 upscaling and frame generation (experimental, Vulkan) through the Native Door: the door is on by default (it only loads its Vulkan layers at game start, so FSR 3 can be picked without a restart), and FSR 3 itself stays off until the player picks it:
    • A BepInEx preloader patcher enables a Vulkan layer before the game creates its graphics device, switching on only the GPU features FSR 3 needs and only when the GPU offers them. It copies a small router library into the game's plugin folder, where Unity hands it the frame, and removes it again when the Native Door is switched off.
    • Built from AMD's FidelityFX SDK v1.1.4 (MIT) for Linux (.so) and Windows (.dll, needs the -force-vulkan launch option). The patcher checks the libraries' hashes before using them. It stays inert on dedicated servers and headless processes, and it switches itself off after two starts in a row that never reach a first frame (safe mode).
    • The scaler is chosen independently of the presets: Vanilla (the game's own, with the render scale slider) or FSR 3 from Native AA to Ultra Performance. It adds an output scale up to 200% for supersampling, sharpening, and an automatic or manual texture mip bias. The game's own anti-aliasing and render scale step aside while FSR 3 runs.
    • FSR 3 frame generation: a second Vulkan layer adds generated frames between the rendered ones and paces them. It is fed by the game's depth, motion vectors and camera each frame, and it also works with Vanilla scaling. Unity keeps depth and motion vectors upside down on Vulkan relative to the screen image, so the layer turns them the right way up before frame generation sees them (without that, moving things ghost in the generated frames); a diagnostics switch hands them over unturned, only to compare the two live. Two more diagnostics switches: own motion vectors for every renderer on the player's character (live; with verbose logging each renderer's setting is logged), and a one-shot recording of 24 frames of what frame generation works on (depth, motion vectors, the upscaled image, camera numbers) while the camera turns, written in the background to the BepInEx cache folder for the developer to replay offline; it switches itself off when done and changes nothing on screen.
    • Fill pacing (FSR 3, for a steady frame rate): the frame generation limit is a cap that generated frames fill up to. Frames go out on an even clock at the limit, every rendered frame that arrives in time is shown as it is, and generated frames fill the gaps, each made for its own moment between the two rendered frames around it (for example 80 rendered + 40 generated = 120 frames per second; in a heavy fight 50 + 70). While the game itself keeps up with the limit nothing is generated. Up to 4 generated frames per rendered one. Fill pacing never holds the game back: after a hitch it fast-forwards the missed moment instead of showing every later frame that much later, so the added latency stays around one rendered frame. AMD's frame interpolation only makes the frame halfway between two frames, so it is patched for any position (MIT allows it, see THIRD-PARTY-NOTICES.txt). It costs about half a rendered frame more latency than Even 2x, the other choice: exactly one generated frame halfway between two rendered ones, with the game rendering half the limit. When the game is held back by the GPU, its frames are ready at varying moments; Fill pacing judges how early it can show them from the last second and a half of frames and keeps four swapchain images beyond the game's own, so it neither drops generated frames for want of an image nor jumps its clock on every unusually slow frame (in a test at 32 rendered fps: a third of the jumps and almost no dropped frames, for about 5 ms more latency). Its log gets a line every 10 seconds with what happened (rates, frame times, each kind of jump, latency).
    • The HUD stays sharp: with FSR 3 as the scaler at output scale 100%, frame generation also gets the 3D view without the HUD, so the HUD, map, chat, menus and other 2D elements come from the rendered frames instead of being interpolated with the moving scene (before, they smeared and doubled while turning). The layer checks that copy against the screen now and then and sets it aside on its own if it ever does not match. A switch turns it off for comparison. DLSS Frame Generation does not use it.
    • A dynamic 🎯 RESOLUTION, SCALING & TEXTURES section on Settings > Graphics shows only what was detected on the PC, with live status rows. The same controls are on a new F11 🎯 Scaling tab, and the F10 HUD shows the active scaler.
  • Frame pacing (Settings > Graphics > 🖥️ FRAME PACING, F11 Scaling tab, works without the Native Door): a frame generation limiter (the most frames shown per second, 0 = the display's refresh rate, so frame generation never outruns the display and tears), its pacing (Even 2x, the default: the game renders half the limit, which leaves it spare time so its frames stay even; Fill: the game renders up to the limit and generated frames fill the rest, best when the game's own frame rate is steady, since an unusually long frame shows as a small jump) and Half refresh rate. All of it goes through the game's own frame limiter, so its FPS limit and menu cap still apply; the status rows show the display rate, Vsync, the resulting rates and how many frames are rendered and generated, and point out when a limit does not divide the refresh rate (without VRR such a limit holds frames for uneven numbers of refreshes: 90 or 60 keep 180 Hz even). The F10 FPS HUD gets a switch there, and with frame generation it shows the frames on screen with the real rate underneath.
  • Safe screen resolution after a monitor change (on by default, a switch in the frame pacing section of both menus): at game start, a saved fullscreen resolution that the monitor does not offer is replaced by the monitor's largest mode and saved (Valheim makes this check itself only on the Steam Deck). With frame generation on, a saved fullscreen resolution of another shape than the monitor (a 16:10 laptop resolution on a 16:9 monitor) is replaced by the monitor's own resolution: on Linux under XWayland it crashed the game in the graphics driver right after start. Same-shape choices such as 1920x1080 on a 2560x1440 monitor are kept, and windowed mode is never changed.
  • Optional DLSS add-on (separate package, GeForce RTX): with it installed the scaler and frame-generation rows also offer DLSS Super Resolution, DLAA and DLSS Frame Generation (RTX 40 series and newer), on Linux and Windows. This package contains no NVIDIA code; without the add-on only FSR 3 is offered.
  • Exclusive Control (on by default): Graphics Overdrive's values are the ones drawn, even with other graphics mods installed. Right before each frame it puts back what another mod changed among the settings it has a dial for, and removes doubled effects: one ambient occlusion (a second post-stack AO, for example, is switched off), one anti-aliasing (the post stack's TAA stays off while FSR 3 / DLSS run, MSAA stays at the game's value), one reflection pass, the game's own post-processing profile. Each correction is logged once and counted in the F11 Engine tab, which also names the other mods that patch the game's graphics code.
  • Hardware ray tracing probe (experimental, off by default): [Native] RayTracing makes the Native Door also switch on the GPU's ray tracing extensions on the game's Vulkan device, then checks whether ray tracing works there: 4096 test rays traced inside the game's frame and checked one by one, Unity's own ray tracing support, and a count of what a ray-traced scene would cover. It draws nothing; the results go to the log and the F11 Engine tab.
  • Smoke and item glow: smoke puff size and a multiplier for the glow on upgraded weapons and armor (items without glow stay unchanged).
  • VRAM estimate and GPU readout: detected GPU, graphics API and VRAM size, an estimated scene VRAM use with a health gauge (the engine's loaded-texture figure plus a model of the buffers; a heuristic, not a measurement), and a read-only capability panel in the overlay's Engine tab.
  • Presets and profiles:
    • Vanilla (the game's own values), Balanced, High, Ultra, SSRT and your own saved presets. Every built-in preset defines every dial and starts from the game's own values, so switching presets never leaves the previous one's overrides behind.
    • Tweaking any dial (menu, overlay or BepInEx's configuration manager) switches the profile to Custom, which is kept across restarts and display changes. Config values edited by hand that no longer match the stored preset are kept as Custom at startup instead of being overwritten.
    • A fresh install starts on Balanced, or on Vanilla when the GPU reports under 4 GB of VRAM. Choosing a preset links it to the current display resolution, so a laptop / external monitor swap can switch profiles automatically (AutoApplyResolutionPresets).
  • Graphics menu takeover: Wubarrk's Red Ribbon, a live VRAM banner, a preset bar and Overdrive sliders above the standard rows on Settings > Graphics. While the mod is enabled its dials win over the game's own sliders for the values it controls; the game's checkboxes for anti-aliasing, SSAO, bloom, chromatic aberration, motion blur and tessellation stay in charge.
  • Every setting in both menus: the Settings > Graphics page and the F11 overlay carry the same dials in the same order and with the same conditions (rows for SSR, AA tuning, motion blur, colour grading and bloom appear when their switch is on), including the master switch, the performance HUD options, both hotkeys (click, then press a key; Esc cancels) and the Native Door's advanced keys. The two device-feature lists are shown read-only with where to edit them.
  • Live tweak overlay (F11): 8 tabs with the graphics dials (including the scaler and frame generation), cursor unlock and input blocking while it is open, saved-preset management, a shader property dump for finding further dials. The key is also the game's screenshot key, so the screenshot is skipped when it toggles the overlay.
  • Performance HUD (F10): FPS, frame time, 1% and 0.1% lows over the last 1000 frames (loading-screen frames are ignored), memory and VRAM estimate. The text is built four times a second, not on every GUI pass.
  • Menu-scene stress test: a camera tour of the main-menu scene's own viewpoints with per-leg average and 1% low FPS, an estimated peak VRAM, a saved report and a scorecard. It saves your dials as a benchmarked_N preset first, lifts the game's 60 FPS menu cap while it runs, reports V-Sync / frame-limit caps, is aborted with Esc and records nothing when aborted. It only moves the menu camera, so it cannot affect a world, a character or a server.
  • Privacy: no network access of any kind. Nothing is downloaded, collected or sent.
  • Licence: all rights reserved with the permissions in LICENSE.txt. The third-party notices (AMD FidelityFX SDK, MinGW-w64 runtime) are in THIRD-PARTY-NOTICES.txt.
  • Robustness: config changes collapse into one apply per frame and the config file is written about 1.5 seconds after the last change. Every apply step, the Harmony patches and the overlay window are isolated, and patches are applied one class at a time, so a game update that breaks one dial only costs that dial (one warning line in the BepInEx log) instead of stopping the rest or freezing the camera.
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