Skip to content

feat(config): implement initial ReShade preset support - #78

Merged
ralgar merged 5 commits into
mainfrom
feat/presets
Aug 24, 2026
Merged

ralgar merged 5 commits into
mainfrom
feat/presets

Conversation

@ralgar

@ralgar ralgar commented Aug 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

Implement initial support for ReShade preset files.

  • Search for ReShade.ini in the same paths as vkShade.ini.
  • Support the VKSHADE_PRESET_FILE environment variable for custom files.
  • Determine initial uniform values using the following order of precedence:
    1. Value from the preset file.
    2. Shader-defined initializer.
    3. Zero-filled fallback.
  • Subscribe effects to uniform changes in the preset key-value store.
  • Support scalar and vector forms of float, int, uint, and bool.

ReShade Compatibility

ReShade preset support is functional, but currently partial.

  • Uniforms are fully supported.
  • The Techniques and TechniqueSorting parameters are currently unsupported. Instead, vkShade uses its own Effects parameter and semantics.
  • All other parameters are currently unsupported.

Testing

Tests have been adjusted and expanded to match config system changes.

All tests pass. Every commit compiles.

ralgar added 4 commits August 21, 2026 22:15
This is preliminary work for updating uniform values at runtime.

In order to update the uniform value in the buffer, the effect instance
needs to look up the uniform by name - hence the need for the config
key, which corresponds directly to the uniform's name.
More preliminary work for updating uniform values at runtime.

Adds config parser support for int32, uint32, and boolean vectors.
This forms the foundation of ReShade preset support.

- Added uniform support for int, uint, and bool vector types
- Uniform values are now initialized from the preset k/v store
- Uniforms now subscribe to changes in the preset k/v store
@ralgar
ralgar marked this pull request as ready for review August 24, 2026 00:06
@ralgar
ralgar merged commit a7c5d08 into main Aug 24, 2026
3 checks passed
@ralgar
ralgar deleted the feat/presets branch August 24, 2026 00:11
@kakra

kakra commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Very cool! <3

@ralgar

ralgar commented Aug 24, 2026

Copy link
Copy Markdown
Owner Author

@kakra I'm sure you'll be eager to test this, rather than continue hardcoding values into effect files. Let me know how it works out for you! =D

I have file watching almost ready as well, so you'll have the preset hot-reloading that you were asking for! It's just pending a small refactor in the config system, since the current architecture wasn't quite lining up. Hopefully today or tomorrow I'll have it all merged. The GUI integration will follow shortly after, again pending a bit of a refactor.

@kakra

kakra commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

It works well. But I think it doesn't align with ReShade yet: ReShade has presets in separate ini files, ReShadePreset.ini by default. I think it supports loading and switching presets that way, but that can probably wait until techniques are supported. For now, it works as announced: I've put ReShade.ini in the game's root directory, and vkShade picks it up while still loading it's own config (search paths) from ~/.config. Yay, maestro! \o/

@kakra

kakra commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

@ralgar I've rebased my mouse wheel patch to current master, I can you want to take it for this release cycle: #74

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants