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.

Note: ReShade supports all of Direct3D 9, Direct3D 10, Direct3D 11, Direct3D 12, OpenGL and Vulkan. A computer with Windows 7 SP1, 8.1, 10 or 11 and .NET Framework 4.6.2 or higher installed is required.

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.

Open Source

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.

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

What's New

  • Fixed SPIR-V cache breaking when previous cache was read partially (causing "Failed to create pipeline ..." errors)
  • Fixed usage of Vulkan host image copy extension forcing all resources into host coherent memory
  • Fixed OpenComposite aborting with ReShade loaded
  • Changed DirectInput hooks to not call any methods on DirectInput device during creation, to avoid potential interference with other DirectInput hooks like Steam Input
  • Changed setup tool to only delete binary from banned applications, rather than performing full uninstall
  • Added OpenXR swap chain description logging
  • Fixed hooking of D3D libraries when other wrappers are present
  • Fixed deadlock with DLSS Frame Generation in Vulkan
  • Fixed mesh shader root signature flags being set when mesh shaders are unsupported
  • Fixed duplicated DirectInput hooks with Steam overlay when steering wheel controller is connected
  • Changed setup tool to automatically uninstall from banned applications
  • (Add-on support) Added support for calling "update_buffer_region" with size "UINT64_MAX"
  • (Add-on support) Fixed D3D9 "update_texture_region" targeting system memory texture
  • (Add-on support) Fixed D3D9 auto depth-stencil communicated to add-ons before back buffer render target views
  • (Add-on support) Fixed missing "init_resource_view" event for D3D9 shadow map textures
  • (Add-on support) Fixed D3D12 "update_texture_region" targeting array texture
  • (Add-on support) Fixed OpenGL copy from cubemap texture
  • (Add-on support) Fixed Vulkan array texture copy dimensions
  • (Add-on support) Fixed Vulkan heap offset for unbound descriptor ranges
  • (Add-on support) Fixed default buffer size value for D3D11 "update_buffer_region" events
  • (Add-on support) Changed D3D9 texture copies to always use "StretchRect" when possible

ReShade 6.7.1 Changelog

  • Added DXVK detection to setup tool
  • Fixed shader model 5.1 being used with D3D11 erroneously in some cases
  • Fixed OSD text alpha
  • Fixed DXVK hooking when used as proxy library
  • Fixed effect cache not considering specialization constant values in performance mode
  • Fix toggling overlay always resetting to the home page
  • Fixed uninstall note also showing up during uninstall in setup tool
  • (Add-on support) Fixed Vulkan push constant ranges with offset
  • Fixed crash in Dead by Daylight
  • Fixed crash in some games when an add-on modified the swap chain back buffer format
  • Fixed hooking when application uses NVIDIA Streamline (e.g. Deadspace)
  • (Add-on support) Added resource flag for immutable resources
  • (Add-on support) Fixed crash in Vulkan when using resource handle with ReShade API that has no private data attached anymore

Features

  • Added "R11G11B10F" texture format to ReShade FX
  • Added Traditional Chinese (thanks to DuolaD) and Brazilian Portuguese (thanks to TKPorreta) translations
  • Added config options to force registering DirectX and OpenGL hooks always (otherwise OpenGL hooks will e.g. not be installed by default when wrapping a DirectX library like dxgi.dll)
  • Added config option to hook NVIDIA Streamline interposer exports (requires loading ReShade through name other than dxgi.dll)
  • Reworked DXGI hooks to prefer usage of proxy classes
  • Reworked OpenGL and Vulkan entry point loading
  • (Add-on support) Added "addon_event::finish_present" event that is called after successful presentation
  • (Add-on support) Added "effect_runtime::save_screenshot" API
  • (Add-on support) Added "device_props::adapter_luid" property to query the adapter LUID

Bug fixes

  • Fixed crash in Steam Overlay with Euro Truck Simulator 2
  • Fixed crash in Richard Burns Rally with DXVK 2.6.2
  • Fixed crash when reloading multiple effect permutations simultaneously
  • Fixed black screen in City of Heroes: Homecoming and Vba-M
  • Fixed black screen in MPC-HC with madVR
  • Fixed rendering artifacts in RPCS3
  • Fixed SPIR-V code generation for function default arguments
  • Fixed propagation of ReShade FX precise qualifier in generated shader code
  • Fixed D3D11 validation error about unorm UAVs being accessed via float
  • Fixed effect constant buffers being deleted by game in The Chronicles of Riddick: Assault on Dark Athena
  • Fixed mouse cursor staying stuck to window in Uncharted: Legacy of Thieves Collection
  • Fixed mouse cursor always staying visible in games using DirectInput, like Virtua Cop 2
  • Fixed preset being overwritten during effect reload even with autosave disabled
  • Fixed texture format component preview on statistics page
  • Fixed generic depth add-on visualizing unused depth buffers as candidates
  • Fixed multiple effect runtimes created for the same window interfering with each others input handling
  • Fixed artifacts with effects using compute shaders in consecutive passes in games that always turn on D3D11 UAV overlap via NvAPI (e.g. Deep Rock Galactic)
  • Fixed code editor cursor position calculation with tab characters
  • (Add-on support) Fixed OpenGL "copy_texture_region" event for non-framebuffer copies
  • (Add-on support) Fixed BC3 format conversion in "reshade::api::format_to_typeless" helper function
  • (Add-on support) Fixed modification of original DXGI swap chain description
  • (Add-on support) Fixed crash with DXGI when add-on forces VSync with tearing enabled
  • (Add-on support) Fixed missing render pass event in Vulkan for secondary command buffer with dynamic rendering
  • (Add-on support) Fixed "execute_command_list" event getting invoked for D3D11 deferred context
  • (Add-on support) Fixed partial buffer to texture copies in D3D12

Miscellaneous

  • Added pass name to GPU timing statistics
  • Added support for the middle and extra mouse buttons as toggle keys
  • Added log messages for DXGI adapter enumeration
  • Added support for "ID3D12CommandQueue1"
  • Changed D3DCompiler DLL loading to avoid system one when running in Wine (on Linux)
  • Changed log window to use text editor widget, now supporting the selection and copying of the log text
  • Prevented modification of preset preprocessor definitions when auto save is disabled
  • Reduced spam of unknown technique warning log message
  • Improved text loading performance in log editor
  • Updated OpenVR to v2.12.14
  • (Add-on support) Update imgui to v1.92.2b (add-ons may now use 1.92.2b, 1.91.8, 1.90.0-4, 1.89.7 or 1.86)
  • (Add-on support) Added "update_buffer_region_command" and "update_texture_region_command" events specific to a command list
  • (Add-on support) Added Vulkan hooks for descriptor update templates
  • (Add-on support) Added draw events for "VK_EXT_multi_draw" extension
  • (Add-on support) Added support for importing shared resources and fences in OpenGL
  • (Add-on support) Added "GL_POLYGON" to primitive topology conversion
  • (Add-on support) Added forced "DXGI_PRESENT_ALLOW_TEARING" flag during presentation if an add-on allowed tearing via "create_swapchain" event
  • (Add-on support) Added proper sRGB query for D3D9 format checks
  • (Add-on support) Added default state events after "ID3D11DeviceContext::ExecuteCommandList" without state restoration
  • (Add-on support) Added interface query to unwrap DXGI swap chain, use QueryInterface with IID E8A33B4A-1405-424C-AE88-0D3E9D46C914 on swap chain proxy to get the original swap chain object
  • (Add-on support) Added interface query to get original object from any proxy object, use QueryInterface with IID 7F2C9A11-3B4E-4D6A-812F-5E9CD37A1B42
  • (Add-on support) Fixed empty D3D12 root signatures not invoking "create_pipeline_layout" and "init_pipeline_layout" events
  • (Add-on support) Fixed "effect_runtime::block_input_next_frame()" not applying when the overlay is closed
  • (Add-on support) Changed D3D9 device reset to not invoke "init_device"/"destroy_device" events
  • (Add-on support) Changed map access flags passed to map events in D3D12 to distinguish between read-write and write-only access
  • (Add-on support) Changed behavior of action events to allow all add-ons to receive action events even if one overrides it
  • (Add-on support) Optimized D3D12 GPU to original CPU descriptor handle conversion
  • (Add-on support) Removed protection against recursive add-on event invocation

Setup tool

  • Added draw stats heuristics option to setup tool compatibility list