Reshade 4.0 is now available for download, features rewritten ReShade FX compiler from ground up


Crosire has released a brand new version of Reshade, Reshade 4.0. For Reshade 4.0, crosire rewrote ReShade FX compiler from the ground up to generate SSA code making it fully standalone, blazing fast, and featuring much better error recovery. What’s really cool here though is that this compiler paves the future for Vulkan support (so hopefully we’ll also get support for DX12?).

Moreover, Reshade 4.0 got a major UI overhaul and the default keyboard shortcut for opening the in-game overlay has changed to the “Home” key. It also features new separate FPS and frame time overlays, fixes LOD bias for textures with auto-generated mipmaps in D3D9, fixes mouse cursor being reset to the window corner on first call when input blocking is active and more.

Those interested can download Reshade 4.0 from here and below you can find its complete changelog.

Reshade 4.0 Release Notes

  • Rewrote ReShade FX compiler from ground up to generate SSA code (way too many changes to list them all)
  • Added #line directives to HLSL/GLSL output for better error messages when HLSL/GLSL compilation fails
  • Added error for array declarations without a size
  • Added error when attempting to cast arrays
  • Added variable name to error messages referring to variables
  • Added context menu to variable widgets with option to reset them to their default value
  • Added option to display boolean values as combo box instead of checkbox (via < ui_type = “combo”; >)
  • Added option to save preset and settings with screenshot
  • Added in-game code editor
  • Added experimental variable editing UI which uses tabs instead of trees (disabled by default, can be enabled in settings)
  • Added progress bar to loading progress on splash bar
  • Added separate FPS and frame time overlay and changed their font to the same as the UI
  • Added radio button widget (via < ui_type = “radio”; ui_items = “Button 1\0Button 2\0…\0”; >)
  • Show techniques belonging to effects that failed to compile in the technique list
  • Updated to latest ImGUI with support for docking
  • Changed effect loading to use multiple threads for initial compilation with the ReShade FX compiler and only compile the generated HLSL/GLSL code for those effects that are enabled
  • Delayed effect loading to the first frame
  • Changed default keyboard shortcut to open the UI to “Home”
  • Changed default color scheme (thanks to CeeJay)
  • Changed drag widget to a slider widget (old one is still available via < ui_type = “drag2”; >)
  • Changed font scaling to actually re-create the font atlas with a different font size instead of scaling the atlas texture
  • Changed setup to use relative search paths by default
  • Changed setup to select Steam installation directory by default if present
  • Create a default preset file on launch if none exists (so no changes are lost if the user forgot to create one)
  • Reworked styling settings
  • Reworked various UI widgets (e.g. search path selection, preprocessor settings, …)
  • Reworked statistics UI design and added texture preview
  • Improved performance of update loop for special uniform variables (those with a < source = …;> annotation)
  • Fixed text input not working if raw input is used with legacy keyboard messages disabled
  • Fixed mouse cursor being reset to the window corner on first call when input blocking is active
  • Fixed race condition when accessing input causing ReShade to ignore keyboard strokes sometimes
  • Fixed errors staying on splash screen after reloading shaders
  • Fixed crash when constant folding encounters a divide by zero expression
  • Fixed implicit type conversion rules for functions with multiple parameters
  • Fixed window becoming inactive when global alpha is set to zero
  • Fixed LOD bias for textures with auto-generated mipmaps in D3D9
  • Fixed crash if sampler bindings exceed the input resource slot limit in D3D10/D3D11
  • Removed API specific effect compilers and instead handle everything in standalone ReShade FX compiler
  • Removed support for custom #pragma directives
  • Removed user name filtering from log output
  • Removed support for intrinsic functions in constant expressions from ReShade FX compiler
  • Removed performance mode hint popup (should be obvious enough with the checkbox now)