When you purchase through links on our site, we may earn an affiliate commission. Here’s how it works.

ReShade 4.5.0 brings improved Vulkan and DirectX 12 support, and much more

Popular graphics modding tool ReShade received the latest update version 4.5.0 yesterday. As expected, it has a ton of changes, with perhaps the highlight being improved support for the newer APIs, especially Vulkan.

The new version also brings improvements to the GUI, effect compiler and Vulkan backend implementation, as well as improved depth buffer detection in DirectX 9 and DirectX12.

Alongside these, the new update adds several other changes which have been listed below:

  • 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

Example:
texture MyTex1 { Width = 100; Height = 100; Format = RGBA8; };
texture MyTex2 { Width = 100; Height = 100; Format = RGBA8; };

ReShade will now attempt to re-use the same memory for textures with the same dimensions and format if the pooled annotation is set. This works across effect files too.

  • Added "ui_text" annotation for uniform variables to display custom text above the variable widget (refer to the image below)
  • 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 "")
  • 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

If you are into modding, you can head over to the ReShade home page and download this to see for yourself.

Source: ReShade forum

Report a problem with article
Next Article

Lenovo Yoga C940 15 review: The rare workhorse convertible

Previous Article

But wait, there's more: Windows 10 Mobile support extended by an additional month

Join the conversation!

Login or Sign Up to read and post a comment.

0 Comments - Add comment