mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-05 08:52:36 +00:00
Allow setting of post processing filter in config
This commit is contained in:
parent
1ea5f8f092
commit
8885f4377b
@ -71,6 +71,7 @@ static bool separateupdatefolder = false;
|
||||
static bool compatibilityData = false;
|
||||
static bool checkCompatibilityOnStartup = false;
|
||||
static std::string trophyKey;
|
||||
static std::string ppFilter;
|
||||
|
||||
// Gui
|
||||
static bool load_game_size = true;
|
||||
@ -232,6 +233,10 @@ u32 vblankDiv() {
|
||||
return vblankDivider;
|
||||
}
|
||||
|
||||
std::string getPostProcessingFilter() {
|
||||
return ppFilter;
|
||||
}
|
||||
|
||||
bool vkValidationEnabled() {
|
||||
return vkValidation;
|
||||
}
|
||||
@ -633,6 +638,7 @@ void load(const std::filesystem::path& path) {
|
||||
|
||||
screenWidth = toml::find_or<int>(gpu, "screenWidth", screenWidth);
|
||||
screenHeight = toml::find_or<int>(gpu, "screenHeight", screenHeight);
|
||||
ppFilter = toml::find_or<std::string>(gpu, "ppFilter", "linear");
|
||||
isNullGpu = toml::find_or<bool>(gpu, "nullGpu", false);
|
||||
shouldCopyGPUBuffers = toml::find_or<bool>(gpu, "copyGPUBuffers", false);
|
||||
shouldDumpShaders = toml::find_or<bool>(gpu, "dumpShaders", false);
|
||||
@ -747,6 +753,7 @@ void save(const std::filesystem::path& path) {
|
||||
data["Input"]["isMotionControlsEnabled"] = isMotionControlsEnabled;
|
||||
data["GPU"]["screenWidth"] = screenWidth;
|
||||
data["GPU"]["screenHeight"] = screenHeight;
|
||||
data["GPU"]["ppFilter"] = ppFilter;
|
||||
data["GPU"]["nullGpu"] = isNullGpu;
|
||||
data["GPU"]["copyGPUBuffers"] = shouldCopyGPUBuffers;
|
||||
data["GPU"]["dumpShaders"] = shouldDumpShaders;
|
||||
|
@ -44,6 +44,7 @@ bool getIsMotionControlsEnabled();
|
||||
|
||||
u32 getScreenWidth();
|
||||
u32 getScreenHeight();
|
||||
std::string getPostProcessingFilter();
|
||||
s32 getGpuId();
|
||||
|
||||
bool debugDump();
|
||||
|
@ -278,9 +278,19 @@ void Presenter::CreatePostProcessPipeline() {
|
||||
instance.GetDevice().destroyShaderModule(fs_module);
|
||||
|
||||
// Create sampler resource
|
||||
const auto filters = std::unordered_map<std::string, vk::Filter>{
|
||||
{"linear", vk::Filter::eLinear},
|
||||
{"nearest", vk::Filter::eNearest},
|
||||
};
|
||||
auto pp_filter = vk::Filter::eLinear;
|
||||
if (const auto filter = Config::getPostProcessingFilter(); filters.contains(filter)) {
|
||||
pp_filter = filters.at(filter);
|
||||
} else {
|
||||
LOG_WARNING(Render_Vulkan, "Unknown post processing filter: {}", filter);
|
||||
}
|
||||
const vk::SamplerCreateInfo sampler_ci = {
|
||||
.magFilter = vk::Filter::eLinear,
|
||||
.minFilter = vk::Filter::eLinear,
|
||||
.magFilter = pp_filter,
|
||||
.minFilter = pp_filter,
|
||||
.mipmapMode = vk::SamplerMipmapMode::eNearest,
|
||||
.addressModeU = vk::SamplerAddressMode::eClampToEdge,
|
||||
.addressModeV = vk::SamplerAddressMode::eClampToEdge,
|
||||
|
Loading…
Reference in New Issue
Block a user