aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorCamilleLaVey <camillelavey99@gmail.com>2026-09-10 15:14:02 +0200
committercrueter <crueter@eden-emu.dev>2026-09-10 15:14:02 +0200
commited566919f468e45ecb56e4e61185d98142a2cd1c (patch)
tree5e9a1756c2b3fe99c9beabea0144a0e88e227bcb /src/common
parent5f142c7926d0c7fcbbd0ce30794d72f638a43b2a (diff)
[vulkan, android] Add feature of post-processing shaders on Android (#4348)
Very self-explanatory; implementation of the feature for post-processing shaders for Android (at least for now); will allow users to enhance the graphic quality of video games based on the use of multiple shaders adjustable, presets and more, inspired on the PPSSPP implementation, this feature adds 22 customizable shaders (1 pass) that lives on the overlay of the screen, which means that aside of the capability to chain multiple shaders on the screen, this doesn't have depths (pixel/ depth z-buffer) so it ensures the performance with it's use. Few shaders were a faithful port from PPSSPP with their respective attribution on the shader headers for their respective owners; and there are adaptations from public references/ cinematographic (Anime4K) and the rest are my own addition. _Special Credits:_ 1.- PPSSPP Team for their contribution on the public references for shaders: Henrik Rydgard, ShadX, SimoneT, KillaMaaki and guest(r). 2.- Niklas Haas. 3.- bloc97. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4348 Reviewed-by: lizzie <lizzie@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/fs/fs_paths.h2
-rw-r--r--src/common/fs/path_util.cpp2
-rw-r--r--src/common/fs/path_util.h2
-rw-r--r--src/common/settings.h24
4 files changed, 30 insertions, 0 deletions
diff --git a/src/common/fs/fs_paths.h b/src/common/fs/fs_paths.h
index a31e609bda..ae25846fc2 100644
--- a/src/common/fs/fs_paths.h
+++ b/src/common/fs/fs_paths.h
@@ -23,6 +23,8 @@
#define LOSSLESS_DIR "lossless"
#define NAND_DIR "nand"
#define PLAY_TIME_DIR "play_time"
+#define POST_PRESET_DIR "post_presets"
+#define POST_SHADER_DIR "post_shaders"
#define SCREENSHOTS_DIR "screenshots"
#define SDMC_DIR "sdmc"
#define SHADER_DIR "shader"
diff --git a/src/common/fs/path_util.cpp b/src/common/fs/path_util.cpp
index b4c7eae343..b895aac54c 100644
--- a/src/common/fs/path_util.cpp
+++ b/src/common/fs/path_util.cpp
@@ -160,6 +160,8 @@ public:
GenerateEdenPath(EdenPath::LosslessDir, eden_path / LOSSLESS_DIR);
GenerateEdenPath(EdenPath::NANDDir, eden_path / NAND_DIR);
GenerateEdenPath(EdenPath::PlayTimeDir, eden_path / PLAY_TIME_DIR);
+ GenerateEdenPath(EdenPath::PostPresetDir, eden_path / POST_PRESET_DIR);
+ GenerateEdenPath(EdenPath::PostShaderDir, eden_path / POST_SHADER_DIR);
GenerateEdenPath(EdenPath::SaveDir, eden_path / NAND_DIR);
GenerateEdenPath(EdenPath::ScreenshotsDir, eden_path / SCREENSHOTS_DIR);
GenerateEdenPath(EdenPath::SDMCDir, eden_path / SDMC_DIR);
diff --git a/src/common/fs/path_util.h b/src/common/fs/path_util.h
index febed9c388..983e4917e8 100644
--- a/src/common/fs/path_util.h
+++ b/src/common/fs/path_util.h
@@ -26,6 +26,8 @@ enum class EdenPath {
LosslessDir, // Where the user-supplied Lossless Scaling library is stored.
NANDDir, // Where the emulated NAND is stored.
PlayTimeDir, // Where play time data is stored.
+ PostPresetDir,
+ PostShaderDir, // Where user post-processing shaders are stored.
SaveDir, // Where save data is stored.
ScreenshotsDir, // Where yuzu screenshots are stored.
SDMCDir, // Where the emulated SDMC is stored.
diff --git a/src/common/settings.h b/src/common/settings.h
index d45f0b7bbc..6b60d633a5 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -388,6 +388,30 @@ struct Values {
true,
true};
+ SwitchableSetting<std::string> post_shader_chain{linkage,
+ std::string(),
+ "post_shader_chain",
+ Category::Renderer,
+ Specialization::Default,
+ true,
+ true};
+
+ SwitchableSetting<std::string> post_shader_preset{linkage,
+ std::string(),
+ "post_shader_preset",
+ Category::Renderer,
+ Specialization::Default,
+ true,
+ true};
+
+ SwitchableSetting<bool> post_shader_enabled{linkage,
+ true,
+ "post_shader_enabled",
+ Category::Renderer,
+ Specialization::Default,
+ true,
+ true};
+
SwitchableSetting<bool> frame_gen{linkage, false, "frame_gen", Category::Renderer,
Specialization::Default, true, false};