From 4fb0bb328b8c186f6fd2a870130ea46e844baa55 Mon Sep 17 00:00:00 2001 From: FlightlessMango Date: Mon, 3 Apr 2023 00:02:24 +0200 Subject: [PATCH] Bicubic filtering param --- README.md | 1 + src/overlay_params.cpp | 2 ++ src/overlay_params.h | 1 + src/vulkan.cpp | 6 ++++++ 4 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 845ca859..540096ed 100644 --- a/README.md +++ b/README.md @@ -380,6 +380,7 @@ Parameters that are enabled by default have to be explicitly disabled. These (cu | `wine` | Shows current Wine or Proton version in use | | `picmip` | Mip-map LoD bias. Negative values will increase texture sharpness (and aliasing). Positive values will increase texture blurriness (-16 to 16) | | `af` | Anisotropic filtering level. Improves sharpness of textures viewed at an angle (0 to 16) | +| `bicubic` | Force bicubic filtering | | `trilinear` | Force trilinear filtering | Example: `MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32` diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 28ac8b58..851ec70d 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -553,6 +553,7 @@ parse_overlay_env(struct overlay_params *params, params->enabled[OVERLAY_PARAM_ENABLED_hud_compact] = 0; params->enabled[OVERLAY_PARAM_ENABLED_exec_name] = 0; params->enabled[OVERLAY_PARAM_ENABLED_trilinear] = 0; + params->enabled[OVERLAY_PARAM_ENABLED_bicubic] = 0; } #define OVERLAY_PARAM_BOOL(name) \ if (!strcmp(#name, key)) { \ @@ -709,6 +710,7 @@ parse_overlay_config(struct overlay_params *params, params->enabled[OVERLAY_PARAM_ENABLED_hud_compact] = 0; params->enabled[OVERLAY_PARAM_ENABLED_exec_name] = 0; params->enabled[OVERLAY_PARAM_ENABLED_trilinear] = 0; + params->enabled[OVERLAY_PARAM_ENABLED_bicubic] = 0; params->options.erase("full"); } for (auto& it : params->options) { diff --git a/src/overlay_params.h b/src/overlay_params.h index c697ba79..33a05b96 100644 --- a/src/overlay_params.h +++ b/src/overlay_params.h @@ -92,6 +92,7 @@ typedef unsigned long KeySym; OVERLAY_PARAM_BOOL(battery_time) \ OVERLAY_PARAM_BOOL(exec_name) \ OVERLAY_PARAM_BOOL(trilinear) \ + OVERLAY_PARAM_BOOL(bicubic) \ OVERLAY_PARAM_CUSTOM(fps_sampling_period) \ OVERLAY_PARAM_CUSTOM(output_folder) \ OVERLAY_PARAM_CUSTOM(output_file) \ diff --git a/src/vulkan.cpp b/src/vulkan.cpp index d04e3d33..727b7fa9 100644 --- a/src/vulkan.cpp +++ b/src/vulkan.cpp @@ -1954,6 +1954,12 @@ static VkResult overlay_CreateSampler( sampler.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; } + if (params->enabled[OVERLAY_PARAM_ENABLED_bicubic]){ + sampler.magFilter = VK_FILTER_CUBIC_IMG; + sampler.minFilter = VK_FILTER_CUBIC_IMG; + sampler.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + } + struct device_data *device_data = FIND(struct device_data, device); VkResult result = device_data->vtable.CreateSampler(device, &sampler, pAllocator, pSampler);