Imagine your favorite game with ambient occlusion, real depth of field effects, color correction and more … ReShade exposes an automated and generic way to access both frame color and depth information (latter is automatically disabled during multiplayer to prevent exploitation) and all the tools to make it happen.
The possibilities are endless! Add advanced depth-edge-detection-driven SMAA antialiasing, screen space ambient occlusion, depth of field effects, chromatic aberration, dynamic film grain, automatic saturation and color correction, cross processing, multi-pass blurring … you name it.
ReShade features its very own shading language and transcompiler, called ReShade FX. The syntax is based on HLSL, adding useful features designed for developing post-processing-effects: Define and use textures right from the shader code, render to them, change renderstates, retrieve color and depth data, request custom values like timers or key states, …
And that’s not it. Write your shaders just once, they’ll work everywhere, regardless of your target being Direct3D or OpenGL: ReShade takes care of compiling them to the right shader model and language.
As of January 1st 2017, ReShade is open sourced under the terms and conditions of the BSD 3-clause license! You can help development with your own contributions via the official GitHub repository.
ReShade supports all of Direct3D 9, Direct3D 10, Direct3D 11, Direct3D 12 and OpenGL.
A computer with Windows 7 SP1, 8.1 or 10 and the DirectX end-user runtime installed is required.
Use preset files (*.ini) that can be created from ReShade’s in-game user interface to share your configurations.
ReShade loads all presets placed in the game directory automatically (both *.ini and *.txt).
Do NOT share the binaries or shader files. Link users to this website instead.
Quick start: Run setup tool > Follow instructions > Close setup tool > Start game > … > Profit | Troubleshooting
- Added effect caching
- Compiled effects are now cached to disk, so that subsequent loads can use the cached data to speed up loading significantly. By default the cache is stored in %TEMP%, so that it can be shared across all ReShade installations. To override the location, change the “IntermediateCachePath” option under “[GENERAL]” in ReShade.ini . There is a new button on the Settings tab to clear the cache (sometimes necessary to ensure changes to effect files are applied).
- Added support for D3D12on7 (ReShade now works in Cyberpunk 2077 on Windows 7)
- Added depth buffer copy before clear in OpenGL (depth buffer detection now works in Minecraft)
- Added ReShade FX support for rectangular matrices and integer matrix multiplication
- Added error to log when trying to capture screenshot for 16-bit back buffer (which is not supported)
- Added option to move all techniques from an effect file simultaneously in the UI technique list by pressing the shift key
- Added text logging for some common back buffer formats
- Added debug names to D3D11 and D3D12 objects in release builds to simplify debugging with the debug layers
- Added option to filter application list in setup tool using custom search terms (start typing into the text box at the bottom of the application list to filter it)
- Added warning message box to setup tool when enabling global Vulkan layer
- Improved HLSL and GLSL loop code generation for simple condition expressions
- Improved general frame update performance slightly
- Changed editor window to support opening multiple tabs pointing to different files
- Changed logging to use Win32 API directly (to allow multiple editors to open the log simultaneously)
- Changed texture pooling to not share textures within the same effect file
- Fixed local network traffic (on localhost) counting towards the network detection heuristic
- This means that depth buffer detection is no longer blocked in games that run local servers in single player, like in Minecraft
- Fixed mouse cursor being locked in a small portion of the screen in some games
- Fixed corrupted depth data in D3D12 apps (e.g. Cyberpunk 2077)
- Fixed ReShade not showing up in D3D9 apps that do not have an override window set for presentation (e.g. MPC-HC)
- Fixed progress bar for compiling effects not actually showing any progress
- Fixed enabling an effect not auto-selecting the relevant tab in the variable list if the tab UI is used instead of the tree UI
- Fixed disabling “Load only enabled effects” option not reloading skipped effects
- Fixed potential crash when an INI file is loaded while effects are still being loaded
- Fixed OpenGL context creation using incorrect profile flags when game is using OpenGL 3.0 or 3.1
- Fixed OpenGL compatibility flag not being set in some cases for legacy contexts
- Fixed global app config options being read from wrong section in DXGI
- Fixed D3D11 texture description not being overwritten for “ID3D11Device3::CreateTexture2D1” calls
- Fixed “vkDestroyDevice” hook not being called
- Fixed hook error logged on Windows 7 when “CreateDXGIFactory2” is called
- Fixed it being possible to move variable editor splitter outside window area
- Fixed preprocessor hanging when encountering macro with an unterminated argument list
- Fixed duplicate sample and storage references in effect passes
- Fixed crash if an invalid sampler or storage is referenced in effect pass
- Fixed setup tool exception when extracting repository without a dedicated “Textures” directory
- Renamed screenshot config section to “SCREENSHOT” instead of “SCREENSHOTS” (setup tool will update your config automatically)
- Renamed depth buffer detection related config options to all reside within a “DEPTH” section instead of separate “D3D9/10/11/12/OPENGL/VULKAN” sections
- Renamed all references to “shaders” to “effects”
- Cleaned up punctuation in log messages