How does reshade work?

If I open process hacker, I can't seem to find any handle or any process related to Reshade. What process does it use? It obviously needs to have a handle in order to inject, so where is it? MY AV keeps freaking out but I can't find the process to exclude...

Also question for the dev: where are you actually doing your draws? There isn't much documentation on the d3d11 hook.

ReShade doesn't run in a process. It pretends to be the DirectX or OpenGL driver, so that games load ReShade instead of the actual driver and send all render commands to ReShade. ReShade then passes those commands on to the real driver while adding and modifying some commands to do its thing.

Post-processing under D3D11 happens when the game calls IDXGISwapChain::Present to mark a finished frame.

crosire wrote: ReShade doesn't run in a process. It pretends to be the DirectX or OpenGL driver, so that games load ReShade instead of the actual driver and send all render commands to ReShade. ReShade then passes those commands on to the real driver while adding and modifying some commands to do its thing.

Post-processing under D3D11 happens when the game calls IDXGISwapChain::Present to mark a finished frame.

Okay interesting that games allow that. What happens if I were to make changes to the source? I assume that game devs have some sort of whitelisting going on for you.

Many Anti-Cheat tools whitelist ReShade. Modifying the source code would cause those to pick it up as a cheat again and take action against you. But games not making use of such software (e.g. singleplayer games) generally won't mind.

crosire wrote: ReShade doesn't run in a process. It pretends to be the DirectX or OpenGL driver, so that games load ReShade instead of the actual driver and send all render commands to ReShade. ReShade then passes those commands on to the real driver while adding and modifying some commands to do its thing.

Post-processing under D3D11 happens when the game calls IDXGISwapChain::Present to mark a finished frame.

So when a game won't 'start' reshade, it won't detect the pretend driver for some reason?

Interesting. I'm trying to figure out why it won't load in Stardew Valley on Windows 10 (in my situation anyhow). Everything's installed correctly. Just nothing happens, it's being ignored. There must be a reason why it is acting like this. I decided to try and to figure out how Reshade works for now.