Reshade 3.0 file structure

  • Posts: 92
4 years 2 months ago - 4 years 2 months ago #1 by piltrafus
Hi Crosire,
you already mentioned that 3.0 won't carry on with framework structure. That's great if it makes easier to customize reshade. I wanted to share my ideal of how a simpler file structure would work. Many people have hinted at similar ideas and I believe you mentioned something about it somewhere. Perhaps it'll be good to have a post dedicated to it so people can share their preferences.

* I would like for reshade to work with self contained shader files. Every shader.fx file should contain this three main parts (among other things)
- #defines / settings
- shader code
- techiques
* every shader.fx would be wrapped inside it's own namespace.
* the RESHADE folder could have a SHADERS, TEXTURES, SHADER_UNUSED subfolders. Only .fx files thrown in SHADERS would be read and compiled by reshade.
* The only extra file needed (aside from textures) would be the pipeline.cfg (created by reshade itself) that contains the order of the shader execution.
-EDIT- (moved this part to a different post)

I'm sure you already have a better plan for all this, but here's my view of it anyway.

Please Log in or Create an account to join the conversation.

  • Posts: 3740
4 years 2 months ago #2 by crosire
Current state of things:
  • Shaders are self-contained, because ReShade can now load multiple fx files. How the code inside is organized is up to the developer.
  • There is no ReShade folder. You can specify a number of search paths and ReShade will load every fx file it can find from those directories. Same for textures, ReShade searches for an image file in the specified texture search paths (options can be seen in gif #3).
  • There is no Pipeline.cfg either. Effects aren't ordered by changing their include order. That system is flawed and superfluous now. Instead you can order techniques directly (independent from the file they were loaded from, again, shown in gif #3). The order is saved and restored between game starts.
The following user(s) said Thank You: DeMondo, piltrafus, OtisInf

Please Log in or Create an account to join the conversation.

  • Posts: 177
4 years 2 months ago #3 by kingeric1992
crosire, can you give more detail on the new standard?

in 2.0, everything is basically pack inside reshade.fx, is it still the case in 3.0?
or is the .fx files consideared standalone in 3.0?

Please Log in or Create an account to join the conversation.

  • Posts: 92
4 years 2 months ago #4 by piltrafus
That sounds perfect. You solved all the OP suggestions then. Hard to come with any good idea when you had them all already :P

Now I'll like to ask. How/where are the per shader settings stored? And how/where is the technique execution order stored? it's going to be easy to control by editing text files directly? I hope it is. some games may not allow the UI interaction for example. And I guess is necessary to share presets, right?

Please Log in or Create an account to join the conversation.

  • Posts: 3740
4 years 2 months ago - 4 years 2 months ago #5 by crosire

kingeric1992 wrote: crosire, can you give more detail on the new standard?

in 2.0, everything is basically pack inside reshade.fx, is it still the case in 3.0?
or is the .fx files consideared standalone in 3.0?

The latter. It's ok to have multiple techniques in one file too, doesn't matter. You can have as many fx files as you want. There's no single global ReShade.fx file anymore.

piltrafus wrote: TNow I'll like to ask. How/where are the per shader settings stored? And how/where is the technique execution order stored? it's going to be easy to control by editing text files directly? I hope it is. some games may not allow the UI interaction for example. And I guess is necessary to share presets, right?

Don't know yet. Depends on how shaders should expose them, which I haven't decided yet: uniform variables, static constant variables or preprocessor defines.

Please Log in or Create an account to join the conversation.

  • Posts: 177
4 years 2 months ago #6 by kingeric1992
Does that means texture/uniforms/macros will not share between effect files?

Please Log in or Create an account to join the conversation.

  • Posts: 3740
4 years 2 months ago #7 by crosire
Yes. If you want that, create a "root" fx file which includes the other effects.
The following user(s) said Thank You: kingeric1992

Please Log in or Create an account to join the conversation.

  • Posts: 118
4 years 1 month ago #8 by vfxninjaeditor
Correct me if I am wrong, but this seems to be more confusing than Reshade has been in the past. I haven't been keeping up with the updates to Reshade. I somehow completely missed the release of 2.0. Can you confirm that everything will be explained in a tutorial? Will all the effects we have now in 2.0 be available to add to 3.0?

Please Log in or Create an account to join the conversation.

  • Posts: 17
4 years 1 month ago #9 by dustymonkey

piltrafus wrote: some games may not allow the UI interaction for example. And I guess is necessary to share presets, right?


I can confirm that all the media players that I have tried do not allow the UI to be brought up at all (probably because the video render window handle isnt the window handle that gets the keyboard messages), but ReShade 3 still loads and applies the effects if you manually create the necessary preset file. This was also the case with previous ReShade's tho, so....

Please Log in or Create an account to join the conversation.