ReShade: Open-Source Post-Processing Injector for Games
A generic post-processing injector for games and video software.
At a glance
- What is it?
- ReShade injects post-processing effects into any game or video application by hooking into the graphics API at runtime, giving modders and content creators a custom shader language called ReShade FX to write ambient occlusion, depth of field, color correction, and similar effects. Building from source requires Windows and Visual Studio 2017 or later; the installable binary is distributed separately at reshade.me. Users who want effects without building should get the installer from that site, since the source repository contains no pre-built binaries or release assets. The reshade.me forum and a Discord server linked in the README are the primary channels for support and feedback from the broader user community.
- Who is it for?
- ReShade suits modders and researchers who want per-game post-processing without modifying game files, and developers who want to reuse the standalone ReShade FX compiler in their own rendering pipelines. It is not a good fit for players in games that run anti-cheat systems that scan for injected DLLs: the project FAQ at reshade.me covers the ban risk explicitly, and the answer varies by game and by game company policy.
- Can I use it commercially?
- Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What ReShade Injects and What It Exposes
ReShade works by sitting between the game's rendering pipeline and the GPU driver. It intercepts calls to DirectX, OpenGL, or Vulkan, reads the current frame's color buffer and (where available) depth buffer, passes those through any loaded effect shaders, and presents the modified frame to the display. The key capability that separates it from a simple screenshot filter is the depth buffer access: having Z-depth per pixel makes real ambient occlusion, depth-based fog, and depth of field physically plausible rather than purely image-based approximations. The custom shader language, ReShade FX, is described in the README as a C-like language. Effects written in ReShade FX compile on the fly and apply globally to any game or video software the injector is attached to.
The ReShade FX Shader Language and the Standalone Compiler
ReShade FX has its own preprocessor, lexer, and parser, all implemented in the source tree under files named `effect_preprocessor.cpp`, `effect_lexer.cpp`, and `effect_parser_stmt.cpp`. The README notes that the compiler is standalone: it can be integrated into other projects by copying all source files that match `source/effect_*.*` and using them as demonstrated in the `tools/fxc.cpp` example. This is a deliberate design choice to allow third-party rendering tools to consume ReShade FX shaders without pulling in the entire runtime. Effect files distributed by the community are plain text and human-readable; the in-game overlay compiles them at load time, which means applying a new shader does not require restarting the game.
Add-Ons: Extending ReShade with DLLs
Beyond shaders, ReShade exposes an API for add-ons: DLLs that load alongside the runtime and interact with both the graphics state and the host application. The README points to REFERENCE.md for the API reference. Add-ons can query and modify resources that shader effects cannot, such as render targets, swap chains, and input events. The examples directory in the repository contains eighteen numbered example add-ons covering tasks that range from FPS limiting and screenshot capture to texture replacement, depth inspection, and ray tracing hooks. Each example is a self-contained project with its own source, and they serve as working starting points for anyone who wants to build a custom add-on rather than a shader.
Building ReShade from Source
The README lists two requirements for building: Visual Studio 2017 or higher, and Python available in the PATH environment variable (used by the `glad` OpenGL loader dependency). Clone with submodules:
git clone --recurse-submodules https://github.com/crosire/reshadeOpen the Visual Studio solution `ReShade.sln`, select the 32-bit or 64-bit target platform, and build. This compiles ReShade itself and all its dependencies in one step. Building the setup tool (the installer that users download from reshade.me) requires an additional step: build the `Release` configuration for both 32-bit and 64-bit first, and only then build the `Release Setup` configuration. The source repository does not ship pre-built binaries; the redistributable installer is maintained separately at reshade.me.
Licence, Some Files Under MIT, and the Ban Question
The primary licence is BSD-3-Clause, which permits redistribution and use in source and binary form with attribution, provided the licence notice is included. The README notes that some source files are dual-licensed under MIT as well, indicated in the header of those specific files. Both licences allow commercial use. The ban question is distinct from the licence question. The SEARCH QUESTIONS for this project ask repeatedly about bans, and the answer depends entirely on the game, not on ReShade's licence: anti-cheat systems such as Easy Anti-Cheat or BattlEye can flag or ban accounts for DLL injection regardless of what the DLL does, and the project community on the reshade.me forum tracks which games are affected. The source code and licence do not make any game-side policy decisions.
Limitations: Windows-Only Build, Depth Buffer Restrictions, and Offline Use
Building ReShade requires Windows and Visual Studio. There is no documented cross-platform build path. Depth buffer access is not available in all games: some titles explicitly block depth reading to prevent third-party overlays from gaining positional advantage in multiplayer scenarios, and in those games depth-dependent effects (ambient occlusion, depth of field) will not work even if ReShade loads. The README does not document a rollback procedure for game files after injection; removing ReShade means deleting the DLL that was placed in the game directory during setup. Performance impact depends on the complexity of the loaded shaders and the GPU; the README does not make benchmark claims. The source tree includes a `tools/fxc.cpp` file that shows how to drive the FX compiler standalone, which is useful for developers integrating the compiler into a build pipeline or testing shader compilation outside of a running game.
Comparison to ENBSeries
ENBSeries is the other well-known post-processing injector in the PC gaming community. Its key difference from ReShade is scope: ENBSeries implementations are game-specific and tightly coupled to a single game's rendering internals, which allows deeper integration (such as replacing certain rendering subsystems in older Bethesda titles) but means each ENB preset only works in one game. ReShade is explicitly generic: the same runtime loads into any DirectX, OpenGL, or Vulkan application, and a shader written in ReShade FX can in principle run anywhere ReShade supports. ENBSeries is closed source and not available as an API for third-party tools. ReShade's standalone compiler and add-on API give it a programmatic surface that ENBSeries does not offer. For developers who want to embed a shader effect compiler in a rendering tool or a game engine, the ReShade FX compiler's standalone availability under an open licence is a concrete practical distinction.
Editorial conclusion
ReShade suits modders and researchers who want per-game post-processing without modifying game files, and developers who want to reuse the standalone ReShade FX compiler in their own rendering pipelines. It is not a good fit for players in games that run anti-cheat systems that scan for injected DLLs: the project FAQ at reshade.me covers the ban risk explicitly, and the answer varies by game and by game company policy. Before running ReShade on a competitive multiplayer title, check that game's terms of service. For offline or single-player use, the BSD-3-Clause licence allows commercial and non-commercial use with the standard attribution requirement.
Frequently asked questions
Can ReShade get you banned?
Whether ReShade causes a ban depends on the specific game and its anti-cheat system, not on ReShade itself. The ReShade forum at reshade.me tracks game-specific ban reports. Competitive multiplayer games with kernel-level anti-cheat are the highest-risk category.
Is ReShade free to use?
Yes. The source code is licensed under BSD-3-Clause, which permits free use for commercial and non-commercial purposes with attribution. Some source files are additionally available under MIT. The binary installer at reshade.me is also distributed free of charge.
Does using ReShade affect FPS?
The README does not publish benchmark figures. Performance impact depends on the GPU, the resolution, and the complexity of the loaded shaders. A simple color correction shader has a much smaller cost than a full ambient occlusion pass that samples the depth buffer repeatedly.
how to install reshade
The repository contains source code that requires Visual Studio 2017 or later and Python in the PATH to build. End users who want a pre-built installer should go to reshade.me, where the setup tool is distributed separately from the source repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/crosire-reshade)