Compare commits

...

50 Commits

Author SHA1 Message Date
69ec71e564 Scripts version 2438 2025-07-26 11:57:07 +03:00
e1a47bdb0e updated OPTISCALER to v02-0.7.7-pre12 2025-07-26 11:40:52 +03:00
c1b7c33444 Merge branch 'Htylol-fixes_locale_list' into devel
9
2025-07-26 10:50:06 +03:00
9c3d3e37e1 pw_skip_get_info: Fixed the operation of LOCALE_LIST
If the system uses utf8 instead of just utf, the list will not work
2025-07-25 23:23:01 +05:00
c33d9ba3f5 Scripts version 2437 2025-07-25 15:56:55 +03:00
ca9c63711d fixed launch epic games from desktop files 2025-07-25 15:43:21 +03:00
9064faf36f dropped Steam* var. 2025-07-25 15:41:56 +03:00
88c5d78713 fixed set WINE if not found and use WINE_LG for Sony games 2025-07-25 14:31:02 +03:00
7c573daca5 disabled *SYNC by default 2025-07-25 13:30:45 +03:00
e9a13ae5d8 dropped check libc for flatpak 2025-07-25 13:27:35 +03:00
e2f1476d90 gui_edit_db lock and disabled lsfg if libc 2.37-
GLIBC version 2.38+ is required for use Lossless Scaling frame generation
2025-07-25 12:32:05 +03:00
ccd9b166d1 do not force change mirror to github for devel 2025-07-25 12:20:44 +03:00
4e18752e5c Merge branch 'Htylol-fixes_for_3d_api_1' into devel 2025-07-25 12:07:30 +03:00
0a277c430e Merge branch 'fixes_for_3d_api_1' of github.com:Htylol/PortWINE into Htylol-fixes_for_3d_api_1 2025-07-25 12:07:21 +03:00
4b72da7abf Merge branch 'Htylol-update_start_sh_1' into devel 2025-07-25 11:59:44 +03:00
90df03eec7 3D api: fixed stable and newest work, libvkd3d is always used from new versions 2025-07-25 11:41:56 +05:00
f67d2c27f4 start.sh: Optimized and removed unnecessary code 2025-07-25 00:27:14 +05:00
e9dc5604d4 Scripts version 2436 2025-07-24 20:19:37 +03:00
a2acf29a37 always auto set PW_VULKAN_USE if empty 2025-07-24 20:09:58 +03:00
a8f0badcd1 Merge branch 'Htylol-added_dxvk_stable-3' into devel 2025-07-24 19:48:13 +03:00
085220ea94 Refactoring 3D api: Interface acceleration 2025-07-24 21:43:30 +05:00
252ed89e4e Ooops. Hotfix for run pw_check_glxinfo again. 2025-07-24 17:15:33 +03:00
d44749fbeb added update meter 2025-07-24 17:13:45 +03:00
1b007ee3cb hotfix for run pw_check_glxinfo 2025-07-24 17:07:06 +03:00
779fc18eb5 updated locales 2025-07-24 16:56:23 +03:00
b5564b32c5 refactored 3D Api 2025-07-24 16:56:08 +03:00
812cadac41 Merge branch 'Htylol-added_dxvk_stable-2' into devel 2025-07-24 15:08:00 +03:00
6bee5b77f1 Merge branch 'added_dxvk_stable-2' of github.com:Htylol/PortWINE into Htylol-added_dxvk_stable-2 2025-07-24 15:07:53 +03:00
a480074dc8 Refactoring 3D api number 2 (Added stable 1.3+ dvxk,vkd3d) 2025-07-24 17:07:28 +05:00
a841a3a72c Merge branch 'Boria138-cachy-v3' into devel 2025-07-24 12:54:16 +03:00
cf9f9c4561 Merge branch 'cachy-v3' of github.com:Boria138/PortWINE into Boria138-cachy-v3 2025-07-24 12:54:06 +03:00
152c8191af updated PROTON_LG to 10-10 (with ntsync support) 2025-07-24 12:39:59 +03:00
b41bf42d2a feat: added cachy v3 to get_other_wine if supported
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-24 12:49:36 +05:00
df88eac63c Merge branch 'Htylol-added_dxvk_sarek' into devel 2025-07-24 00:40:37 +03:00
c28c08122b Merge branch 'added_dxvk_sarek' of github.com:Htylol/PortWINE into Htylol-added_dxvk_sarek 2025-07-24 00:40:27 +03:00
407657891a Merge branch 'Htylol-rm_from_array_1' into devel 2025-07-24 00:33:58 +03:00
e4d2edd889 Merge branch 'rm_from_array_1' of github.com:Htylol/PortWINE into Htylol-rm_from_array_1 2025-07-24 00:33:50 +03:00
19996e4331 Merge branch 'Boria138-wine-metadata' into devel 2025-07-24 00:27:10 +03:00
5d5fa65008 Merge branch 'wine-metadata' of github.com:Boria138/PortWINE into Boria138-wine-metadata 2025-07-24 00:27:03 +03:00
0ff029f335 check for stable scripts only 2025-07-24 00:20:16 +03:00
1b0683772e VULKAN_VERSION_CHECK: refactor driver version detect 2025-07-23 23:45:31 +05:00
c2ff9aea0a Improved for dxvk-sarek and new 3d api 2025-07-23 23:22:03 +05:00
ee108295f4 STABLE DXVK and VKD3D changed to SAREK 2025-07-23 21:58:43 +05:00
3a57d159dd SORT_STABLE changed to SORT_SAREK 2025-07-23 21:47:26 +05:00
bdb90516a6 Improved vulkan driver detection condition for PW_VULKAN_USE 2025-07-23 21:39:36 +05:00
90110f1d26 chore(gui_proton_downloader): use metadata from my repo instead of gh api
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-23 20:57:56 +05:00
7c6ecdd518 Refactoring 3D api, added dxvk, vkd3d sarek for stable 2025-07-23 18:38:11 +05:00
9c1cd17ea4 Added NUDA_CPU_CB for hide the setting when it is not useful 2025-07-22 11:48:23 +05:00
89539538a8 AMD_VULKAN_CB: Instead of off, the state is now not displayed 2025-07-22 09:23:06 +05:00
1cd0b569b8 gui_edit_db: Instead of disabling, used hiding settings 2025-07-22 08:11:07 +05:00
9 changed files with 482 additions and 319 deletions

View File

@ -2,6 +2,27 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2438### / Date: 26.07.2025 / Download update size: 4 megabytes
* fixed locale detection for flatpak version of PortProton (thanks to Htylol)
* updated OPTISCALER to v02-0.7.7-pre12 (thanks to @eljeyna)
* more games working with OPTISCALER
###Scripts version 2437### / Date: 25.07.2025 / Download update size: 4 megabytes
* FSYNC and ESYNC are disabled by default
* WINE_LG is used by default for all Sony games
* added a block on enabling USE_LS_FRAME_GEN if the GLIBC version in the system is lower than 2.38
* additional interface optimizations were made (thanks to Htylol)
* work continued on improving the 3D Api selection functions (thanks to Htylol)
###Scripts version 2436### / Date: 24.07.2025 / Download update size: 230 megabytes
* changed DXVK and VKD3D versions for DirectX to Vulkan translation (thanks to Htylol):
- The newest ones work only with "MESA 25+" or "NVIDIA 550.54.14+" drivers
- Stable ones work with any drivers, provided that the video card supports Vulkan version "1.3+"
- Sarek works with any video card that supports Vulkan version "1.1+"
* PROTON_LG updated to version "10-10" (with NTSYNC support)
* accelerated opening of the list of third-party WINE versions (thanks to Boria138)
* added to the lists of third-party WINE all WOW64 versions from Kron4ek and x86_64_v3 builds from CachyOS (thanks to Boria138)
###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes
* cumulative update of stable version of PortProton scripts
* removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE)

View File

@ -2,6 +2,27 @@
-----------------------------------------
История изменений:
###Scripts version 2438### / Дата: 26.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлено определение локалей для flatpak версии PortProton (спасибо Htylol)
* обновлен OPTISCALER до версии v02-0.7.7-pre12 (спасибо @eljeyna)
* расширено количество игр работающих с OPTISCALER
###Scripts version 2437### / Дата: 25.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* FSYNC и ESYNC по умолчанию выключены
* для всех игр от Sony по умолчанию используется WINE_LG
* добавлена блокировка включения USE_LS_FRAME_GEN если версия GLIBC в системе ниже чем 2.38
* произведены дополнительные оптимизации интерфейса (спасибо Htylol)
* продолжены работы по улучшению функций выбора 3D Api (спасибо Htylol)
###Scripts version 2436### / Дата: 24.07.2025 / Размер скачиваемого обновления: 230 мегабайт
* изменены версии DXVK и VKD3D для трансляции DirectX в Vulkan (спасибо Htylol):
- Новейшие работают только с драйверами "MESA 25+", или "NVIDIA 550.54.14+"
- Стабильные работают с любыми драйверами при условии что видеокарта поддерживает Vulkan версии "1.3+"
- Sarek работает с любой видеокартой поддерживающей Vulkan версии "1.1+"
* обновлен PROTON_LG до версии "10-10" (с поддержкой NTSYNC)
* ускорено открытие списка сторонних версий WINE (спасибо Boria138)
* добавлены в списки сторонних WINE все WOW64 версии от Kron4ek и сборки x86_64_v3 от CachyOS (спасибо Boria138)
###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
* удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE)

View File

@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n"
"POT-Creation-Date: 2025-07-24 16:50+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"
@ -61,19 +61,36 @@ msgid "--autoinstall and the name of what needs to be installed is given in "
"the list below:"
msgstr ""
msgid "Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA "
"550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and "
"old games"
msgstr ""
msgid "Selecting a WINE version."
msgstr ""
msgid "Select a prefix to launch the game/application (if you enter a non-"
"existent name, a new prefix will be created)."
msgstr ""
msgid "USE_SYSTEM_WINE"
msgstr ""
msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr ""
msgid "Legacy DXVK (Vulkan v1.1)"
msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr ""
msgid "Stable DXVK, VKD3D (Vulkan v1.2)"
msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr ""
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr ""
msgid "GET-OTHER-WINE"
@ -384,6 +401,9 @@ msgstr ""
msgid "Check new version WINE..."
msgstr ""
msgid "Error: failed to fetch metadata."
msgstr ""
msgid "Error: check wine."
msgstr ""
@ -543,6 +563,9 @@ msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not "
"work with PROTON_LG and WINE_LG)"
msgstr ""
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr ""
@ -1073,7 +1096,7 @@ msgid "Disable MangoHud and go to the previous menu"
msgstr ""
msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working "
"only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)"
"only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr ""
msgid "Force the vertical sync to avoid tearing or prevent the GPU from "

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n"
"PO-Revision-Date: 2025-07-01 20:00+0300\n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: 2025-07-24 15:26+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es_ES\n"
@ -81,20 +81,38 @@ msgstr ""
"--autoinstall y el nombre de lo que se debe instalar se indica en la lista a "
"continuación:"
msgid ""
"Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and old games"
msgstr ""
#, fuzzy
msgid "Selecting a WINE version."
msgstr "Seleccionar WINE para descargar:"
msgid ""
"Select a prefix to launch the game/application (if you enter a non-existent "
"name, a new prefix will be created)."
msgstr ""
msgid "USE_SYSTEM_WINE"
msgstr "Usar Wine del sistema"
msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (Para tarjetas de video sin Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)"
msgstr "DXVK heredado (Vulkan v1.1)"
msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)"
msgstr "DXVK estable, VKD3D (Vulkan v1.2)"
msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgid "GET-OTHER-WINE"
msgstr "OBTENER OTRO WINE"
@ -430,6 +448,9 @@ msgstr "FORZAR SALIDA"
msgid "Check new version WINE..."
msgstr "Comprobar nueva versión de WINE..."
msgid "Error: failed to fetch metadata."
msgstr ""
msgid "Error: check wine."
msgstr "Error: verificar wine."
@ -661,6 +682,9 @@ msgstr ""
"Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona "
"con PROTON_LG y WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK"
@ -1316,9 +1340,10 @@ msgstr "Iniciar vkcube para previsualizar los cambios"
msgid "Disable MangoHud and go to the previous menu"
msgstr "Desactivar MangoHud y volver al menú anterior"
#, fuzzy
msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)"
"newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr ""
"Usa DirectX 12 para dgVoodoo2. No siempre funciona mejor. (Funciona solo con "
"dxvk/vkd3d más nuevos y estables) (Configuraciones de Direct3D y Glide)"
@ -2193,6 +2218,9 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "DXVK heredado (Vulkan v1.1)"
#~ 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)"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-21 16:53+0300\n"
"PO-Revision-Date: 2025-07-21 16:55+0300\n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: 2025-07-24 16:51+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
@ -80,20 +80,46 @@ msgstr ""
"--autoinstall и название того, что необходимо установить, указано в списке "
"ниже:"
msgid ""
"Select DXVK and VKD3D versions for DirectX to Vulkan translation:\n"
" - The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+\n"
" - Stable ones work with any drivers, provided that the video card "
"supports Vulkan version 1.3+\n"
" - Sarek works with almost any video card that supports Vulkan\n"
" - WineD3D OpenGL works on any PC, but with low performance and old games"
msgstr ""
"Выберите версии DXVK и VKD3D для трансляции DirectX в Vulkan:\n"
" - Новейшие работают только с драйверами MESA 25+, или NVIDIA 550.54.14+\n"
" - Стабильные работают с любыми драйверами при условии что видеокарта "
"поддерживает Vulkan версии 1.3+\n"
" - Sarek работает почти с любой видеокартой поддерживающей Vulkan\n"
" - WineD3D OpenGL работает на любом ПК, но с низкой производительностью и "
"старыми играми"
msgid "Selecting a WINE version."
msgstr "Выбор версии WINE."
msgid ""
"Select a prefix to launch the game/application (if you enter a non-existent "
"name, a new prefix will be created)."
msgstr ""
"Выбор префикса для запуска игры/приложения (при вводе не существующего "
"названия будет создан новый префикс)."
msgid "USE_SYSTEM_WINE"
msgstr "Использовать системную версию wine"
msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (для видеокарт без поддержки Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)"
msgstr "Устаревший DXVK (Vulkan v1.1)"
msgid "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgstr "DXVK, VKD3D (Sarek) (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)"
msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)"
msgid "DXVK, VKD3D (Stable) (Vulkan v1.3+)"
msgstr "DXVK, VKD3D (Стабильные) (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgid "DXVK, VKD3D (Newest) (Vulkan v1.3+)"
msgstr "DXVK, VKD3D (Новейшие) (Vulkan v1.3+)"
msgid "GET-OTHER-WINE"
msgstr "Скачать другие версии wine"
@ -431,6 +457,9 @@ msgstr "ПРИНУДИТЕЛЬНЫЙ ВЫХОД"
msgid "Check new version WINE..."
msgstr "Проверяем новые версии WINE..."
msgid "Error: failed to fetch metadata."
msgstr "Ошибка: не удалось получить метаданные."
msgid "Error: check wine."
msgstr "Ошибка во время проверки версии WINE."
@ -676,6 +705,11 @@ msgstr ""
"Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или "
"proton. (Не работает с PROTON_LG и WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
"Использовать асинхронную версию dxvk-sarek. (Может работать лучше, либо "
"наоборот)"
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK"
@ -1337,11 +1371,11 @@ msgstr "Отключить MangoHud и перейти в предыдущее м
msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)"
"newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr ""
"Принудительно транслировать dgVoodoo2 в DirectXD 12 (работает только с "
"новейшими и стабильными версиями dxvk и vkd3d. Может вызвать проблемы с "
"запуском игр) (Direct3D + Glide)"
"новейшими и sarek версиями dxvk и vkd3d. Может вызвать проблемы с запуском "
"игр) (Direct3D + Glide)"
msgid ""
"Force the vertical sync to avoid tearing or prevent the GPU from rendering "
@ -2168,6 +2202,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "Устаревший DXVK (Vulkan v1.1)"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr ""
#~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). "

View File

@ -122,6 +122,7 @@ rm_from_array () {
if [[ \$rm_names =~ \$element ]] ; then
unset $array_name[\$count]
$array_name=(\${$array_name[@]})
((count--))
fi
((count++))
done"
@ -870,9 +871,7 @@ check_vendor_gpu () {
fi
if command -v glxinfo &>/dev/null ; then
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
glxinfo -B &> "${PW_TMPFS_PATH}/glxinfo.tmp"
fi
pw_check_glxinfo
case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
@ -1657,12 +1656,7 @@ init_wine_ver () {
done
IFS="$orig_IFS"
fi
if [[ -z $(lsbash "${PORT_WINE_PATH}/data/dist/" --grep "${PW_WINE_USE}") ]] ; then
if [[ "$PW_WINE_USE" =~ PROTON_LG* ]]
then export PW_WINE_USE=PROTON_LG
else export PW_WINE_USE=WINE_LG
fi
fi
if [[ "$PW_WINE_USE" == PROTON_LG ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ "$PW_WINE_USE" == WINE_LG ]]
@ -2160,8 +2154,8 @@ pw_check_and_download_wine () {
}
pw_check_and_download_dxvk_and_vkd3d () {
# Download stable and git version DXVK
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do
# Download DXVK versions
for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_OLD_VER}" "${DXVK_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
@ -2190,8 +2184,8 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi
done
# Download stable and git version VKD3D
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do
# Download VKD3D versions
for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_OLD_VER}" "${VKD3D_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
@ -2450,13 +2444,16 @@ pw_init_db () {
if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
init_wine_ver &&
export PW_WINE_VER="$PW_WINE_USE"
init_wine_ver
print_info "Use $PORTWINE_DB_FILE db file."
else
if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then
if [[ -n "${PORTWINE_DB}" ]] ; then
PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
export PORTWINE_DB_FILE
use_exiftool "$portwine_exe"
grep -q "Sony" "${PW_TMPFS_PATH}/exiftool.tmp" && PW_WINE_USE="WINE_LG"
if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
{
echo "#!/usr/bin/env bash"
@ -2474,7 +2471,7 @@ pw_init_db () {
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
edit_db_from_gui PW_WINE_USE PW_PREFIX_NAME
fi
fi
@ -2727,7 +2724,6 @@ pw_port_update () {
else
curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver"
"${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \
--button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \
@ -2768,6 +2764,7 @@ pw_port_update () {
try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
unset SKIP_CHECK_UPDATES
curl -X GET "http://cloud.linux-gaming.ru:8081/api/download/${scripts_current_ver}" &>/dev/null
echo "Restarting PP after update..."
restart_pp
fi
@ -2804,16 +2801,29 @@ pw_check_command () {
}
export -f pw_check_command
pw_get_tmp_files () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
do pw_check_command "$f_cmd"
done
pw_check_vulkan () {
if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
TIMEOUT_CMD="5"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
fi
}
pw_check_glxinfo () {
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
TIMEOUT_CMD="5"
pw_check_command glxinfo -B
fi
}
pw_get_tmp_files () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
do pw_check_command "$f_cmd"
done
pw_check_vulkan
# GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH
@ -2866,12 +2876,13 @@ pw_skip_get_info () {
if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then
GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf"
unset LOCALE_LIST
unset LOCALE_LIST LOCALE_UTF
[[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ utf8 ]] && LOCALE_UTF="8"
for LOCALE in $GET_LOCALE_LIST ; do
if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then
if [[ -n "$LOCALE_LIST" ]]
then LOCALE_LIST+="!$LOCALE"
else LOCALE_LIST="$LOCALE"
then LOCALE_LIST+="!$LOCALE$LOCALE_UTF"
else LOCALE_LIST="$LOCALE$LOCALE_UTF"
fi
fi
done
@ -2918,7 +2929,7 @@ pw_skip_get_info () {
export AMD_VULKAN_DRIVER_LIST
export AMD_VULKAN_CB=":CB"
else
export AMD_VULKAN_CB=":DCB"
export AMD_VULKAN_CB=":LBLH"
fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
@ -3016,6 +3027,22 @@ edit_user_conf_from_gui () {
return 0
}
use_exiftool () {
if [[ ! -f "${PW_TMPFS_PATH}/exiftool.tmp" ]] \
|| ! grep -q "$1" "${PW_TMPFS_PATH}/exiftool.tmp"
then
echo "$1" > "${PW_TMPFS_PATH}/exiftool.tmp"
if ! command -v exiftool &>/dev/null \
|| ! timeout 3 exiftool "$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
then
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" \
"${PW_PLUGINS_PATH}/portable/bin/exiftool" \
"$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
fi
fi
}
pw_create_gui_png () {
if [[ -z $name_desktop_png ]] ; then
basename_portwine_exe="$(basename "${portwine_exe}")"
@ -3040,19 +3067,9 @@ pw_create_gui_png () {
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
use_exiftool "$portwine_exe"
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
fi
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
then
@ -3491,17 +3508,17 @@ start_portwine () {
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 \
nvapi64.dll OptiScaler.ini dxvk.conf"
ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll"
nvapi64.dll OptiScaler.ini dxvk.conf D3D12 D3D12_Optiscaler optiscaler_version"
ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll D3D12"
if [[ "${PW_USE_OPTISCALER}" != "1" ]] \
&& [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]]
then
for dll in $OPTISCALER_FILES ; do
try_remove_file "$PATH_TO_GAME/$dll"
rm -fr "$PATH_TO_GAME/$dll"
done
for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/${dll}.b" ]] ; then
if [[ -e "$PATH_TO_GAME/${dll}.b" ]] ; then
mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null
fi
done
@ -3518,7 +3535,7 @@ start_portwine () {
fi
fi
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_NVAPI_AND_DLSS="1"
set_to_dxvk_conf nvidia_new
@ -3531,21 +3548,22 @@ start_portwine () {
fatal "Force exit..."
fi
for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -f "$PATH_TO_GAME/${dll}.b" ]]
if [[ -e "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -e "$PATH_TO_GAME/${dll}.b" ]]
then
mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null
fi
done
fi
if [[ ! -f "$PATH_TO_GAME/optiscaler_version" ]] \
|| ! grep -q "$PW_OPTISCALER_VER" "$PATH_TO_GAME/optiscaler_version"
then
for dll in $OPTISCALER_FILES ; do
if [[ ! -f "$PATH_TO_GAME/$dll" ]] \
|| [[ -L "$PATH_TO_GAME/$dll" ]]
then try_copy_file "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll"
fi
cp -fr "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" || print_error "$OPTISCALER_PATH/$dll not found for copy!"
done
fi
fi
if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then
var_vkd3d_config_update dxr
@ -3756,49 +3774,52 @@ fi
# WINED3D OPENGL
print_info "Use WINED3D OpenGL"
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
;;
1)
# STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_STABLE_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 libvkd3d-shader-1"
CP_WINE_FILES="d3d12core d3d8"
# DXVK-Sarek AND VKD3D
print_info "DXVK v.${DXVK_SAREK_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_SAREK_VER} in use"
if [[ $PW_USE_SAREK_ASYNC == "1" ]] ; then
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek-async"
export ASYNC_DRAW_CALL_THRESHOLD="1"
export DXVK_ALL_CORES="1"
else
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek"
fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12"
CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;;
2)
# NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_GIT_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
# STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_OLD_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;;
3)
# LEGACY DXVK
print_info "DXVK v.${DXVK_LEGACY_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d8"
6)
# NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_NEW_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;;
esac
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
if [[ $PW_USE_GALLIUM_NINE == "1" ]] \
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
fi
@ -3842,7 +3863,6 @@ fi
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \
&& [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
&& [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then
export DXVK_ASYNC="1"
if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_WINE_FILES=""
@ -3860,14 +3880,13 @@ fi
else add_to_var CP_WINE_FILES "d3d8"
fi
fi
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" && -f "${WINEDIR}/lib/vkd3d/x86_64-windows/libvkd3d-1.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" ]] ; then
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" ]] ; then
CP_VKD3D_FILES="d3d12"
add_to_var CP_WINE_FILES "d3d12core"
else
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
add_to_var CP_WINE_FILES "d3d12 d3d12core"
fi
[[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2"
@ -3918,17 +3937,9 @@ fi
0)
rm_from_var CP_WINE_FILES "d3d9 d3d8"
;;
1)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
2)
1|2|6)
rm_from_var CP_DXVK_FILES "d3d9 d3d8"
;;
3)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
esac
fi
fi
@ -3945,7 +3956,7 @@ fi
done
# DGVOODOO2 settings:
if [[ "${PW_DGV2_USE_DX12}" == "1" ]] ; then
if [[ "${PW_VULKAN_USE}" == "1" ]] || [[ "${PW_VULKAN_USE}" == "2" ]]
if [[ "${PW_VULKAN_USE}" =~ ^(1|2|6)$ ]]
then sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
fi
fi
@ -4153,9 +4164,9 @@ fi
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
else
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else
@ -4172,30 +4183,29 @@ fi
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/vkd3d/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;;
1)
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;;
0)
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;;
esac
[[ ! $wine_vkd3d_dll =~ libvkd3d ]] && var_winedlloverride_update "${wine_vkd3d_dll}=n"
var_winedlloverride_update "${wine_vkd3d_dll}=n"
done
create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache"
fi
# некоторым играм для любых 3D api для правильной работы wined3d необходимо чтобы эти библиотеки всегда были
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" # используется git версия
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-shader-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-shader-1.dll"
# GALLIUM NINE
if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then
PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
@ -4577,9 +4587,6 @@ pw_run () {
export WINE_LARGE_ADDRESS_AWARE="1"
fi
check_variables SteamAppId "0"
check_variables SteamGameId "0"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
@ -4758,6 +4765,7 @@ portwine_launch () {
[[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME"
if [[ -n "${LAUNCH_URI}" ]] ; then
export WINEFSYNC="1"
pw_run start /high /b "${LAUNCH_URI}" &
unset GAMEPID
while true ; do
@ -5114,54 +5122,74 @@ gui_proton_downloader () {
pw_start_progress_bar_block "${translations[Check new version WINE...]}"
METADATA_URL="https://git.linux-gaming.ru/Boria138/PortProton-Wine-Metadata/raw/branch/main/wine_metadata.json"
METADATA=$(curl -s "$METADATA_URL")
if [[ -z "$METADATA" ]] ; then
yad_error "${translations[Error: failed to fetch metadata.]}"
restart_pp
fi
# PROTON_GE
read -r -d '' -a PROTON_GE_GIT < <(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
PROTON_GE_GIT=($(echo "$METADATA" | jq -r '.proton_ge[]?.name' 2>/dev/null))
if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_GE_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
done
sed -i -e '/Proton-6.5-GE-2/,$d' -e '/github-action/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git"
fi
# WINE_KRON4EK
read -r -d '' -a WINE_KRON4EK < <(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
WINE_KRON4EK=($(echo "$METADATA" | jq -r '.wine_kron4ek[]?.name' 2>/dev/null))
if [[ -n "${WINE_KRON4EK[0]}" ]] ; then
for PGEGIT in "${WINE_KRON4EK[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
done
sed -i -e '/6.3/,$d' -e '/-x86/d' -e '/-wow64/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
fi
# PROTON_LG
read -r -d '' -a PROTON_PW_GIT < <(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r)
PROTON_PW_GIT=($(echo "$METADATA" | jq -r '.proton_lg[]?.name' 2>/dev/null))
if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then
for PPWGIT in "${PROTON_PW_GIT[@]}" ; do
echo "${PPWGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
echo "${PPWGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
done
sed -i -e "/${PW_WINE_LG_VER}/d" -e '/plugins/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git"
fi
# PROTON_CACHYOS
read -r -d '' -a PROTON_CACHYOS_GIT < <(curl -s "https://api.github.com/repos/CachyOS/proton-cachyos/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | grep -v "v3" | grep -v "znver4")
PROTON_CACHYOS_GIT=($(echo "$METADATA" | jq -r '.proton_cachyos[]?.name' 2>/dev/null))
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
# The Pentium/Celeron don't have the full instruction set, but /lib/ld-linux-x86-64.so.2 --help | grep -B 3 -E “x86-64” says otherwise, so this is where checking all flags comes in (code from https://dl.xanmod.org/check_x86-64_psabi.sh)
CPU_LEVEL=$(awk '
BEGIN {
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
if (level > 0) { print level; exit level + 1 }
exit 1
}' /proc/cpuinfo)
for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
if [[ "$PGEGIT" =~ v3 ]] && [[ "$CPU_LEVEL" -lt 3 ]]; then
continue
else
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
fi
done
fi
# PROTON_SAREK
read -r -d '' -a PROTON_SAREK_GIT < <(curl -s "https://api.github.com/repos/pythonlover02/Proton-Sarek/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
PROTON_SAREK_GIT=($(echo "$METADATA" | jq -r '.proton_sarek[]?.name' 2>/dev/null))
if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
done
fi
# Proton-EM
read -r -d '' -a PROTON_EM_GIT < <(curl -s "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
# PROTON_EM
PROTON_EM_GIT=($(echo "$METADATA" | jq -r '.proton_em[]?.name' 2>/dev/null))
if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_EM_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
done
fi
@ -5287,17 +5315,31 @@ gui_proton_downloader () {
fi
pw_download_get_wine () {
print_info "Download and install ${VERSION_WINE_GIT}..."
FILENAME="$(basename "${URL_VERSION_PROTON_GIT}")"
if [[ "${URL_VERSION_PROTON_GIT}" =~ _LG ]]
then USE_MIRROR=""
else USE_MIRROR="no_mirror"
local VERSION="$1"
print_info "Download and install ${VERSION}..."
URL_VERSION_PROTON_GIT=$(echo "$METADATA" | jq -r --arg version "$VERSION" '[
(.proton_ge[] | select(.name == $version) | .url),
(.wine_kron4ek[] | select(.name == $version) | .url),
(.proton_lg[] | select(.name == $version) | .url),
(.proton_cachyos[] | select(.name == $version) | .url),
(.proton_sarek[] | select(.name == $version) | .url),
(.proton_em[] | select(.name == $version) | .url)
] | .[]' | head -n 1)
if [[ -z "$URL_VERSION_PROTON_GIT" ]]; then
yad_error "${translations[Error: no URL found for version ${VERSION}.]}"
return 1
fi
FILENAME=$(echo "$URL_VERSION_PROTON_GIT" | awk -F/ '{print $NF}')
if [[ "$URL_VERSION_PROTON_GIT" =~ _LG ]]; then
USE_MIRROR=""
else
USE_MIRROR="no_mirror"
fi
if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then
if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}"
if [[ -n "${portwine_exe}" ]] ; then
PW_WINE_USE=${VERSION_WINE_GIT^^}
PW_WINE_USE=${VERSION^^}
edit_db_from_gui PW_WINE_USE
fi
else
@ -5331,23 +5373,12 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
pw_download_get_wine "$GIVE_ALL_WINE"
done
edit_db_from_gui
restart_pp
else
print_error "$PW_WINE_USE"
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
pw_download_get_wine "$VERSION_WINE_GIT"
fi
}
export -f gui_proton_downloader
@ -5355,19 +5386,26 @@ export -f gui_proton_downloader
# GUI EDIT_DB
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_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2
PW_USE_ESYNC PW_USE_FSYNC PW_USE_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
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_GAMESCOPE
)
if check_wayland_session
then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT
else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
fi
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] || [[ $PW_VULKAN_USE == "0" ]] ; then
rm_from_array "PW_EDIT_DB_LIST" PW_USE_SUPPLIED_DXVK_VKD3D
fi
check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME
# GALLIUM NINE
[[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE
[[ $PW_VULKAN_USE == "1" ]] && add_to_array "PW_EDIT_DB_LIST" PW_USE_SAREK_ASYNC
PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]}
PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]}
@ -5415,6 +5453,7 @@ gui_edit_db () {
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]}
PW_USE_SAREK_ASYNC_INFO=${translations[Use async version of dxvk-sarek. (May work better or vice versa)]}
# PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]}
# PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]}
@ -5427,27 +5466,20 @@ gui_edit_db () {
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN"
;;
1|2)
# Stable, Newest
1|2|6)
# Sarek, Newest
VKD3D_CB="CB"
;;
3)
# Legacy
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING"
;;
esac
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
|| [[ $PW_VULKAN_USE == "0" ]] ; then
DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
fi
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_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"
if ! check_flatpak \
&& [[ $(ldd --version | head -n 1 | awk '{print $4}') < 2.38 ]]
then
DISABLE_EDIT_DB_LIST+=" PW_USE_LS_FRAME_GEN"
export PW_USE_LS_FRAME_GEN="0"
PW_USE_LS_FRAME_GEN_INFO=${translations[GLIBC version 2.38+ is required for use Lossless Scaling frame generation]}
fi
unset ADD_CHK_BOX_EDIT_DB
@ -5518,6 +5550,14 @@ gui_edit_db () {
AMD_VULKAN_VAR="disabled"
fi
[[ $AMD_VULKAN_CB == ":LBLH" ]] && translations[Select needed AMD vulkan implementation]=""
if [[ $NUMA_NODE_LIST == "0" ]] ; then
NUDA_CPU_CB=":LBLH"
translations[NUMA node for CPU affinity]=""
else
NUDA_CPU_CB=":CB"
fi
"${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \
--field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \
--field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \
@ -5542,7 +5582,7 @@ mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
@ -6021,7 +6061,7 @@ gui_dgvoodoo2 () {
PW_DGV2_INACTIVE_APP_STATE
)
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]}
PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]}
PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]}
@ -6046,7 +6086,7 @@ gui_dgvoodoo2 () {
[[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING
case "${PW_VULKAN_USE}" in
0|3)
0)
DISABLE_DGV2_LIST="PW_DGV2_USE_DX12
"
;;
@ -6490,7 +6530,6 @@ gui_userconf () {
if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then
if [[ ${PW_ADD_SETTINGS_UC[1]} == "DEVEL" ]] ; then
if yad_question "${translations[Do you actually want to change the scripts version to:]} <b>DEVEL?</b>" ; then
export MIRROR="GITHUB"
pw_notify_send -i info \
"${translations[Branch changed to:]}" "<b>DEVEL</b>"
BRANCH="devel"
@ -6729,20 +6768,6 @@ get_lnk_path () {
link_path=$(echo "$1" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/${prefix_name:-${PW_PREFIX_NAME:-DEFAULT}}/dosdevices/${link_drive}|g" | sed 's/\\/\//g')
}
get_lnk () {
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
parse_lnk "$1"
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp"
parse_lnk "$1"
fi
}
pw_auto_create_shortcut () {
if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \
|| [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \
@ -6788,7 +6813,8 @@ pw_auto_create_shortcut () {
read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do
get_lnk "${link_file}"
use_exiftool "${link_file}"
parse_lnk "${link_file}"
if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then
print_warning "Link broken for: $link_name"
else
@ -7080,9 +7106,9 @@ portwine_start_debug () {
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
case "$PW_VULKAN_USE" in
0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_NEW_VER}, VKD3D-PROTON v.${VKD3D_NEW_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
6) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_OLD_VER}, VKD3D-PROTON v.${VKD3D_OLD_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
*) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
esac
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"

View File

@ -277,14 +277,15 @@ if [[ -z $SORT_WITH_TIME ]] ; then
fi
# TODO:fixes_after_update (со временем можно будет дропнуть)
if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
DESKTOP_WITH_TIME="posnumber1"
edit_user_conf_from_gui DESKTOP_WITH_TIME
fi
if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
SORT_WITH_TIME="lastlaunch"
edit_user_conf_from_gui SORT_WITH_TIME
fi
# Оставил для примера
# if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
# DESKTOP_WITH_TIME="posnumber1"
# edit_user_conf_from_gui DESKTOP_WITH_TIME
# fi
# if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
# SORT_WITH_TIME="lastlaunch"
# edit_user_conf_from_gui SORT_WITH_TIME
# fi
# choose wine dpi default
if [[ -z $PW_WINE_DPI_VALUE ]] ; then
@ -307,6 +308,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
export PW_FILESYSTEM
background_pid --start "pw_get_tmp_files" "1"
background_pid --start "pw_check_glxinfo" "2"
fi
# create lock file
@ -495,6 +497,14 @@ esac
### GUI ###
INFO_3DAPI=${translations[Select DXVK and VKD3D versions for DirectX to Vulkan translation:
- The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+
- Stable ones work with any drivers, provided that the video card supports Vulkan version 1.3+
- Sarek works with almost any video card that supports Vulkan
- WineD3D OpenGL works on any PC, but with low performance and old games]}
INFO_WINE=${translations[Selecting a WINE version.]}
INFO_PREFIX=${translations[Select a prefix to launch the game/application (if you enter a non-existent name, a new prefix will be created).]}
unset PW_ADD_PREFIXES_TO_GUI
if [[ -d "${PORT_WINE_PATH}/data/prefixes/" ]] ; then
for PAIG in "${PORT_WINE_PATH}"/data/prefixes/* ; do
@ -520,16 +530,9 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}"
fi
SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}"
SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}"
SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}"
SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;;
3|5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;;
esac
SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
if [[ $PW_WINE_USE == PROTON_LG ]] ; then
PW_WINE_USE="${PW_PROTON_LG_VER}"
@ -556,6 +559,24 @@ if [[ -f "$portwine_exe" ]] ; then
unset RESTART_PP_USED
gui_userconf
fi
if [[ -z $PW_VULKAN_USE ]] \
|| [[ $PW_VULKAN_USE == [3-5] ]]
then
if [[ -e "/sys/module/nvidia/version" ]] ;then
if [[ $(</sys/module/nvidia/version) > 550.54.13 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
else
background_pid --stop "pw_check_glxinfo" "2"
if [[ $(grep "Version:" "$PW_TMPFS_PATH/glxinfo.tmp" | awk '{print $2}') > 24.9.9 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
fi
fi
if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then
pw_create_gui_png
if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
@ -575,19 +596,30 @@ if [[ -f "$portwine_exe" ]] ; then
fi
fi
export KEY_START="$RANDOM"
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
2) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
KEY_START="$RANDOM"
"$pw_yad" --plug=$KEY_START --tabnum="1" --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
--field="3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "$PW_TMPFS_PATH/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_NOTEBOOK_COLUMNS" --align-buttons --homogeneous-column \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_NOTEBOOK" \
if [[ $PW_GUI_START == "NOTEBOOK" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_NOTEBOOK_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_NOTEBOOK"
elif [[ $PW_GUI_START == "PANED" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_PANED_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_PANED --homogeneous-row"
fi
"$pw_yad" --plug=$KEY_START --tabnum="2" --form --align-buttons --homogeneous-column $PW_GUI_START_TABNUM2 \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
@ -596,6 +628,7 @@ if [[ -f "$portwine_exe" ]] ; then
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
if [[ "$PW_YAD_FORM_TAB" == "1" ]] \
&& [[ -n "$TAB_START" ]]
then
@ -604,11 +637,14 @@ if [[ -f "$portwine_exe" ]] ; then
else
export TAB_START="1"
fi
PW_GUI_START_TABNUM3="--notebook --active-tab=$TAB_START --gui-type=settings-notebook --expand"
elif [[ $PW_GUI_START == "PANED" ]] ; then
PW_GUI_START_TABNUM3="--paned --gui-type=settings-paned"
fi
"${pw_yad}" --key=$KEY_START --notebook --active-tab="$TAB_START" \
--gui-type="settings-notebook" \
"$pw_yad" --key=$KEY_START $PW_GUI_START_TABNUM3 \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" --expand \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
@ -617,40 +653,8 @@ if [[ -f "$portwine_exe" ]] ; then
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
export PW_YAD_FORM_TAB="1"
[[ $PW_GUI_START == "NOTEBOOK" ]] && export PW_YAD_FORM_TAB="1"
elif [[ $PW_GUI_START == "PANED" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_PANED_COLUMNS" \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_PANED" \
--align-buttons --homogeneous-row --homogeneous-column \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
"${pw_yad}" --key=$KEY_START --paned \
--gui-type="settings-paned" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
fi
case "$PW_YAD_SET" in
128)
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@ -822,6 +826,8 @@ else
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM"
IFS="%"
@ -845,9 +851,9 @@ else
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \
--gui-type-layout="$MAIN_MENU_GUI_TYPE_LAYOUT" \
--field=" 3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field=" 3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \
--field=" Winetricks!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winetricks to install additional libraries to the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \
--field=" ${translations[Clear prefix]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Clear the prefix to fix problems]}":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \
@ -967,9 +973,9 @@ fi
case "${VULKAN_MOD}" in
"$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="1" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;;
"$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;;
"$SORT_SAREK" ) export PW_VULKAN_USE="1" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="2" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="6" ;;
esac
init_wine_ver

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2435
#SCRIPTS_NEXT_VERSION=2438
#SCRIPTS_STABLE_VERSION=2435
########################################################################
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"
@ -14,8 +14,8 @@ export PW_USE_RUNTIME="1"
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_USE_ESYNC="1"
export PW_USE_FSYNC="1"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="0"
export PW_USE_NTSYNC="0"
export PW_USE_GAMEMODE="0"
export PW_USE_TERMINAL="0"
@ -43,26 +43,27 @@ export PW_USE_GALLIUM_NINE="0"
export PW_USE_GALLIUM_ZINK="0"
export PW_USE_WINED3D_VULKAN="0"
export PW_USE_SUPPLIED_DXVK_VKD3D="1"
export PW_USE_SAREK_ASYNC="0"
export WINEUSERNAME="steamuser"
###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v20"
export PW_OPTISCALER_VER="v1"
export PW_OPTISCALER_VER="v02-0.7.7-pre12"
export PW_GALLIUM_NINE_VER="0.10"
export PW_LSFG_VK_VER="3.1-p11-cebe5e2"
###WINE_AND_PROTON_LG###
export PW_PROTON_LG_VER="PROTON_LG_10-8"
export PW_PROTON_LG_VER="PROTON_LG_10-10"
export PW_WINE_LG_VER="WINE_LG_10-12"
export PW_WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_MODE="ultra"
###DXVK_AND_VKD3D###
export PW_VULKAN_USE="2"
export VKD3D_LIMIT_TESS_FACTORS="64"
export DXVK_LEGACY_VER="1.6.1"
export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.6.1-368"
export VKD3D_STABLE_VER="1.1-2602"
export VKD3D_GIT_VER="1.1-4655"
export DXVK_NEW_VER="2.7-5"
export DXVK_OLD_VER="2.6.2"
export DXVK_SAREK_VER="sarek-1.11.0"
export VKD3D_NEW_VER="1.1-4666"
export VKD3D_OLD_VER="2.14.1"
export VKD3D_SAREK_VER="sarek-2.6.0"
###VKBASALT###
export PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.50"