The Witcher 3 Reshade

Reshade 4.5 is now available for download, improves Vulkan & DirectX 12 performance


The team behind Reshade has shared a new version of this post-processing tool. Reshade 4.5 comes with better performance in DX12/Vulkan, and improves depth buffer detection in DX9 and DX12.

Moreover, this latest version of Reshade switches to using SPIR-V for shaders in OpenGL 4.6 for better performance. It also improves multi-threading of effect loading and fixes memory leaks in Vulkan.

To be honest, I’m personally sticking with NVIDIA’s own sharpening tool. After all, the main reason I’ve been using Reshade was to add some extra sharpness to the games. So, if all you do is sharpen your games, I suggest using NVIDIA’s own tool. If you want to make more adjustments to your games, you should definitely use Reshade.

You can download Reshade 4.5 from here, and you can find below its complete changelog.

Reshade 4.5 Release Notes
  • Rework depth buffer detection code for all APIs again (They are now more similar, including more options for OpenGL)
  • Switched to using SPIR-V for shaders in OpenGL 4.6 for better performance (this needs recent drivers to work correctly)
  • Added UI widgets for preprocessor definitions to variable list
  • Added compiler error when passing a r-value to an out parameter of a function
  • Added compiler error when pass is missing shader functions
  • Added shader signature verification to effect compiler
  • Added support for assignment chains to ReShade FX (e.g. “a = b = c = 0;”)
  • Added adjustment buttons to combo box widget and label to radio button list
  • Added option to show only specific color components in texture preview
  • Added context menu to technique list to edit included files in addition to the main source file
  • Added support for texture pooling via “pooled” annotation
  • Added “ui_text” annotation for uniform variables to display custom text above the variable widget
  • Added support for GPU timings in Vulkan
  • Added environment variable to override path ReShade should load the next DLL from
    You can now set “RESHADE_MODULE_PATH_OVERRIDE” to a directory for ReShade to load the next DLL, so you can chain ReShade with other injectors
  • Added OpenGL version information to log
  • Improved compiler error recovery for parsing errors in function parameter list and annotations
  • Improved Vulkan command buffer management (which improves performance)
  • Improved multi-threading of effect loading
  • Changed setup tool to install global Vulkan layer while it is open (fixes issues with RDR2)
  • Changed setup tool to use .NET framework 4.5 again for backwards compatibility
  • Changed texture preview to be hidden when effects are disabled
  • Changed COM reference counting behavior to better match COM requirements
  • Change default preset path to executable directory for Vulkan compatibility
  • Fixed memory leak in Vulkan (which worsened every frame)
  • Fixed depth buffer detection in Vulkan
  • Fixed setup tool not updating search paths to absolute paths in Vulkan
  • Fixed HLSL compiler error for variables that are named “Technique” or “Pass”
  • Fixed effect compile error with “discard” statement as last statement in a function with a return value
  • Fixed effect compiler error in pass definition not causing effect compile to fail
  • Fixed effect compiler error when multiple casts are chained in an expression
  • Fixed annotation assignments not supporting literal expressions (you can now write stuff like “< ui_min = 1 + 2; >”)
  • Fixed effect compiler sometimes reporting duplicated syntax errors
  • Fixed crash in effect compiler when encountering an undeclared identifier in a shader pass state
  • Fixed empty preprocessor macros not being evaluated correctly
  • Fixed GLSL code generation for matrix indexing
  • Fixed GLSL code generation for vertex shaders with a return semantic
  • Fixed GLSL code generation for some component-wise operations
  • Fixed GLSL code generation for entry points with underscores in the name
  • Fixed GLSL code generation for boolean values in index expressions
  • Fixed GLSL code generation for arithmetic with matrices that are not floating point
  • Fixed D3D10/11 depth stencil view creation failing in some games (e.g. ArmA 3)
  • Fixed OpenGL depth texture creation failing for games using format “GL_DEPTH_COMPONENT” (e.g. Mugen 1.1)
  • Fixed OpenGL states not being restored during texture upload, which caused texture artifacts in some games
  • Fixed crash if “wglMakeCurrent” was called on an OpenGL context that was not hooked
  • Fixed access to textures in vertex shaders in D3D9 (limited to 4 bindings though)
  • Fixed “UseAspectRatioHeuristics” option not being stored in config file in D3D9
  • Fixed wrong color write mask when there is more than one render target in D3D9
  • Fixed Vulkan performance mode using wrong values
  • Fixed current depth stencil inheritance in D3D12 buffer detection
  • Fixed shared textures being deleted prematurely if a single effect is unloaded
  • Fixed preset switching always falling back to DLL directory for next preset
  • Fixed position of slider buttons
  • Fixed slider buttons being able to change value outside valid range due to floating-point precision errors
  • Fixed splash bar no longer appearing on reload after reloading a single effect
  • Fixed scaling up the font size causing cropping some buttons and the display of textures on the statistics page
  • Removed format filtering from depth buffer detection
  • Removed tutorial skip button for all but the first tutorial step