Compare commits

...

18 Commits

Author SHA1 Message Date
Mikhail Tergoev
b7212eb2a9 Scripts version 2431 2025-07-18 01:42:01 +03:00
Mikhail Tergoev
a7b699aa29 updated locales 2025-07-18 00:56:29 +03:00
Mikhail Tergoev
974d000431 rename var: FAKE_DLSS_3 to OPTISCALER 2025-07-18 00:06:49 +03:00
Mikhail Tergoev
116d39da30 dropped old FAKE_DLSS_2 2025-07-17 23:57:05 +03:00
Mikhail Tergoev
d0e2630e63 added OptiScaler support and setings 2025-07-17 23:47:42 +03:00
Mikhail Tergoev
0936887509 updated simulate user activity for flatpak 2025-07-17 19:21:50 +03:00
Mikhail Tergoev
fbd08be886 Merge branch 'inihibit' of github.com:Boria138/PortWINE into devel 2025-07-17 19:04:00 +03:00
Mikhail Tergoev
bcf6baca0e Merge branch 'compositor-suspend' of github.com:Boria138/PortWINE into Boria138-compositor-suspend 2025-07-17 18:55:51 +03:00
Mikhail Tergoev
f6a7842970 Merge branch 'tuned' of github.com:Boria138/PortWINE into Boria138-tuned 2025-07-17 18:54:17 +03:00
Mikhail Tergoev
05a45abeb0 set_to_dxvk_conf: fixed typos 2025-07-17 18:53:24 +03:00
Mikhail Tergoev
a3f2ccc01c Merge branch 'zorn-v-patch-7' into devel 2025-07-17 18:52:30 +03:00
Mikhail Tergoev
6001f024a7 Merge branch 'patch-7' of github.com:zorn-v/PortWINE into zorn-v-patch-7 2025-07-17 18:52:23 +03:00
Mikhail Tergoev
f16e018cc1 updated RU locales 2025-07-17 18:51:12 +03:00
Mikhail Tergoev
a71b854136 added support and setting for NTSYNC 2025-07-17 18:46:16 +03:00
zorn-v
19173df025 Fix typo 2025-07-17 14:55:09 +10:00
133fa5b6d0 feat: replace gamemode with tuned
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-16 23:01:43 +05:00
4f96e1e16e fix: added forget kde compositor suspend check
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-16 16:32:43 +05:00
85938b4712 feat: Added org.freedesktop.ScreenSaver.SimulateUserActivity for flatpak support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-16 10:35:30 +05:00
9 changed files with 197 additions and 76 deletions

View File

@@ -2,6 +2,16 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2431### / Date: 18.07.2025 / Download update size: 4 megabytes
* added USE_OPTISCALER setting to enable DLSS and frame generation on any video cards
Thanks to @EnDiMuR and @eljeyna for additional settings and useful information:
https://telegra.ph/Instrukciya-po-ustanovke-moda-DLSS-Frame-Generation-02-01
* removed obsolete settings: USE_FAKE_DLSS and USE_FAKE_DLSS_3 (they are completely replaced by USE_OPTISCALER)
* updated lsfg-vk frame generator (USE_LS_FRAME_GEN in PP settings when starting the game)
* added sleep mode lock for flatpak version of PortProton (thanks to Boria138)
* added new setting to enable NTSYNC (NO_NTSYNC in PP settings when starting the game)
* other small improvements and script fixes (thanks to Boria138 and zorn-v)
###Scripts version 2430### / Date: 15.07.2025 / Download update size: 185 megabytes
* when using USE_LS_FRAME_GEN the smoothness of games is increased and the number of artifacts is reduced
* updated WINE_LG to version "10-12"

View File

@@ -2,6 +2,16 @@
-----------------------------------------
История изменений:
###Scripts version 2431### / Дата: 18.07.2025 / Размер скачиваемого обновления: 4 мегабайт
* добавлена настройка USE_OPTISCALER для включения DLSS и генерация кадров на любых видеокартах
Спасибо @EnDiMuR и @eljeyna за дополнительные настройки и полезную информацию:
https://telegra.ph/Instrukciya-po-ustanovke-moda-DLSS-Frame-Generation-02-01
* удалены устаревшие настройки: USE_FAKE_DLSS и USE_FAKE_DLSS_3 (их полностью заменяет USE_OPTISCALER)
* обновлен генератор кадров lsfg-vk (USE_LS_FRAME_GEN в настройках PP при запуске игры)
* добавлена блокировка перехода в спящий режим для flatpak версии PortProton (спасибо Boria138)
* добавлена новая настройка для включения NTSYNC (NO_NTSYNC в настройках PP при запуске игры)
* другие небольшие улучшения и исправления скриптов (спасибо Boria138 и zorn-v)
###Scripts version 2430### / Дата: 15.07.2025 / Размер скачиваемого обновления: 185 мегабайт
* при использовании USE_LS_FRAME_GEN увеличена плавность игр и уменьшено количество артефактов
* обновлен WINE_LG до версии "10-12"

View File

@@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-15 15:01+0300\n"
"POT-Creation-Date: 2025-07-18 00:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -435,17 +435,21 @@ msgid "Do not use futex-based in-process synchronization primitives. "
"support) (It is recommended not to change the value)"
msgstr ""
msgid "Do not use in-process synchronization via the Linux ntsync driver. "
"(Automatically disabled on systems without loaded ntsync module) "
"(Experimental)"
msgstr ""
msgid "Enable vkd3d support - Ray Tracing"
msgstr ""
msgid "Enable DLSS on supported NVIDIA graphics cards"
msgstr ""
msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
msgstr ""
msgid "Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based "
"on Decky-Framegen) Do not use in multiplayer games"
msgid "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)"
msgstr ""
msgid "Enable Lossless Scaling frame generation (experemental)"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-15 15:01+0300\n"
"POT-Creation-Date: 2025-07-18 00:51+0300\n"
"PO-Revision-Date: 2025-07-01 20:00+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -506,21 +506,27 @@ msgstr ""
"(Desactivado automáticamente en sistemas sin soporte para "
"FUTEX_WAIT_MULTIPLE) (Se recomienda no cambiar el valor)"
#, fuzzy
msgid ""
"Do not use in-process synchronization via the Linux ntsync driver. "
"(Automatically disabled on systems without loaded ntsync module) "
"(Experimental)"
msgstr ""
"No utilizar primitivas de sincronización basadas en futex en el proceso. "
"(Desactivado automáticamente en sistemas sin soporte para "
"FUTEX_WAIT_MULTIPLE) (Se recomienda no cambiar el valor)"
msgid "Enable vkd3d support - Ray Tracing"
msgstr "Habilitar el soporte de vkd3d: Ray Tracing"
msgid "Enable DLSS on supported NVIDIA graphics cards"
msgstr "Habilitar DLSS en tarjetas gráficas NVIDIA compatibles"
msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
msgstr ""
"Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"
msgid ""
"Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based on "
"Decky-Framegen) Do not use in multiplayer games"
"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)"
msgstr ""
"Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"
msgid "Enable Lossless Scaling frame generation (experemental)"
msgstr ""
@@ -2181,6 +2187,16 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr ""
#~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"
#~ msgid ""
#~ "Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based on "
#~ "Decky-Framegen) Do not use in multiplayer games"
#~ msgstr ""
#~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"
#~ msgid ""
#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing "
#~ "package: <b>d3dadapter9</b>"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-15 15:01+0300\n"
"PO-Revision-Date: 2025-07-15 15:03+0300\n"
"POT-Creation-Date: 2025-07-18 00:51+0300\n"
"PO-Revision-Date: 2025-07-18 00:52+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
@@ -508,6 +508,14 @@ msgstr ""
"(автоматически отключается в системах без поддержки FUTEX_WAIT_MULTIPLE, "
"значение рекомендуется не менять)"
msgid ""
"Do not use in-process synchronization via the Linux ntsync driver. "
"(Automatically disabled on systems without loaded ntsync module) "
"(Experimental)"
msgstr ""
"Не использовать примитивы ntsync драйвера (автоматически отключается в "
"системах без загруженного модуля ntsync) (Экспериментальная функция)"
msgid "Enable vkd3d support - Ray Tracing"
msgstr ""
"Включить поддержку vkd3d — Трассировка лучей (только для игр, работающих на "
@@ -516,18 +524,15 @@ msgstr ""
msgid "Enable DLSS on supported NVIDIA graphics cards"
msgstr "Включить DLSS на поддерживаемых видеокартах NVIDIA"
msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
msgstr ""
"Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). "
"Позволяет задействовать FSR 2 в играх с поддержкой DLSS"
msgid ""
"Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based on "
"Decky-Framegen) Do not use in multiplayer games"
"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)"
msgstr ""
"Включить трансляцию DLSS 3 с генерацией кадров в FSR 3 в играх на DirectX 12 "
"(Decky-Framegen). Клавиша Insert открывает окно настроек OptiScaler внутри "
"игры. Не используйте в мультиплеерных играх"
"Включить OptiScaler. Это инструмент, позволяющий заменить апскейлеры в "
"играх, которые уже поддерживают DLSS2+ / FSR2+ / XeSS. Теперь он также "
"поддерживает генерацию кадров в этих же играх (через Nukem dlssg-to-fsr3 или "
"OptiFG)."
msgid "Enable Lossless Scaling frame generation (experemental)"
msgstr ""
@@ -2160,6 +2165,19 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr ""
#~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). "
#~ "Позволяет задействовать FSR 2 в играх с поддержкой DLSS"
#~ msgid ""
#~ "Enable DLSS 3 with FG translator in FSR 3 in DirectX 12 games (based on "
#~ "Decky-Framegen) Do not use in multiplayer games"
#~ msgstr ""
#~ "Включить трансляцию DLSS 3 с генерацией кадров в FSR 3 в играх на DirectX "
#~ "12 (Decky-Framegen). Клавиша Insert открывает окно настроек OptiScaler "
#~ "внутри игры. Не используйте в мультиплеерных играх"
#~ msgid ""
#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing "
#~ "package: <b>d3dadapter9</b>"

View File

@@ -135,6 +135,29 @@ fatal () {
exit 1
}
start_activity_simulation() {
(
trap 'exit 0' TERM INT
while [[ -f "${PORT_WINE_PATH}/data/tmp/screensaver_pid" ]] ; do
dbus-send --session --dest=org.freedesktop.ScreenSaver \
--type=method_call /org/freedesktop/ScreenSaver \
org.freedesktop.ScreenSaver.SimulateUserActivity
sleep 30
done
) &
echo $! > "${PORT_WINE_PATH}/data/tmp/screensaver_pid"
}
stop_activity_simulation() {
if [[ -f "${PORT_WINE_PATH}/data/tmp/screensaver_pid" ]] ; then
pw_screensaver_pid=$(cat "${PORT_WINE_PATH}/data/tmp/screensaver_pid")
if ps cax | grep "${pw_screensaver_pid}" ; then
kill -n 9 "${pw_screensaver_pid}" &>/dev/null
fi
rm -f "${PORT_WINE_PATH}/data/tmp/screensaver_pid"
fi
}
change_locale () {
if [[ -f "${PORT_WINE_TMP_PATH}/PortProton_loc" ]] ; then
LANGUAGE=$(<"${PORT_WINE_TMP_PATH}/PortProton_loc")
@@ -2031,7 +2054,6 @@ stop_portwine () {
dbus-send --session --dest=com.deepin.WMSwitcher --type=method_call /com/deepin/WMSwitcher com.deepin.WMSwitcher.RequestSwitchWM
fi
fi
pw_stop_progress_bar
try_remove_file "${PORT_SCRIPTS_PATH}/0"
try_remove_file "${PORT_SCRIPTS_PATH}/1"
@@ -2040,7 +2062,11 @@ stop_portwine () {
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
pw_exit_tray
pw_auto_create_shortcut
stop_activity_simulation
add_in_stop_portwine
if [[ -n "$PW_TUNED_PROFILE" ]] ; then
tuned-adm profile $PW_TUNED_PROFILE
fi
if [[ $PW_LOG != 1 ]] && [[ -n $START_PW_TIME_IN_GAME ]] ; then
debug_timer --end -s "PW_TIME_IN_GAME"
@@ -2849,7 +2875,6 @@ pw_skip_get_info () {
# TODO: Add NVIDIA Smooth Motion
if check_nvidia_rtx ; then
check_variables PW_USE_NVAPI_AND_DLSS "1"
check_variables PW_USE_FAKE_DLSS "0"
check_variables PW_USE_RAY_TRACING "1"
fi
@@ -3351,12 +3376,12 @@ start_portwine () {
if [[ $ULIMIT_HN -lt 524288 ]] ; then
print_warning "ESYNC dont work! (ulimit -Hn $ULIMIT_HN < 524288)"
export WINEESYNC="0"
elif [[ "${PW_NO_ESYNC}" == 1 ]]
elif [[ $PW_NO_ESYNC == "1" ]]
then export WINEESYNC="0"
else export WINEESYNC="1"
fi
if [[ "${PW_NO_FSYNC}" == 1 ]] ; then
if [[ $PW_NO_FSYNC == "1" ]] ; then
export WINEFSYNC="0"
export WINEFSYNC_FUTEX2="0"
else
@@ -3365,6 +3390,19 @@ start_portwine () {
check_variables WINEFSYNC_FUTEX2 0
fi
if [[ $PW_NO_NTSYNC == "0" ]] ; then
if [[ -e "/dev/ntsync" ]] ; then
export WINENTSYNC="1"
export WINEFSYNC="0"
export WINEESYNC="0"
else
export WINENTSYNC="0"
print_error "/dev/ntsync - not found!"
fi
else
export WINENTSYNC="0"
fi
# export WINE_SIMULATE_ASYNC_READ=1
# export WINE_FSYNC_SIMULATE_SCHED_QUANTUM=1
# export WINE_ALERT_SIMULATE_SCHED_QUANTUM=1
@@ -3402,7 +3440,7 @@ start_portwine () {
-e /'dxgi.maxFrameLatency =/c # dxgi.maxFrameLatency =' \
-e /'d3d9.maxFrameLatency =/c # d3d9.maxFrameLatency =' \
-e /'dxgi.syncInterval =/c # dxgi.syncInterval =' \
-e /'d3d9.presentInterva =/c # d3d9.presentInterva =' \
-e /'d3d9.presentInterval =/c # d3d9.presentInterval =' \
-e /'dxgi.numBackBuffers =/c # dxgi.numBackBuffers =' \
-e /'d3d9.numBackBuffers =/c # d3d9.numBackBuffers =' \
-e /'d3d9.deviceLossOnFocusLoss =/c # d3d9.deviceLossOnFocusLoss =' \
@@ -3442,7 +3480,7 @@ start_portwine () {
-e /'dxgi.maxFrameLatency =/c dxgi.maxFrameLatency = 1' \
-e /'d3d9.maxFrameLatency =/c d3d9.maxFrameLatency = 1' \
-e /'dxgi.syncInterval =/c dxgi.syncInterval = 0' \
-e /'d3d9.presentInterval =/c d3d9.presentInterva = 0' \
-e /'d3d9.presentInterval =/c d3d9.presentInterval = 0' \
-e /'dxgi.numBackBuffers =/c dxgi.numBackBuffers = 2' \
-e /'d3d9.numBackBuffers =/c d3d9.numBackBuffers = 2' \
-e /'d3d9.deviceLossOnFocusLoss =/c d3d9.deviceLossOnFocusLoss = True' \
@@ -3455,22 +3493,35 @@ 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
OPTISCALER_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_OPTISCALER_VER"
OPTISCALER_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
for dll in $OPTISCALER_FILES ; do
try_remove_file "$PATH_TO_GAME/$dll"
done
for dll in $ORIGINAL_GAME_DLLS ; do
@@ -3480,14 +3531,14 @@ start_portwine () {
done
fi
if [[ "${PW_USE_FAKE_DLSS_3}" == "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/"
then try_remove_dir "$FAKE_DLSS_3_PATH"
if [[ "${PW_USE_OPTISCALER}" == "1" ]] ; then
if [[ ! -d "$OPTISCALER_PATH" ]] ; then
if try_download "github.com/Castro-Fidel/vulkan/releases/download/optiscaler-$PW_OPTISCALER_VER/optiscaler-$PW_OPTISCALER_VER.tar.xz" \
"${PORT_WINE_PATH}/data/tmp/optiscaler-$PW_OPTISCALER_VER.tar.xz" ; then
if ! unpack "${PORT_WINE_PATH}/data/tmp/optiscaler-$PW_OPTISCALER_VER.tar.xz" "$PW_PLUGINS_PATH/fake_dlss/"
then try_remove_dir "$OPTISCALER_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_OPTISCALER_VER.tar.xz"
fi
fi
@@ -3495,7 +3546,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..."
@@ -3507,19 +3558,13 @@ start_portwine () {
mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null
fi
done
for dll in $FAKE_DLSS_3_FILES ; do
try_force_link_file "$FAKE_DLSS_3_PATH/$dll" "$PATH_TO_GAME/$dll"
for dll in $OPTISCALER_FILES ; do
try_force_link_file "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll"
done
fi
for rm_dll in "nvngx.ini" "nvngx.dll" "_nvngx.dll" ; do
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/$rm_dll"
done
elif [[ "${PW_USE_FAKE_DLSS}" == "1" ]] ; then
DXVK_ENABLE_NVAPI="1"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/_nvngx.dll"
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/nvngx.dll"
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.ini" "${WINEPREFIX}/drive_c/windows/system32/nvngx.ini"
set_to_dxvk_conf nvidia_old
elif [[ "${PW_USE_NVAPI_AND_DLSS}" == 1 ]] ; then
DXVK_ENABLE_NVAPI="1"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/nvngx.ini"
@@ -3608,6 +3653,15 @@ start_portwine () {
else
export PW_POWERPROFILECTL_SLR=""
fi
elif command -v tuned-adm &>/dev/null ; then
export PW_TUNED_PROFILE=$(tuned-adm active | awk -F': ' '{print $2}')
if tuned-adm list | grep -q 'throughput-performance' ; then
tuned-adm profile throughput-performance
print_info "Gamemode replaced by tuned to avoid conflict with ananicy and sched-ext."
export PW_POWERPROFILECTL_SLR=""
else
export PW_POWERPROFILECTL_SLR=""
fi
fi
elif check_flatpak ; then
export GAMEMODERUN=1
@@ -3644,14 +3698,16 @@ start_portwine () {
export PW_GAMEMODERUN_SLR=""
fi
# TODO: Add org.freedesktop.ScreenSaver.SimulateUserActivity for Flatpak support
# org.freedesktop.ScreenSaver.Inhibit doesn`t work because the Inhibit method is released as soon as the D-Bus connection is released
if command -v systemd-inhibit &>/dev/null \
&& [[ "$GAMEMODERUN" != "1" ]]
then
if [[ "$GAMEMODERUN" != "1" ]]; then
if check_flatpak; then
start_activity_simulation
PW_INHIBIT_SLR=""
print_info "Screensaver will be inhibited using D-Bus (Flatpak mode)"
elif command -v systemd-inhibit &>/dev/null; then
PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]} --what=idle:sleep"
print_info "Screensaver will be inhibit"
print_info "Screensaver will be inhibited using systemd-inhibit (Native mode)"
fi
fi
pw_other_fixes
# enabled BattleEye_Runtime and EasyAntiCheat_Runtime
@@ -4082,7 +4138,7 @@ start_portwine () {
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
@@ -4375,7 +4431,10 @@ start_portwine () {
&& ! check_gamescope_session
then
if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then
qdbus org.kde.KWin /Compositor suspend
kde_version=$(plasmashell --version 2>/dev/null | grep -oE '[0-9]+' | head -1)
if [[ -n "$kde_version" && "$kde_version" -lt 6 ]]; then
qdbus org.kde.KWin /Compositor suspend
fi
elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then
gsettings set org.mate.Marco.general compositing-manager false
elif [[ "${DESKTOP_SESSION}" =~ "xfce" ]] ; then
@@ -5323,9 +5382,9 @@ 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_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 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_NO_ESYNC PW_NO_FSYNC PW_NO_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_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
PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
@@ -5352,10 +5411,10 @@ gui_edit_db () {
<b>Super + C :</b> Update clipboard]}
PW_NO_ESYNC_INFO=${translations[Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)]}
PW_NO_FSYNC_INFO=${translations[Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems without FUTEX_WAIT_MULTIPLE support) (It is recommended not to change the value)]}
PW_NO_NTSYNC_INFO=${translations[Do not use in-process synchronization via the Linux ntsync driver. (Automatically disabled on systems without loaded ntsync module) (Experimental)]}
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]}
@@ -5410,6 +5469,8 @@ gui_edit_db () {
DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
fi
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_NO_NTSYNC"
if check_wayland_session
then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT"
else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR"

View File

@@ -335,6 +335,7 @@ if [[ ${portwine_exe,,} =~ (setup|install|.msi$) ]] ; then
export PW_DISABLED_CREATE_DB="1"
export PW_VULKAN_USE="1"
export PW_MANGOHUD="0"
export PW_NO_NTSYNC="1"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_USE_GAMEMODE="0"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2430
#SCRIPTS_NEXT_VERSION=2431
#SCRIPTS_STABLE_VERSION=2425
########################################################################
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
@@ -15,6 +15,8 @@ export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_NO_ESYNC="0"
export PW_NO_FSYNC="0"
export PW_NO_NTSYNC="1"
export PW_USE_GAMEMODE="0"
export PW_USE_TERMINAL="0"
export PW_WINDOWS_VER="10"
@@ -45,10 +47,9 @@ export WINEUSERNAME="steamuser"
###DEFAULT_WINE###
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_OPTISCALER_VER="v1"
export PW_GALLIUM_NINE_VER="0.10"
export PW_LSFG_VK_VER="2.13"
export PW_LSFG_VK_VER="3.1-cebe5e2"
###WINE_AND_PROTON_LG###
export PW_PROTON_LG_VER="PROTON_LG_10-8"
export PW_WINE_LG_VER="WINE_LG_10-12"
@@ -66,7 +67,7 @@ export VKD3D_GIT_VER="1.1-4655"
export PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.50"
###MANGOHUD###
export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine"
export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine,winesync"
###DGVOODOO2###
export DGV2_VER="2.79.3"
export PW_DGV2_ANTIALIASING="disabled"