ReShade is a generic post-processing injector for games and video software developed by crosire.

ReShade is a generic post-processing injector for games and video software developed by crosire.



4 Mb


ReShade is a generic post-processing injector for games and video software developed by crosire.

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.

Crosire spent the last couple of months completely rewriting the ReShade FX compiler from ground up. This new compiler is now fully standalone, blazing fast, has much better error recovery (Got a syntax error in your code somewhere? No problem, it will try and finish compiling anyway.), better support for various code features (array assignments and switch statements work properly now) and paves the future for Vulkan support (it can now not only generate HLSL and GLSL, but also SPIR-V). But that's not all. ReShade got a major UI overhaul to make working with it even more productive. This includes an in-game code editor, texture preview, many changes to variable editing to make it more accessible and lots of new styling options to customize the UI to your likings.

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


Change Info:
Added builtin add-on that synchronizes preset between effect runtime instances/windows (this is enabled in VR by default, so that changes in the desktop window are automatically synchronized to VR)
Added Korean translation
Added option to show current preset name in OSD window
Added "create_pipeline_layout" add-on event
Added "set_fullscreen_state" add-on event
Added options to filter by custom width and height or format to generic depth add-on
Added "shader" and "numthreads" function attributes in ReShade FX

Bug fixes:
Fixed HLSL/GLSL code generation for constant arrays duplicating the array data on every access
Fixed GLSL layout qualifier image format for 32-bit unsigned integer textures
Fixed crash when encountering division by zero in preprocessor expression
Fixed crash in D3D12 due to attempt of unlocking mutex that was not locked before
Fixed crash due to potential "AddRef" call on destroyed resource
Fixed "End" key state updates
Fixed code editor undo/redo/deletion selection
Fixed repeated runtime reset if "IDXGISwapChain3::SetColorSpace1" is called every frame (e.g. in World of Warcraft)
Fixed deadlock in "ID3D11DeviceContext::ClearDepthStencilView" with generic depth add-on
Fixed Vulkan timestamp frequency calculation
Fixed resource creation succeeding in Vulkan if initial data upload failed
Fixed nullptr descriptor heap being set in D3D12 when "bind_descriptor_tables" is called with zero tables and there was no heap before
Fixed D3D12 "clear_unordered_access_view_uint/float" with typeless resource
Fixed "init_pipeline" add-on event not being called in D3D12 applications not using "ID3D12Device2" or higher
Fixed independent blend value in D3D10/11/12 blend state creation
Fixed D3D12 root descriptor handling
Fixed pipeline creation failing in D3D10/11/12 when using certain dynamic states
Fixed "create_pipeline"/"init_pipeline" add-on event being called with zero shaders in some cases
Fixed resource creation failing in D3D12 when format was changed by an add-on and optimized clear value was passed in

Updated imgui to 1.90.4 (add-ons may now use 1.90.0-4, 1.89.7 or 1.86)
Increased font size maximum to 64
Added support for "ID3D12Device14" and "ID3D12GraphicsCommandList10"
Added limit to number of effect loading threads in 32-bit, to reduce likelihood of out of memory situations
Changed texture creation to clear render target textures using clear command instead of initial data to avoid big memory allocations
Changed file selection dialog to not show hidden files and directories
Changed preprocessor to not evaluate expressions or check syntax in disabled code
Changed add-on API for descriptor types to split SRV/UAV in separate types for buffer/texture views
Changed "effect_runtime::set_current_preset_path" to trigger add-on events
Changed "effect_runtime::set_current_preset_path" to always reload preset when it is called in case the preset was modified on disk

Setup tool:
Added dedicated back button
Added effect installation for add-on packages
Added add-on deletion to setup tool uninstallation
Changed add-on page description to clarify potential compatibility issues of add-ons
Fixed effect package/add-on download failing if there are many temporary files
Fixed application list no longer being focused by default
Fixed unhandled exception when target executable has invalid import directory entries


Thank You for Donating Bitcoin