From d0e2630e634bf229a6a663306898e493460da312 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 17 Jul 2025 23:47:42 +0300 Subject: [PATCH] added OptiScaler support and setings --- data_from_portwine/scripts/functions_helper | 49 +++++++++++++-------- data_from_portwine/scripts/var | 2 +- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index dcb84cb6..cc905069 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3494,21 +3494,34 @@ start_portwine () { set_to_dxvk_conf default # NVAPI, DLSS AND FAKE DLSS - FAKE_DLSS_3_PATH="$PW_PLUGINS_PATH/fake_dlss/DeckyFramegen_$PW_FAKE_DLSS_3_VER/bin/" - FAKE_DLSS_3_FILES="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll d3dcompiler_47.dll dlss-enabler.dll - dlss-enabler-upscaler.dll dlssg_to_fsr3_amd_is_better-3.0.dll dlssg_to_fsr3_amd_is_better.dll dxvk.conf - dlssg_to_fsr3.ini fakenvapi.ini libxess.dll nvapi64.dll _nvngx.dll nvngx.ini nvngx-wrapper.dll dxgi.dll" - ORIGINAL_GAME_DLLS="d3dcompiler_47.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll _nvngx.dll" - if [[ -d "$PATH_TO_GAME/Engine" ]]; then ue_exe_path=$(find "$PATH_TO_GAME" -maxdepth 4 -mindepth 4 -path "*Binaries/Win64/*.exe" -not -path "*/Engine/*" | head -1) PATH_TO_GAME=$(dirname "$ue_exe_path") fi - if [[ "${PW_USE_FAKE_DLSS_3}" != "1" ]] \ - && [[ -f "$PATH_TO_GAME/dlss-enabler.dll" ]] + # remove old decky_framegen files + if [[ -f "$PATH_TO_GAME/dlss-enabler.dll" ]] ; then + for dll in amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll d3dcompiler_47.dll dlss-enabler.dll \ + dlss-enabler-upscaler.dll dlssg_to_fsr3_amd_is_better-3.0.dll dlssg_to_fsr3_amd_is_better.dll \ + dxvk.conf dlssg_to_fsr3.ini fakenvapi.ini libxess.dll nvapi64.dll _nvngx.dll nvngx.ini \ + nvngx-wrapper.dll dxgi.dll + do try_remove_file "$PATH_TO_GAME/$dll" + done + for dll in d3dcompiler_47.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll _nvngx.dll + do [[ -f "$PATH_TO_GAME/${dll}.b" ]] && mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null + done + fi + + # install/remove new optiscaler + FAKE_DLSS_3_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_FAKE_DLSS_3_VER" + FAKE_DLSS_3_FILES="dxgi.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll \ + libxess_dx11.dll dlssg_to_fsr3_amd_is_better.dll fakenvapi.ini \ + OptiScaler.ini dxvk.conf" + ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll" + + if [[ "${PW_USE_OPTISCALER}" != "1" ]] \ + && [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]] then - try_remove_file "$PATH_TO_GAME/nvngx.dll" for dll in $FAKE_DLSS_3_FILES ; do try_remove_file "$PATH_TO_GAME/$dll" done @@ -3519,14 +3532,14 @@ start_portwine () { done fi - if [[ "${PW_USE_FAKE_DLSS_3}" == "1" ]] ; then + if [[ "${PW_USE_OPTISCALER}" == "1" ]] ; then if [[ ! -d "$FAKE_DLSS_3_PATH" ]] ; then - if try_download "github.com/Castro-Fidel/vulkan/releases/download/DeckyFramegen_${PW_FAKE_DLSS_3_VER}/DeckyFramegen_${PW_FAKE_DLSS_3_VER}.tar.xz" \ - "${PORT_WINE_PATH}/data/tmp/DeckyFramegen_${PW_FAKE_DLSS_3_VER}.tar.xz" ; then - if ! unpack "${PORT_WINE_PATH}/data/tmp/DeckyFramegen_${PW_FAKE_DLSS_3_VER}.tar.xz" "$PW_PLUGINS_PATH/fake_dlss/" + if try_download "github.com/Castro-Fidel/vulkan/releases/download/optiscaler-$PW_FAKE_DLSS_3_VER/optiscaler-$PW_FAKE_DLSS_3_VER.tar.xz" \ + "${PORT_WINE_PATH}/data/tmp/optiscaler-$PW_FAKE_DLSS_3_VER.tar.xz" ; then + if ! unpack "${PORT_WINE_PATH}/data/tmp/optiscaler-$PW_FAKE_DLSS_3_VER.tar.xz" "$PW_PLUGINS_PATH/fake_dlss/" then try_remove_dir "$FAKE_DLSS_3_PATH" fi - try_remove_file "${PORT_WINE_PATH}/data/tmp/DeckyFramegen_${PW_FAKE_DLSS_3_VER}.tar.xz" + try_remove_file "${PORT_WINE_PATH}/data/tmp/optiscaler-$PW_FAKE_DLSS_3_VER.tar.xz" fi fi @@ -3534,7 +3547,7 @@ start_portwine () { export DXVK_ENABLE_NVAPI="1" export PW_USE_RAY_TRACING="1" - if [[ ! -f "$PATH_TO_GAME/dlss-enabler.dll" ]] ; then + if [[ ! -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]] ; then if [[ -f "$PATH_TO_GAME/dxgi.dll" ]] ; then yad_error 'dxgi.dll is already present in the game folder!\nThis script uses dxgi.dll to load required files.\nRemove the mod using dxgi.dll.' fatal "Force exit..." @@ -4132,7 +4145,7 @@ fi try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll" try_force_link_file "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_dxvk_dll}.dll" ;; esac - if [[ $PW_USE_FAKE_DLSS_3 == "1" ]] && [[ $wine_dxvk_dll == "dxgi" ]] + if [[ $PW_USE_OPTISCALER == "1" ]] && [[ $wine_dxvk_dll == "dxgi" ]] then var_winedlloverride_update "dxgi=n,b" else var_winedlloverride_update "${wine_dxvk_dll}=n" fi @@ -5376,7 +5389,7 @@ export -f gui_proton_downloader gui_edit_db () { KEY_EDIT_DB_GUI=$RANDOM PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE - PW_NO_ESYNC PW_NO_FSYNC PW_NO_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 + PW_NO_ESYNC PW_NO_FSYNC PW_NO_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_OPTISCALER PW_USE_LS_FRAME_GEN PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE @@ -5409,7 +5422,7 @@ gui_edit_db () { PW_USE_RAY_TRACING_INFO=${translations[Enable vkd3d support - Ray Tracing]} PW_USE_NVAPI_AND_DLSS_INFO=${translations[Enable DLSS on supported NVIDIA graphics cards]} PW_USE_FAKE_DLSS_INFO=${translations[Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)]} - PW_USE_FAKE_DLSS_3_INFO=${translations[Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based on Decky-Framegen) Do not use in multiplayer games]} + PW_USE_OPTISCALER_INFO=${translations[Enable OptiScaler. It is a tool that lets you replace upscalers in games that already support DLSS2+ / FSR2+ / XeSS, now also supports enabling frame generation in those same games (through Nukem dlssg-to-fsr3 or OptiFG)]} PW_USE_LS_FRAME_GEN_INFO=${translations[Enable Lossless Scaling frame generation (experemental)]} PW_WINE_FULLSCREEN_FSR_INFO=${translations[Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen]} PW_HIDE_NVIDIA_GPU_INFO=${translations[Disguise all features used for NVIDIA graphics cards]} diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 8a09db4e..9199f8ff 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -48,7 +48,7 @@ export WINEUSERNAME="steamuser" export PW_WINE_USE="PROTON_LG" export PW_PLUGINS_VER="_v20" export PW_FAKE_DLSS_VER="230506" -export PW_FAKE_DLSS_3_VER="0.9.1-plus" +export PW_FAKE_DLSS_3_VER="v1" export PW_GALLIUM_NINE_VER="0.10" export PW_LSFG_VK_VER="3.1-cebe5e2" ###WINE_AND_PROTON_LG###