-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TEST?] major ReShade overhaul #383
Comments
My step by step above is from memory. I might have enabled the shader while ReShade itself was disabled in SteamTinkerLaunch's per-game settings. I have a theory... it could be related to this bug #382. Perhaps if ReShade is improperly/half-disabled, and you run the game so that a default ReShade.ini is created, perhaps this then confuses SteamTinkerLaunch to think that there is no proper shader directory. I dunno... If you're reading the ReShade.ini to determine where to put shaders, then this is the likely culprit. |
Oh and this bug also causes a total loss of shader paths. Shaders are supposed to be installed in project paths, such as:
If the paths (visible in SteamTinkerLaunch's "Game Shaders" GUI) aren't preserved, then the shaders may not be able to find their own related files, or different shader sets with identical filenames may clobber each other's files, and shader presets (ReShade ini files) from the internet (i.e. NexusMods) may not find the presets. I have 5 concerns/bugs with the "Game Shaders" GUI in SteamTinkerLaunch:
I could be wrong about a lot of these concerns, by the way! :) |
Thanks for the huge bug report. In fact, I already wanted to refactor some Looks like you know pretty much about the
If I didn't misunderstand anything, 1-3 are programmatically more or less one point, 4 is clear and 5 needs to be implemented in PS: Looks like it didn't read the reddit comment completely btw: The game directory is not always the absolute path to the game exe directory, so shaders dropped directly into the game directory sometimes were misplaced. That's what I meant with what I fixed. A bug report would have clarified this (as it did now :)) PPS: I'll rename this issue to show that this is a generic |
|
@frostworx Hey, thanks a lot for the detailed answer. :) Regarding the ultimate ReShade structure, it would be optimal to use the structure that ReShade uses by default on Windows. When a Windows users tells ReShade to install itself into a game folder, it creates this structure:
The ReShade.ini that's placed in the game folder needs to contain the default Windows reshade installer contents for it to work. But the most critical lines are the following:
All other configs/lines will auto-create themselves. The core requirement is these two, which are required for ReShade to detect shaders/textures in its own default paths. Although I haven't tested if ReShade is smart enough to try these paths by default if no path is provided. Maybe. But probably not. We probably need a small template .ini file to install into the game folders, with these lines. |
Regarding symlinks:
Enabling/disabling entire collections kinda makes sense, because it's not unusual for shaders within a collection to require each other or belong together. It also helps with the user interface experience of quickly and easily enabling shaders in SteamTinkerLaunch. ReShade users are used to having hundreds of shaders installed and only using like 4-12 of them, so that shouldn't be a design concern. A typical Windows user will install shader packs (even things like GShade) and end up with shader folder sizes such as this one: https://github.com/Mortalitas/GShade/tree/master/Shaders |
To sum up the proposed ideas:
I'm unfortunately unable to help with the actual code, I don't know anything about the codebase and am dealing with a huge backlog of things to do already. All I can do is help with the analysis of the problems. :/ |
Hey @Bananaman Hmm, simply enabling whole shader repositories indeed is an interesting idea. It is both easier to maintain and to use. Having an idea is one thing, finding the time and motivation to (re-)implement it is another. |
hm, doesn't look like creating an individual shader subdirectory per shader is default, so I guess I'll go this road instead:
nice, subdirectories in edit: not too busy because of RL, but proceeding quite nicely. Commit might make it into 2021 :) |
This giant commit |
Should be more or less functional with above commit. |
When nobody is willing to give any feedback on the rewrite, I silently assume it is either fully functional or nobody uses it at all. |
Enable "ReShade install":The DLLs are installed with ReShade.txt_off contains:
There is no reshade.ini and no shader folder. So it properly installed itself in a disabled state. Enable "ReShade install" and "ReShade enable":
Clicking "Game Shaders" in the main menu of STL:
Deleting some "Game Shaders" via STL:
Unchecking "Reshade enable" again:
Unchecking "Reshade install" again:
Everything is great. I discovered 1 problem:
The preprocessor definitions is necessary and is included in the official reshade installer. It fills out the game menu with configurable preprocessor variables which must be tweaked in most gamest (usually the "reversed" value is wrong, sometimes it's upside down, etc). If this line isn't included, then the game's "Edit Preprocessor Definitions" button brings up an empty menu. You can see that the values I picked above are ReShade's defaults: Just add that to the reshade.ini that STL generates and things will be perfect :) |
Wait, I found a bug. If you disable shaders, If you enable shader, a new |
By the way, the most "essential" shader collections are:
Maybe some of this info belongs in wiki to guide the newbies, I dunno. |
Wow, thanks again for another awesome test! |
yeah, fixing bugs during lunch break ftw :) |
@frostworx Heyyyy! :) I've tested the latest updates.
Perfect. STL now has excellent support for ReShade! Thank you very much! :D
You've welcome to add/edit anything I've written if you want to add something to the wiki! :)
That would have been an honor, but it's not appropriate because they're made for GShade which is like ReShade but pre-bundled with tons of effects, and modified versions of other effects. So the presets aren't compatible with regular ReShade. For 99% of games, ReShade is good enough. GShade is just used for some fans of about a dozen different online games, since regular ReShade disables itself whenever a game uses any network traffic. Don't worry about it. If someone wants GShade, there are ways to install it manually into games on Linux with their Linux installer script, and since it only matters for a few games, there's zero reason to bring GShade into STL. Besides, GShade isn't perfect, it's bloated and has a bunch of old, semi-broken shaders, so most people would prefer pure ReShade instead. :) Here's the full list of "main games" that people use GShade for:
Here are the full games supported (it uses a whitelist to only unlock online reshade features in certain games): https://gposers.com/gshade/gshade-faq/#1563200583477-ab0ffc4e-3d4f https://gposers.com/gshade/gshade-faq/#1566559486490-57a55be5-e2a6 I just figured I'd describe it so that you don't have to wonder what GShade is... :P |
Hey @Bananaman |
Ahh, yeah. Pascal "Marty McFly" Gilcher, the creator of the famous raytracing shader, is no fan of GShade since they have so much outdated garbage in the effect list: martymcmodding/qUINT#28 (comment) But for online games it's the best choice. |
Anyway congrats on great new updates for STL! :) Thanks for everything. |
Thanks again for your excellent testing! And already bumped the Changelog, Closing here :) |
Hehe nice I just read through the wikis. Congrats on the new version. The project is in a great state now and you can take a long and well-deserved break! :) Take care! |
While reading the wiki, I realized something. Basically, that repo is required by most other shader repos. ^^ |
Thanks, in fact the |
I was reading the Reddit discussion and saw someone mentioning that SteamTinkerLaunch installs shaders directly into the game folder:
https://www.reddit.com/r/linux_gaming/comments/qyiuhv/reshadelinux_easy_setup_updating_of_reshade_on/hlhlp8l/?utm_source=reddit&utm_medium=web2x&context=3
I've now seen that issue for myself.
Here's what I did:
This is what's in my game folder (I have deleted a bunch of filenames from this list just to illustrate the point):
The text was updated successfully, but these errors were encountered: