The Witcher 3 Reshade

Reshade 5.0 is now available for download, improving overall performance


The team behind Reshade has released a brand new version of it that is available for download. According to the team, Reshade 5.0 is a major rewrite of the underlying architecture, for improved performance, easier maintenance and future feature additions. Additionally, it comes with a new, extremely powerful add-on API.

Going into more details, Reshade 5.0 improves performance by automatically disabling GPU statistics gathering if statistics window is not visible. It also improves performance by multi-threading invocation of the HLSL compiler during effect compilation. Furthermore, it improves performance in OpenGL due to better thread local storage management.

You can download Reshade 5.0 from here. Below you can also find its complete changelog.

Reshade 5.0 Release Notes

Features #1
  • Added add-on API (this deserves much more than just one line in the changelog, but oh well)
  • Reworked internals and effect rendering to use an API abstraction layer rather than separate implementations for D3D9/10/11/12/OpenGL/Vulkan
    This makes future feature additions much easier to implement
  • Reworked depth buffer detection into a built-in add-on, improved the algorithm and made all features available for all APIs
    This now makes a depth buffer access work in a many games where it previously did not (in fact I have yet to encouter a game where it doesn’t work, after tinkering with the provided options)
  • Added SteamVR support
  • Added fake technique items at the top of the technique list for effects that failed to compile
  • Also added button to statistics window to save textures to image files
  • Added support for “[forcecase]” and “[call]” switch statement attributes to ReShade FX
  • Added independent blending support to ReShade FX (BlendEnable0 – BlendEnable8 etc. pass states)
  • Also added “mul” and “transpose” intrinsic overloads for non-square matrices to ReShade FX
Features #2
  • Added “tex2Dfetch” intrinsic overload that accepts a “storage” variable to ReShade FX (so you can both read and write to a texture)
  • Added “tex2Dgather” intrinsic overloads that accept individual offsets for each component to ReShade FX
  • Also added “firstbitlow”, “firstbithigh”, “countbits” and “reversebits” intrinsics to ReShade FX
  • Added support for renaming the ReShade DLL to “dinput8.dll” to hook
  • Added support for Vulkan “VK_EXT_tooling_info” extension for applications to query info about ReShade
  • Also added option to execute a command after saving a screenshot
  • Improved screenshot saving performance significantly
  • Improved “Clear alpha channel” option for screenshots to not save alpha channel to the image at all (RGB instead of RGBA)
  • Also improved performance by automatically disabling GPU statistics gathering if statistics window is not visible
  • Improved performance by multi-threading invocation of the HLSL compiler during effect compilation
  • Improved performance by avoiding unnecessary back buffer copy on Windows 8+
  • Also improved performance in OpenGL due to better thread local storage management
  • Improved performance and binary size by disabling exceptions, RTTI and switching to fast floating-point model
  • Improved performance a lot in general
Bug fixes #1:
  • Fixed crash on laptops with separate internal and dedicated graphics cards
  • Fixed duplicated effects/overlay in some games and on laptops with separate internal and dedicated graphics cards
  • Also fixed crash in Metro Exodus Enhanced Edition
  • Fixed crash when exiting some D3D12 games
  • Fixed crash when attaching PIX to D3D9 application with ReShade loaded
  • Also fixed crash in rare cases where a game has a Windows compatibility profile
  • Fixed crash when application has many windows
  • Fixed video playback in games on Windows 10 causing hangs (particularly frequent in Unity games)
  • Also fixed overlay disappearing in D3D12 if an error occured during rendering
  • Fixed duplicate warnings in log when Vulkan device was created without swapchain extension
  • Fixed network detection mistaking traffic on localhost for genuine network traffic
  • Also fixed “GetMessage” implementation potentially removing “WM_QUIT” messages
  • Fixed overlay rendering artifacts in Quake
  • Fixed black screen in DOOM
  • Also fixed black screen in Yamagi Quake II
  • Fixed rendering artifacts in Quake III
Bug fixes #2
  • Fixed integer overflow in memory usage calculation with very large textures
  • Fixed default technique toggle key specified via “toggle” annotation not working
  • Also fixed searching backwards for a single character in text editor not updating the cursor position
  • Fixed effects being enabled in reverse order than their declaration in the preset
  • Fixed effects without any textures or samplers failing in D3D12
  • Also fixed effects using discard and compute shaders failing to compile in OpenGL
  • Fixed effects using some obscure variable names which are reserved in GLSL failing to compile in OpenGL
  • Fixed effects using “line” as variable name failing to compile in D3D9
  • Also fixed performance of generated HLSL/GLSL code for large constant arrays
  • Fixed the “mousepoint” uniform source returning out of bounds coordinates
  • Fixed technique tooltips and context menu not working when checkbox is disabled
  • Also fixed misalignment of some variable widgets
  • Fixed uniform variables with an unknown “source” annotation showing up in the overlay
  • Fixed “ReShade.ini” in executable directory being ignored when there is a global config file next to the ReShade DLL
  • Also fixed pooled textures being created even if no effect is using them
  • Fixed clicking on “Reset all to default” also resetting uniform variables with “source” annotation