Compare commits

..

47 Commits

Author SHA1 Message Date
Mikhail Tergoev
fd9df57242 Scripts version 2439 2025-07-31 11:27:38 +03:00
Mikhail Tergoev
c55b2845ee fixed typos RU locale 2025-07-31 11:14:35 +03:00
Mikhail Tergoev
62fd39f7c6 the conditions are optimized 2025-07-31 11:12:31 +03:00
Mikhail Tergoev
83ec48812b Merge branch 'Htylol-fixes_for_systemd-inhibit' into devel 2025-07-31 09:58:31 +03:00
Mikhail Tergoev
5ad6b9e72c Merge branch 'fixes_for_systemd-inhibit' of github.com:Htylol/PortWINE into Htylol-fixes_for_systemd-inhibit 2025-07-31 09:58:24 +03:00
Mikhail Tergoev
066e37aad4 Merge branch 'Htylol-check_dxvk_2.7' into devel 2025-07-31 09:57:30 +03:00
Mikhail Tergoev
84674a3ae4 Merge branch 'check_dxvk_2.7' of github.com:Htylol/PortWINE into Htylol-check_dxvk_2.7 2025-07-31 09:57:15 +03:00
Mikhail Tergoev
ffaccd507f Merge branch 'Htylol-fixes_resize_png' into devel 2025-07-31 09:56:09 +03:00
Mikhail Tergoev
4869746a30 Merge branch 'fixes_resize_png' of github.com:Htylol/PortWINE into Htylol-fixes_resize_png 2025-07-31 09:55:56 +03:00
a7d5784874 update locales 2025-07-29 12:02:34 +05:00
0b3d16c13f Added PW_VULKAN_UNLOCKED 2025-07-28 19:56:14 +05:00
90ea238f34 Make spellcheck happy 2025-07-28 11:27:33 +05:00
a1695c032d Repair choise amdvlk and amdgpupro drivers for check_dxvk 2025-07-28 04:59:43 +05:00
fa55bb8f35 Optimization code for pw_check_dxvk 2025-07-28 04:36:01 +05:00
cb1fea9fdd Added checked for amdvlk and amdgpupro drivers 2025-07-27 22:58:02 +05:00
691468d5a1 Added get_gpu_names function 2025-07-27 22:01:12 +05:00
c7cb4503bb OpenGL force works on nvidia if use nvidia 2025-07-27 20:49:27 +05:00
85e1ddd2d1 Fixes for systemd-inhibit
systemd-inhibit крашит PortProton, если нет доступа к /var/run/dbus/system_bus_socket, проверить можно если сделать к примеру sudo rm -f /var/run/dbus/system_bus_socket, и потом через PortProton запустить какое-нибудь приложение/игру.
2025-07-27 20:19:10 +05:00
f863ab2664 Added amdgpupro driver for pw_check_dxvk 2025-07-27 20:12:11 +05:00
d043905e16 Optimization for devices without vulkan driver 2025-07-27 16:47:29 +05:00
b57b6d8a76 updated check_vendor_gpu functions 2025-07-27 16:10:28 +05:00
9cee5b32e9 Updated the mechanics of detecting GPU drivers in the system 2025-07-27 13:29:56 +05:00
b50f450b04 resize_png: fixes bug for RESIZE_NAME_PNG
Исправлен баг для RESIZE_NAME_PNG, смысл бага заключается в том, если удалить PortProton из Flatpak и поверх него установить в ту же директорию нативный PortProton, то функция resize_png будет работать некорректно, каждый раз используя exe-thumbnailer
2025-07-26 17:09:11 +05:00
Mikhail Tergoev
69ec71e564 Scripts version 2438 2025-07-26 11:57:07 +03:00
Mikhail Tergoev
e1a47bdb0e updated OPTISCALER to v02-0.7.7-pre12 2025-07-26 11:40:52 +03:00
Mikhail Tergoev
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
Mikhail Tergoev
c33d9ba3f5 Scripts version 2437 2025-07-25 15:56:55 +03:00
Mikhail Tergoev
ca9c63711d fixed launch epic games from desktop files 2025-07-25 15:43:21 +03:00
Mikhail Tergoev
9064faf36f dropped Steam* var. 2025-07-25 15:41:56 +03:00
Mikhail Tergoev
88c5d78713 fixed set WINE if not found and use WINE_LG for Sony games 2025-07-25 14:31:02 +03:00
Mikhail Tergoev
7c573daca5 disabled *SYNC by default 2025-07-25 13:30:45 +03:00
Mikhail Tergoev
e9a13ae5d8 dropped check libc for flatpak 2025-07-25 13:27:35 +03:00
Mikhail Tergoev
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
Mikhail Tergoev
ccd9b166d1 do not force change mirror to github for devel 2025-07-25 12:20:44 +03:00
Mikhail Tergoev
4e18752e5c Merge branch 'Htylol-fixes_for_3d_api_1' into devel 2025-07-25 12:07:30 +03:00
Mikhail Tergoev
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
Mikhail Tergoev
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
Mikhail Tergoev
e9dc5604d4 Scripts version 2436 2025-07-24 20:19:37 +03:00
Mikhail Tergoev
a2acf29a37 always auto set PW_VULKAN_USE if empty 2025-07-24 20:09:58 +03:00
Mikhail Tergoev
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
Mikhail Tergoev
252ed89e4e Ooops. Hotfix for run pw_check_glxinfo again. 2025-07-24 17:15:33 +03:00
Mikhail Tergoev
d44749fbeb added update meter 2025-07-24 17:13:45 +03:00
Mikhail Tergoev
1b007ee3cb hotfix for run pw_check_glxinfo 2025-07-24 17:07:06 +03:00
8 changed files with 618 additions and 373 deletions

View File

@@ -2,6 +2,35 @@ You can help us in the development of the project on the website: https://linux-
---------------------------------------- ----------------------------------------
Changelog: Changelog:
###Scripts version 2439### / Date: 31.07.2025 / Download update size: 4 megabytes
* improved functions for checking and selecting video cards (thanks to Htylol)
* added blocking of 3D API versions not supported by the video card or driver (thanks to Htylol)
* added the ability to forcefully unblock all 3D API in global settings (thanks to Htylol)
* fixed amdvlk and amdgpupro driver selection (thanks to Htylol)
* fixed launching OpenGL games on NVIDIA video cards (thanks to Htylol)
* other small improvements and script fixes
###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 ###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes
* cumulative update of stable version of PortProton scripts * cumulative update of stable version of PortProton scripts
* removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE) * removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE)

View File

@@ -2,6 +2,35 @@
----------------------------------------- -----------------------------------------
История изменений: История изменений:
###Scripts version 2439### / Дата: 31.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* улучшены функции проверки и выбора видеокарт (спасибо Htylol)
* добавлена блокировка не поддерживаемых видеокартой, или драйвером, версий 3D Api (спасибо Htylol)
* добавлена возможность принудительной разблокировки всех 3D Api в глобальных настройках (спасибо Htylol)
* исправлен выбор драйвера amdvlk и amdgpupro (спасибо Htylol)
* исправлен запуск OpenGL игр на NVIDIA видеокартах (спасибо Htylol)
* другие небольшие улучшения и исправления скриптов
###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 мегабайт ###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton * кумулятивное обновление стабильной версии скриптов PortProton
* удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE) * удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE)

View File

@@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n" "POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -581,6 +581,10 @@ msgid "A very dangerous way to hack the memory write timer in ntdll. This "
"recommended not to change the value.)" "recommended not to change the value.)"
msgstr "" msgstr ""
msgid "GLIBC version 2.38+ is required for use Lossless Scaling frame "
"generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation" msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr "" msgstr ""
@@ -1427,6 +1431,9 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu" msgid "Disable GameScope and go to the previous menu"
msgstr "" msgstr ""
msgid "The graphics card does not support Vulkan"
msgstr ""
msgid "Recommended value" msgid "Recommended value"
msgstr "" msgstr ""
@@ -1457,6 +1464,12 @@ msgstr ""
msgid "By time" msgid "By time"
msgstr "" msgstr ""
msgid "unlock"
msgstr ""
msgid "unlocked"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)" msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "" msgstr ""
@@ -1537,6 +1550,13 @@ msgstr ""
msgid "This setting sorts the shortcuts in the main menu" msgid "This setting sorts the shortcuts in the main menu"
msgstr "" msgstr ""
msgid "Unlock all 3D APIs"
msgstr ""
msgid "Allows you to unlock all available 3D APIs, even if your current "
"graphics card does not meet the minimum requirements"
msgstr ""
msgid "Open the <b>user.conf</b> settings file in a system text editor to " msgid "Open the <b>user.conf</b> settings file in a system text editor to "
"view and change variables manually" "view and change variables manually"
msgstr "" msgstr ""
@@ -1623,12 +1643,6 @@ msgstr ""
msgid "FONTS" msgid "FONTS"
msgstr "" msgstr ""
msgid "Attention working version of vulkan not detected!"
msgstr ""
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
msgid "PortProton was launched in creation mode PortProton.log and it is " msgid "PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port" "successfully stored in the root directory of the port"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n" "POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: 2025-07-24 15:26+0500\n" "PO-Revision-Date: 2025-07-24 15:26+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@@ -707,6 +707,10 @@ msgstr ""
"Esto mejora el rendimiento de algunos juegos muy específicos. (Se recomienda " "Esto mejora el rendimiento de algunos juegos muy específicos. (Se recomienda "
"no cambiar el valor)" "no cambiar el valor)"
msgid ""
"GLIBC version 2.38+ is required for use Lossless Scaling frame generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation" msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr "Cambiar la versión de emulación de <b>WINDOWS</b>" msgstr "Cambiar la versión de emulación de <b>WINDOWS</b>"
@@ -1861,6 +1865,10 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu" msgid "Disable GameScope and go to the previous menu"
msgstr "Desactivar GameScope e ir al menú anterior" msgstr "Desactivar GameScope e ir al menú anterior"
#, fuzzy
msgid "The graphics card does not support Vulkan"
msgstr "Elige una tarjeta gráfica para ejecutar el juego"
msgid "Recommended value" msgid "Recommended value"
msgstr "Valor recomendado" msgstr "Valor recomendado"
@@ -1891,6 +1899,12 @@ msgstr "Desde el último inicio"
msgid "By time" msgid "By time"
msgstr "Mostrar tiempo" msgstr "Mostrar tiempo"
msgid "unlock"
msgstr ""
msgid "unlocked"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)" msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "CONFIGURACIONES GLOBALES (USER.CONF)" msgstr "CONFIGURACIONES GLOBALES (USER.CONF)"
@@ -1989,6 +2003,14 @@ msgstr ""
"Esta configuración ordena los accesos directos en el menú principal según el " "Esta configuración ordena los accesos directos en el menú principal según el "
"tiempo transcurrido en la aplicación o juego" "tiempo transcurrido en la aplicación o juego"
msgid "Unlock all 3D APIs"
msgstr ""
msgid ""
"Allows you to unlock all available 3D APIs, even if your current graphics "
"card does not meet the minimum requirements"
msgstr ""
msgid "" msgid ""
"Open the <b>user.conf</b> settings file in a system text editor to view and " "Open the <b>user.conf</b> settings file in a system text editor to view and "
"change variables manually" "change variables manually"
@@ -2082,13 +2104,6 @@ msgstr "DLLS"
msgid "FONTS" msgid "FONTS"
msgstr "FUENTES" msgstr "FUENTES"
msgid "Attention working version of vulkan not detected!"
msgstr "¡Atención, no se detectó la versión funcional de vulkan!"
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
"¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!"
msgid "" msgid ""
"PortProton was launched in creation mode PortProton.log and it is " "PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port" "successfully stored in the root directory of the port"
@@ -2218,6 +2233,13 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS" msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Attention working version of vulkan not detected!"
#~ msgstr "¡Atención, no se detectó la versión funcional de vulkan!"
#~ msgid "It is recommended to run games in OpenGL (low performance possible)!"
#~ msgstr ""
#~ "¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!"
#~ msgid "Legacy DXVK (Vulkan v1.1)" #~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "DXVK heredado (Vulkan v1.1)" #~ msgstr "DXVK heredado (Vulkan v1.1)"
@@ -2269,8 +2291,8 @@ msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "" #~ msgid ""
#~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" #~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
#~ msgstr "" #~ msgstr ""
#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n" #~ "Para agregar el acceso directo a STEAM, es necesario reiniciar."
#~ "\\¿Quieres reiniciar STEAM ahora?" #~ "\\n\\¿Quieres reiniciar STEAM ahora?"
#~ msgid "Restarting STEAM... Please wait." #~ msgid "Restarting STEAM... Please wait."
#~ msgstr "Restarting STEAM... Please wait." #~ msgstr "Restarting STEAM... Please wait."

View File

@@ -7,16 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n" "POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: 2025-07-24 16:51+0300\n" "PO-Revision-Date: 2025-07-28 19:50+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: ru_RU\n" "Language: ru_RU\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.6\n" "X-Generator: Poedit 3.6\n"
msgid "" msgid ""
@@ -368,8 +368,8 @@ msgid ""
"More than one DB file found for the application being launched.\\nSelect the " "More than one DB file found for the application being launched.\\nSelect the "
"required one, or delete the extra DB file before the next run.\\n" "required one, or delete the extra DB file before the next run.\\n"
msgstr "" msgstr ""
"Для запускаемого приложения найдено более одного конфигурационного файла ." "Для запускаемого приложения найдено более одного конфигурационного "
"ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим " "файла .ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим "
"запуском\\n" "запуском\\n"
msgid "Update scripts:" msgid "Update scripts:"
@@ -506,8 +506,8 @@ msgid ""
"<b>Super + Y :</b> Toggle NIS upscaling\n" "<b>Super + Y :</b> Toggle NIS upscaling\n"
"<b>Super + I :</b> Increase FSR sharpness by 1\n" "<b>Super + I :</b> Increase FSR sharpness by 1\n"
"<b>Super + O :</b> Decrease FSR sharpness by 1\n" "<b>Super + O :</b> Decrease FSR sharpness by 1\n"
"<b>Super + S :</b> Take screenshot (currently goes to /tmp/gamescope_DATE." "<b>Super + S :</b> Take screenshot (currently goes to /tmp/"
"png)\n" "gamescope_DATE.png)\n"
"<b>Super + G :</b> Toggle keyboard grab\n" "<b>Super + G :</b> Toggle keyboard grab\n"
"<b>Super + C :</b> Update clipboard" "<b>Super + C :</b> Update clipboard"
msgstr "" msgstr ""
@@ -732,6 +732,10 @@ msgstr ""
"производительность некоторых очень специфических игр (рекомендуется не " "производительность некоторых очень специфических игр (рекомендуется не "
"изменять значение)" "изменять значение)"
msgid ""
"GLIBC version 2.38+ is required for use Lossless Scaling frame generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation" msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr "Изменить версию эмуляции <b>WINDOWS</b>" msgstr "Изменить версию эмуляции <b>WINDOWS</b>"
@@ -1349,9 +1353,9 @@ msgid ""
"MangoHud settings (Keys <b>R_SHIFT + F12</b> disable MangoHud)\\n<b>note:</" "MangoHud settings (Keys <b>R_SHIFT + F12</b> disable MangoHud)\\n<b>note:</"
"b> To display help for each item, just hover the mouse cursor over the text." "b> To display help for each item, just hover the mouse cursor over the text."
msgstr "" msgstr ""
"Настройки MangoHud (клавиши <b>R_SHIFT + F12</b> отключают " "Настройки MangoHud (клавиши <b>R_SHIFT + F12</b> отключают MangoHud)"
"MangoHud)\\n<b>Примечание:</b> Чтобы отобразить справку для каждого " "\\n<b>Примечание:</b> Чтобы отобразить справку для каждого элемента, "
"элемента, наведите курсор мыши на текст." "наведите курсор мыши на текст."
msgid "" msgid ""
"Enabling fps limitation with MANGOHUD tools built into PortProton (Keys " "Enabling fps limitation with MANGOHUD tools built into PortProton (Keys "
@@ -1849,6 +1853,9 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu" msgid "Disable GameScope and go to the previous menu"
msgstr "Отключить Gamescope и перейти в предыдущее меню" msgstr "Отключить Gamescope и перейти в предыдущее меню"
msgid "The graphics card does not support Vulkan"
msgstr "Видеокарта не поддерживает Vulkan"
msgid "Recommended value" msgid "Recommended value"
msgstr "Рекомендуемое значение" msgstr "Рекомендуемое значение"
@@ -1879,6 +1886,12 @@ msgstr "По данным последнего запуска"
msgid "By time" msgid "By time"
msgstr "По проведённому времени" msgstr "По проведённому времени"
msgid "unlock"
msgstr "разблокировать"
msgid "unlocked"
msgstr "разблокировано"
msgid "GLOBAL SETTINGS (USER.CONF)" msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)" msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
@@ -1974,6 +1987,16 @@ msgstr "Сортировка ярлыков по"
msgid "This setting sorts the shortcuts in the main menu" msgid "This setting sorts the shortcuts in the main menu"
msgstr "Эта настройка сортирует ярлыки в главном меню" msgstr "Эта настройка сортирует ярлыки в главном меню"
msgid "Unlock all 3D APIs"
msgstr "Разблокировать все 3D API"
msgid ""
"Allows you to unlock all available 3D APIs, even if your current graphics "
"card does not meet the minimum requirements"
msgstr ""
"Позволяет разблокировать все доступные 3D API, даже если ваша текущая "
"видеокарта не соответствует минимальным требованиям"
msgid "" msgid ""
"Open the <b>user.conf</b> settings file in a system text editor to view and " "Open the <b>user.conf</b> settings file in a system text editor to view and "
"change variables manually" "change variables manually"
@@ -2068,13 +2091,6 @@ msgstr "БИБЛИОТЕКИ"
msgid "FONTS" msgid "FONTS"
msgstr "ШРИФТЫ" msgstr "ШРИФТЫ"
msgid "Attention working version of vulkan not detected!"
msgstr "Внимание, рабочая версия Vulkan не обнаружена!"
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
"Игры рекомендуется запускать в OpenGL (возможна низкая производительность)"
msgid "" msgid ""
"PortProton was launched in creation mode PortProton.log and it is " "PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port" "successfully stored in the root directory of the port"
@@ -2197,11 +2213,18 @@ msgid "SPONSORS"
msgstr "СПОНСОРЫ" msgstr "СПОНСОРЫ"
msgid "JOIN" msgid "JOIN"
msgstr "ПРИСОЕДЕНИТЬСЯ" msgstr "ПРИСОЕДИНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ" msgstr "БИБЛИОТЕКИ"
#~ msgid "Attention working version of vulkan not detected!"
#~ msgstr "Внимание, рабочая версия Vulkan не обнаружена!"
#~ msgid "It is recommended to run games in OpenGL (low performance possible)!"
#~ msgstr ""
#~ "Игры рекомендуется запускать в OpenGL (возможна низкая производительность)"
#~ msgid "Legacy DXVK (Vulkan v1.1)" #~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "Устаревший DXVK (Vulkan v1.1)" #~ msgstr "Устаревший DXVK (Vulkan v1.1)"
@@ -2267,14 +2290,14 @@ msgstr "БИБЛИОТЕКИ"
#~ msgid "" #~ msgid ""
#~ "<b>Gamescope is not detected on the system, to install it, run the " #~ "<b>Gamescope is not detected on the system, to install it, run the "
#~ "command in the terminal:\\nflatpak install -y runtime/org.freedesktop." #~ "command in the terminal:\\nflatpak install -y runtime/"
#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Can be " #~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%"
#~ "selected and copied)</b>" #~ "{GAMESCOPE_VERSION}%\\n(Can be selected and copied)</b>"
#~ msgstr "" #~ msgstr ""
#~ "<b>Gamescope не найден в системе, для его установки выполните команду в " #~ "<b>Gamescope не найден в системе, для его установки выполните команду в "
#~ "терминале:\\nflatpak install -y runtime/org.freedesktop.Platform." #~ "терминале:\\nflatpak install -y runtime/"
#~ "VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Данный текст можно " #~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%"
#~ "выделить и скопировать)</b>" #~ "{GAMESCOPE_VERSION}%\\n(Данный текст можно выделить и скопировать)</b>"
#, sh-format #, sh-format
#~ msgid "" #~ msgid ""
@@ -2561,8 +2584,8 @@ msgstr "БИБЛИОТЕКИ"
#~ "<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n" #~ "<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n"
#~ "<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.\n" #~ "<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.\n"
#~ "<b>-S integer:</b> use integer scaling.\n" #~ "<b>-S integer:</b> use integer scaling.\n"
#~ "<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e." #~ "<b>-S stretch:</b> use stretch scaling, the game will fill the window. "
#~ "g. 4:3 to 16:9).\n" #~ "(e.g. 4:3 to 16:9).\n"
#~ "<b>-b:</b> create a border-less window.\n" #~ "<b>-b:</b> create a border-less window.\n"
#~ "<b>-f:</b> create a full-screen window." #~ "<b>-f:</b> create a full-screen window."
#~ msgstr "" #~ msgstr ""
@@ -2571,8 +2594,8 @@ msgstr "БИБЛИОТЕКИ"
#~ "размера окна Gamescope обновит эти настройки. Если указано -H, а -W нет, " #~ "размера окна Gamescope обновит эти настройки. Если указано -H, а -W нет, "
#~ "предполагается соотношение сторон 16:9. По умолчанию установлено значение " #~ "предполагается соотношение сторон 16:9. По умолчанию установлено значение "
#~ "1280×720.\n" #~ "1280×720.\n"
#~ "<b>-w, -h:</b> установить разрешение, используемое в игре. Если указано -" #~ "<b>-w, -h:</b> установить разрешение, используемое в игре. Если указано "
#~ "h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию " #~ "-h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию "
#~ "используются значения, указанные в -W и -H.\n" #~ "используются значения, указанные в -W и -H.\n"
#~ "<b>-r:</b> установить ограничение частоты кадров для игры. По умолчанию " #~ "<b>-r:</b> установить ограничение частоты кадров для игры. По умолчанию "
#~ "значение неограниченно.\n" #~ "значение неограниченно.\n"

View File

@@ -854,48 +854,35 @@ check_selinux () {
export -f check_selinux export -f check_selinux
check_vendor_gpu () { check_vendor_gpu () {
unset VENDOR_GPU_USE check_pci_driver () {
if [[ $PW_GPU_USE != disabled ]] ; then case "$1" in
case "${PW_GPU_USE,,}" in
*nvidia*) *nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau") [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau"
;; ;;
*amd*) *amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd") [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd"
;; ;;
*intel*) *intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel") [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel"
;; ;;
*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau"
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd"
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel"
;;
esac esac
}
if [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]]
then check_pci_driver "${PW_GPU_USE,,}"
elif pw_check_glxinfo
then check_pci_driver "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')"
else check_pci_driver
fi fi
if command -v glxinfo &>/dev/null ; then echo "$VENDOR_GPU_USE"
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
glxinfo -B &> "${PW_TMPFS_PATH}/glxinfo.tmp"
fi
case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau")
;;
*amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd")
;;
*intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel")
;;
esac
fi
if [[ -z ${VENDOR_GPU_USE[0]} ]] ; then
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau")
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd")
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel")
fi
echo "${VENDOR_GPU_USE[*]}"
} }
background_pid () { background_pid () {
@@ -1347,7 +1334,6 @@ seconds_to_time () {
combobox_fix () { combobox_fix () {
if [[ -z "$1" ]] ; then if [[ -z "$1" ]] ; then
print_error "no argument specified for combobox_fix"
return 1 return 1
else else
local name1 name2 local name1 name2
@@ -1658,12 +1644,7 @@ init_wine_ver () {
done done
IFS="$orig_IFS" IFS="$orig_IFS"
fi 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 ]] if [[ "$PW_WINE_USE" == PROTON_LG ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}" then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ "$PW_WINE_USE" == WINE_LG ]] elif [[ "$PW_WINE_USE" == WINE_LG ]]
@@ -1735,15 +1716,15 @@ init_wine_ver () {
export WINEDLLPATH export WINEDLLPATH
fi fi
if ! check_flatpak ; then if ! check_flatpak ; then
WINE_LIBRARY_PATH="${WINEDIR}/lib" WINE_LIBRARY_PATH="${WINEDIR}/lib"
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]]
then WINE_LIBRARY_PATH+=":${WINEDIR}/lib64" then WINE_LIBRARY_PATH+=":${WINEDIR}/lib64"
elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu" ]] elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu" ]]
then WINE_LIBRARY_PATH+=":${WINEDIR}/lib/x86_64-linux-gnu:${WINEDIR}/lib/i386-linux-gnu" then WINE_LIBRARY_PATH+=":${WINEDIR}/lib/x86_64-linux-gnu:${WINEDIR}/lib/i386-linux-gnu"
fi fi
export WINE_LIBRARY_PATH export WINE_LIBRARY_PATH
fi fi
export MEDIACONV_BLANK_VIDEO_FILE="${WINEDIR}"/share/media/blank.mkv export MEDIACONV_BLANK_VIDEO_FILE="${WINEDIR}"/share/media/blank.mkv
export MEDIACONV_BLANK_AUDIO_FILE="${WINEDIR}"/share/media/blank.ptna export MEDIACONV_BLANK_AUDIO_FILE="${WINEDIR}"/share/media/blank.ptna
@@ -1781,8 +1762,8 @@ pw_init_runtime () {
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
if ! check_flatpak; then if ! check_flatpak; then
export PW_LD_LIBRARY_PATH="\ export PW_LD_LIBRARY_PATH="\
${PW_PLUGINS_PATH}/portable/lib/lib64:\ ${PW_PLUGINS_PATH}/portable/lib/lib64:\
${PW_PLUGINS_PATH}/portable/lib/lib32:\ ${PW_PLUGINS_PATH}/portable/lib/lib32:\
${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:\ ${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:\
@@ -1791,7 +1772,7 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
/overrides/lib/i386-linux-gnu:\ /overrides/lib/i386-linux-gnu:\
/lib/x86_64-linux-gnu:\ /lib/x86_64-linux-gnu:\
/lib/i386-linux-gnu" /lib/i386-linux-gnu"
fi fi
export PW_PATH="${PW_PLUGINS_PATH}/portable/bin${PATH:+:$PATH}" export PW_PATH="${PW_PLUGINS_PATH}/portable/bin${PATH:+:$PATH}"
@@ -2451,13 +2432,16 @@ pw_init_db () {
if [[ -f "${PORTWINE_DB_FILE}" ]] ; then if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
# shellcheck source=/dev/null # shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}" 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." print_info "Use $PORTWINE_DB_FILE db file."
else else
if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then
if [[ -n "${PORTWINE_DB}" ]] ; then if [[ -n "${PORTWINE_DB}" ]] ; then
PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*) PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
export PORTWINE_DB_FILE 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 if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
{ {
echo "#!/usr/bin/env bash" echo "#!/usr/bin/env bash"
@@ -2475,7 +2459,7 @@ pw_init_db () {
# shellcheck source=/dev/null # shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}" source "${PORTWINE_DB_FILE}"
fi 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
fi fi
@@ -2496,40 +2480,40 @@ pw_init_db () {
fi fi
fi fi
case "${PW_AMD_VULKAN_USE}" in case "${PW_AMD_VULKAN_USE}" in
"amdvlk") "amdvlk")
PW_VK_ICD_FILENAMES="" PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_icd*.json; do for file in "$dir"/amd_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done done
done done
export PW_VK_ICD_FILENAMES export PW_VK_ICD_FILENAMES
;; ;;
"amdgpupro") "amdgpupro")
PW_VK_ICD_FILENAMES="" PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_pro_icd*.json; do for file in "$dir"/amd_pro_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done done
done done
# add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not)
echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \
var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32"
export PW_VK_ICD_FILENAMES export PW_VK_ICD_FILENAMES
;; ;;
"radv") "radv")
PW_VK_ICD_FILENAMES="" PW_VK_ICD_FILENAMES=""
for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done done
export PW_VK_ICD_FILENAMES export PW_VK_ICD_FILENAMES
;; ;;
esac esac
[[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1 [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1
[[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI
@@ -2697,8 +2681,6 @@ pw_port_update () {
return 0 return 0
fi fi
tmp_next_ver=$(grep "SCRIPTS_NEXT_VERSION" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}')
tmp_stab_ver=$(grep "SCRIPTS_STABLE_VERSION" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}')
scripts_current_ver=$(grep "$BRANCH_VERSION_UPDATE" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}') scripts_current_ver=$(grep "$BRANCH_VERSION_UPDATE" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}')
if [[ ! -f "${PORT_WINE_TMP_PATH}/update_remind_later" ]] ; then if [[ ! -f "${PORT_WINE_TMP_PATH}/update_remind_later" ]] ; then
echo "$scripts_current_ver" > "${PORT_WINE_TMP_PATH}/update_remind_later" echo "$scripts_current_ver" > "${PORT_WINE_TMP_PATH}/update_remind_later"
@@ -2770,7 +2752,7 @@ pw_port_update () {
try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/" try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
unset SKIP_CHECK_UPDATES unset SKIP_CHECK_UPDATES
[[ "$tmp_next_ver" == "$tmp_stab_ver" ]] && echo "Stable update." curl -X GET "http://cloud.linux-gaming.ru:8081/api/download/${scripts_current_ver}" &>/dev/null
echo "Restarting PP after update..." echo "Restarting PP after update..."
restart_pp restart_pp
fi fi
@@ -2808,23 +2790,186 @@ pw_check_command () {
export -f pw_check_command export -f pw_check_command
pw_check_vulkan () { pw_check_vulkan () {
if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then TIMEOUT_CMD="5"
TIMEOUT_CMD="5" export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1="1"
if ! pw_check_command vulkaninfo ; then if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo" print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" "$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
}
compare_versions () {
IFS='.' read -ra a1 <<< "$1"
IFS='.' read -ra a2 <<< "$2"
local len=$(( ${#a1[@]} > ${#a2[@]} ? ${#a1[@]} : ${#a2[@]} ))
for ((i=0; i<len; i++)) ; do
local n1=$(( ${a1[i]:-0} ))
local n2=$(( ${a2[i]:-0} ))
if (( n1 > n2 )) ; then
return 0
elif (( n1 < n2 )) ; then
return 1
fi
done
return 0
}
get_gpu_names () {
GET_GPU_NAMES=$(awk -F '= ' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | paste -sd '!')
if [[ ${GET_GPU_NAMES,,} =~ radv ]] ; then
IFS='!' read -r -a GET_GPU_NAMES_ARRAY <<< "$GET_GPU_NAMES"
for i in "${!GET_GPU_NAMES_ARRAY[@]}" ; do
if [[ ${GET_GPU_NAMES_ARRAY[i],,} =~ amd && ! ${GET_GPU_NAMES_ARRAY[i],,} =~ radv ]] ; then
unset 'GET_GPU_NAMES_ARRAY[i]'
fi
done
GET_GPU_NAMES_ARRAY=("${GET_GPU_NAMES_ARRAY[@]}")
if [[ -n ${GET_GPU_NAMES_ARRAY[1]} ]] ; then
printf -v GET_GPU_NAMES '%s!' "${GET_GPU_NAMES_ARRAY[@]}"
GET_GPU_NAMES="${GET_GPU_NAMES%?}"
else
GET_GPU_NAMES="${GET_GPU_NAMES_ARRAY[0]}"
fi
fi
export GET_GPU_NAMES
}
pw_check_dxvk () {
background_pid --end "pw_check_vulkan" "1"
if [[ -z $PW_VULKAN_DRIVER_USE ]] && [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
if [[ -z $PW_GPU_USE ]] ; then
if [[ -z $GET_GPU_NAMES ]] ; then
get_gpu_names
fi
IFS='!' read -r -a SELECTED_VULKAN_GPU <<< "$GET_GPU_NAMES"
else
IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE"
fi
if [[ -n ${SELECTED_VULKAN_GPU[*]} ]] ; then # оптимизация когда vulkan драйвера в системе нет
# если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер
if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then
if [[ ${SELECTED_VULKAN_GPU[*],,} =~ radv ]] ; then
for i in "${!SELECTED_VULKAN_GPU[@]}" ; do
if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then
SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}"
fi
done
fi
fi
# какие карты в приоритете, если не выбран изначально PW_GPU_USE
if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then
for elem in "${SELECTED_VULKAN_GPU[@]}"; do
case ${elem,,} in
*nvidia*) nvidia_group+=("$elem") ;;
*amd*) amd_group+=("$elem") ;;
*intel*) intel_group+=("$elem") ;;
*) other_group+=("$elem") ;;
esac
done
unset SELECTED_VULKAN_GPU
SELECTED_VULKAN_GPU_NEW=(
"${nvidia_group[@]}"
"${amd_group[@]}"
"${intel_group[@]}"
"${other_group[@]}"
)
fi
# получаем информацию о конкретном драйвере который выбран в PW_GPU_USE,
# либо ищем наилучший драйвер с учётом приоритета видеокарт + информация
mapfile -t PW_VULKAN_DRIVER_ARRAY < <(awk '
/apiVersion|driverVersion/ { print $3 }
/deviceName|driverName|driverInfo/ {
split($0, parts, "= ")
print parts[2]
}' "${PW_TMPFS_PATH}/vulkaninfo.tmp")
for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do
x="0" && y="5"
while true ; do
PW_VULKAN_DRIVER_ARRAY_CHECK=("${PW_VULKAN_DRIVER_ARRAY[@]:x:y}")
if [[ -n $PW_AMD_VULKAN_USE && $PW_AMD_VULKAN_USE != "disabled" ]] ; then
[[ $PW_AMD_VULKAN_USE == "amdvlk" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] && break
[[ $PW_AMD_VULKAN_USE == "amdgpupro" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] && break
else
[[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break
fi
x=$(( x + 5 )) && y=$(( y + 5 ))
# фикс, если вдруг PW_GPU_USE изменился или сломался
if [[ -z ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} ]] ; then
PW_AMD_VULKAN_USE="disabled"
edit_db_from_gui PW_AMD_VULKAN_USE
unset PW_GPU_USE
pw_check_dxvk
break
fi
done
if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[4]}" "550.54.14" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} =~ mesa ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "25.0" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] \
|| [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "2.0.310" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
fi
done
# если используется nvidia, со встройкой opengl будет работать через встройку, с этим будет работать через nvidia
if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then
export __NV_PRIME_RENDER_OFFLOAD="1"
export __GLX_VENDOR_LIBRARY_NAME="nvidia"
else
export __NV_PRIME_RENDER_OFFLOAD="0"
fi
# если PW_GPU_USE изначально не было
if [[ -z $PW_GPU_USE ]] ; then
export PW_GPU_USE=${PW_VULKAN_DRIVER_ARRAY_CHECK[2]}
edit_user_conf_from_gui PW_GPU_USE
fi
fi
fi
# формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера
if [[ $PW_VULKAN_DRIVER_USE == "6" ]] || [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6"
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
else
if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="0"
PW_DEFAULT_VULKAN_USE="$SORT_OPENGL"
else
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[0]}" "1.3" ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="2"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
else
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="1"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_SAREK" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_OPENGL" ;;
esac
fi
fi fi
fi fi
} }
pw_check_glxinfo () { pw_check_glxinfo () {
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then TIMEOUT_CMD="5"
TIMEOUT_CMD="5" pw_check_command glxinfo -B
if pw_check_command glxinfo -B
then return 0
else return 1
fi
fi
} }
pw_get_tmp_files () { pw_get_tmp_files () {
@@ -2832,9 +2977,6 @@ pw_get_tmp_files () {
do pw_check_command "$f_cmd" do pw_check_command "$f_cmd"
done done
pw_check_vulkan
pw_check_glxinfo
# GALLIUM NINE # GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH unset FIND_D3D_MODULE D3D_MODULE_PATH
if ! check_flatpak ; then if ! check_flatpak ; then
@@ -2860,16 +3002,14 @@ pw_get_tmp_files () {
pw_skip_get_info () { pw_skip_get_info () {
if [[ "${SKIP_CHECK_UPDATES_NEW}" != "1" ]] ; then if [[ "${SKIP_CHECK_UPDATES_NEW}" != "1" ]] ; then
background_pid --end "pw_get_tmp_files" "1" background_pid --end "pw_get_tmp_files" "2"
if [[ -f "${PW_TMPFS_PATH}/gamescope.tmp" ]] ; then if [[ -f "${PW_TMPFS_PATH}/gamescope.tmp" ]] ; then
export GAMESCOPE_INSTALLED="1" export GAMESCOPE_INSTALLED="1"
fi fi
if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
VULKAN_DRIVER_NAME="$(grep -e 'driverName' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | awk '{print$3}' | head -1)" get_gpu_names
GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
export VULKAN_DRIVER_NAME GET_GPU_NAMES
fi fi
if [[ -f "${PW_TMPFS_PATH}/lspci.tmp" ]] ; then if [[ -f "${PW_TMPFS_PATH}/lspci.tmp" ]] ; then
@@ -2886,12 +3026,13 @@ pw_skip_get_info () {
if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then 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" 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 for LOCALE in $GET_LOCALE_LIST ; do
if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then
if [[ -n "$LOCALE_LIST" ]] if [[ -n "$LOCALE_LIST" ]]
then LOCALE_LIST+="!$LOCALE" then LOCALE_LIST+="!$LOCALE$LOCALE_UTF"
else LOCALE_LIST="$LOCALE" else LOCALE_LIST="$LOCALE$LOCALE_UTF"
fi fi
fi fi
done done
@@ -2942,7 +3083,7 @@ pw_skip_get_info () {
fi fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo) logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
if (( $logical_cores <= "4" )) ; then if (( logical_cores <= "4" )) ; then
GET_LOGICAL_CORE="$(seq -s! 1 $(( logical_cores - 1 )))" GET_LOGICAL_CORE="$(seq -s! 1 $(( logical_cores - 1 )))"
else else
GET_LOGICAL_CORE="1!2!$(seq -s! 4 4 $(( logical_cores - 1 )))" GET_LOGICAL_CORE="1!2!$(seq -s! 4 4 $(( logical_cores - 1 )))"
@@ -3036,6 +3177,22 @@ edit_user_conf_from_gui () {
return 0 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 () { pw_create_gui_png () {
if [[ -z $name_desktop_png ]] ; then if [[ -z $name_desktop_png ]] ; then
basename_portwine_exe="$(basename "${portwine_exe}")" basename_portwine_exe="$(basename "${portwine_exe}")"
@@ -3060,19 +3217,9 @@ pw_create_gui_png () {
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}" PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else else
if command -v exiftool &>/dev/null ; then use_exiftool "$portwine_exe"
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${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")
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) ]] if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
then then
@@ -3511,17 +3658,17 @@ start_portwine () {
OPTISCALER_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_OPTISCALER_VER" 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 \ 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 \ libxess_dx11.dll dlssg_to_fsr3_amd_is_better.dll fakenvapi.ini \
nvapi64.dll OptiScaler.ini dxvk.conf" 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" ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll D3D12"
if [[ "${PW_USE_OPTISCALER}" != "1" ]] \ if [[ "${PW_USE_OPTISCALER}" != "1" ]] \
&& [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]] && [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]]
then then
for dll in $OPTISCALER_FILES ; do for dll in $OPTISCALER_FILES ; do
try_remove_file "$PATH_TO_GAME/$dll" rm -fr "$PATH_TO_GAME/$dll"
done done
for dll in $ORIGINAL_GAME_DLLS ; do 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 mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null
fi fi
done done
@@ -3538,7 +3685,7 @@ start_portwine () {
fi fi
fi fi
export PW_WINE_FULLSCREEN_FSR="0" export PW_USE_NVAPI_AND_DLSS="1"
set_to_dxvk_conf nvidia_new set_to_dxvk_conf nvidia_new
@@ -3551,20 +3698,21 @@ start_portwine () {
fatal "Force exit..." fatal "Force exit..."
fi fi
for dll in $ORIGINAL_GAME_DLLS ; do for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/$dll" ]] \ if [[ -e "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -f "$PATH_TO_GAME/${dll}.b" ]] && [[ ! -e "$PATH_TO_GAME/${dll}.b" ]]
then then
mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null
fi fi
done done
fi fi
for dll in $OPTISCALER_FILES ; do if [[ ! -f "$PATH_TO_GAME/optiscaler_version" ]] \
if [[ ! -f "$PATH_TO_GAME/$dll" ]] \ || ! grep -q "$PW_OPTISCALER_VER" "$PATH_TO_GAME/optiscaler_version"
|| [[ -L "$PATH_TO_GAME/$dll" ]] then
then try_copy_file "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" for dll in $OPTISCALER_FILES ; do
fi cp -fr "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" || print_error "$OPTISCALER_PATH/$dll not found for copy!"
done done
fi
fi fi
if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then
@@ -3700,7 +3848,7 @@ if [[ "$GAMEMODERUN" != "1" ]]; then
start_activity_simulation start_activity_simulation
PW_INHIBIT_SLR="" PW_INHIBIT_SLR=""
print_info "Screensaver will be inhibited using D-Bus (Flatpak mode)" print_info "Screensaver will be inhibited using D-Bus (Flatpak mode)"
elif command -v systemd-inhibit &>/dev/null; then elif [[ -e "/var/run/dbus/system_bus_socket" ]] && 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" PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]} --what=idle:sleep"
print_info "Screensaver will be inhibited using systemd-inhibit (Native mode)" print_info "Screensaver will be inhibited using systemd-inhibit (Native mode)"
fi fi
@@ -3776,8 +3924,6 @@ fi
# WINED3D OPENGL # WINED3D OPENGL
print_info "Use WINED3D OpenGL" print_info "Use WINED3D OpenGL"
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D 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_NEW_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
;; ;;
1) 1)
@@ -3793,27 +3939,27 @@ fi
fi fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}" PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12"
CP_WINE_FILES="d3d12core d3d10_1 d3d10" CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;; ;;
2) 2)
# 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 libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10"
;;
6)
# STABLE DXVK AND VKD3D # STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_OLD_VER} in use" print_info "DXVK v.${DXVK_OLD_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_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_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}" PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;;
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" CP_WINE_FILES="d3d10_1 d3d10"
;; ;;
esac esac
@@ -3824,8 +3970,6 @@ fi
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ || [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
fi fi
@@ -3886,14 +4030,13 @@ fi
else add_to_var CP_WINE_FILES "d3d8" else add_to_var CP_WINE_FILES "d3d8"
fi fi
fi fi
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" && -f "${WINEDIR}/lib/vkd3d/x86_64-windows/libvkd3d-1.dll" ]] ; then || [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12 d3d12core"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" ]] ; then elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" ]] ; then
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12"
add_to_var CP_WINE_FILES "d3d12core" add_to_var CP_WINE_FILES "d3d12core"
else else
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
add_to_var CP_WINE_FILES "d3d12 d3d12core" add_to_var CP_WINE_FILES "d3d12 d3d12core"
fi fi
[[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2" [[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2"
@@ -4190,30 +4333,29 @@ fi
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then 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/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" 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 ;; fi ;;
1) 1)
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then 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}/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" 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 ;; fi ;;
0) 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}/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" ;; try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;;
esac esac
[[ ! $wine_vkd3d_dll =~ libvkd3d ]] && var_winedlloverride_update "${wine_vkd3d_dll}=n" var_winedlloverride_update "${wine_vkd3d_dll}=n"
done done
create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache" create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache"
fi 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 # GALLIUM NINE
if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then 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}" PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
@@ -4595,14 +4737,11 @@ pw_run () {
export WINE_LARGE_ADDRESS_AWARE="1" export WINE_LARGE_ADDRESS_AWARE="1"
fi fi
check_variables SteamAppId "0"
check_variables SteamGameId "0"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log" PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
echo "##### Current variables #####" > "$PW_TMPFS_PATH/var.log" echo "##### Current variables #####" > "$PW_TMPFS_PATH/var.log"
for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME" \ for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" \
"WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" \ "WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" \
"WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR" "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR"
do do
@@ -4776,6 +4915,7 @@ portwine_launch () {
[[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME" [[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME"
if [[ -n "${LAUNCH_URI}" ]] ; then if [[ -n "${LAUNCH_URI}" ]] ; then
export WINEFSYNC="1"
pw_run start /high /b "${LAUNCH_URI}" & pw_run start /high /b "${LAUNCH_URI}" &
unset GAMEPID unset GAMEPID
while true ; do while true ; do
@@ -5396,13 +5536,13 @@ export -f gui_proton_downloader
# GUI EDIT_DB # GUI EDIT_DB
gui_edit_db () { gui_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM 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_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_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_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_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_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 if check_wayland_session
@@ -5484,6 +5624,14 @@ gui_edit_db () {
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC" [[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC"
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 unset ADD_CHK_BOX_EDIT_DB
for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do
if [[ "${!int_to_boole}" == "1" ]] if [[ "${!int_to_boole}" == "1" ]]
@@ -5547,7 +5695,6 @@ gui_edit_db () {
if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \ if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \
[[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then [[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
else else
AMD_VULKAN_VAR="disabled" AMD_VULKAN_VAR="disabled"
fi fi
@@ -6427,12 +6574,12 @@ gui_userconf () {
NEW_STEAM_BEHAVIOR="${translations[Enable]}" NEW_STEAM_BEHAVIOR="${translations[Enable]}"
fi fi
if [[ -n $PW_GPU_USE ]] \ if [[ -n $PW_GPU_USE ]] && [[ $PW_GPU_USE != "disabled" ]] ; then
&& [[ $PW_GPU_USE != "disabled" ]]
then
GPU_VAR="$PW_GPU_USE" GPU_VAR="$PW_GPU_USE"
elif [[ -n $GET_GPU_NAMES ]] ; then
GPU_VAR="${GET_GPU_NAMES/!*/}"
else else
GPU_VAR="disabled" GPU_VAR="${translations[The graphics card does not support Vulkan]}"
fi fi
if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then
@@ -6454,10 +6601,9 @@ gui_userconf () {
SOUND_DRIVER_VAR="disabled" SOUND_DRIVER_VAR="disabled"
fi fi
if [[ $GUI_THEME == "default" ]] ; then GUI_THEME=${translations[default]} [[ $GUI_THEME == "default" ]] && GUI_THEME=${translations[default]}
elif [[ $GUI_THEME == "compact" ]] ; then GUI_THEME=${translations[compact]} [[ $GUI_THEME == "compact" ]] && GUI_THEME=${translations[compact]}
elif [[ $GUI_THEME == "classic" ]] ; then GUI_THEME=${translations[classic]} [[ $GUI_THEME == "classic" ]] && GUI_THEME=${translations[classic]}
fi
if command -v gsettings &>/dev/null ; then if command -v gsettings &>/dev/null ; then
YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme)
@@ -6465,11 +6611,10 @@ gui_userconf () {
[[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!" [[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!"
fi fi
[[ -n $GTK_THEME ]] && GTK_THEME_PROXY="$GTK_THEME" [[ -n $GTK_THEME ]] && GTK_THEME_PROXY="$GTK_THEME"
if [[ -z $GTK_THEME_PROXY ]] ; then GTK_THEME_PROXY="${translations[default]}" [[ -z $GTK_THEME_PROXY ]] && GTK_THEME_PROXY="${translations[default]}"
elif [[ $GTK_THEME_PROXY =~ light$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}" [[ $GTK_THEME_PROXY =~ light$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}"
elif [[ $GTK_THEME_PROXY =~ dark$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}" [[ $GTK_THEME_PROXY =~ dark$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}"
elif [[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] ; then GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}" [[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] && GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}"
fi
if [[ $DESKTOP_WITH_TIME == "posnumber1" ]] ; then if [[ $DESKTOP_WITH_TIME == "posnumber1" ]] ; then
DESKTOP_WITH_TIME=${translations[Show in hours and minutes]} DESKTOP_WITH_TIME=${translations[Show in hours and minutes]}
@@ -6487,6 +6632,14 @@ gui_userconf () {
SORT_WITH_TIME="disabled" SORT_WITH_TIME="disabled"
fi fi
if [[ $PW_VULKAN_UNLOCKED == "default" ]] ; then
PW_VULKAN_UNLOCKED="${translations[default]}"
PW_VULKAN_UNLOCKED_LIST="${translations[unlock]}"
elif [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then
PW_VULKAN_UNLOCKED="${translations[unlocked]}"
PW_VULKAN_UNLOCKED_LIST="${translations[default]}"
fi
"${pw_yad}" --title="${translations[GLOBAL SETTINGS (USER.CONF)]}" --form \ "${pw_yad}" --title="${translations[GLOBAL SETTINGS (USER.CONF)]}" --form \
--gui-type="settings-shortcut" --separator="%" \ --gui-type="settings-shortcut" --separator="%" \
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
@@ -6496,13 +6649,14 @@ gui_userconf () {
--field="${translations[Change branch to]}!${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]} :CB" "$(combobox_fix "$BRANCH" "$NEW_BRANCH")" \ --field="${translations[Change branch to]}!${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]} :CB" "$(combobox_fix "$BRANCH" "$NEW_BRANCH")" \
--field="${translations[Change start gui to]}!${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]} :CB" "$(combobox_fix "$PW_GUI_START" "$NEW_START_GUI")" \ --field="${translations[Change start gui to]}!${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]} :CB" "$(combobox_fix "$PW_GUI_START" "$NEW_START_GUI")" \
--field="${translations[Steam covers download]}!${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]} :CB" "$(combobox_fix "$DOWNLOAD_STEAM_GRID" "$NEW_STEAM_BEHAVIOR")" \ --field="${translations[Steam covers download]}!${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]} :CB" "$(combobox_fix "$DOWNLOAD_STEAM_GRID" "$NEW_STEAM_BEHAVIOR")" \
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix "$GPU_VAR" "$GET_GPU_NAMES")" \
--field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!80!96!120!144!168!192!216!240")" \ --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!80!96!120!144!168!192!216!240")" \
--field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \
--field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \ --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \
--field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME_PROXY" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \ --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME_PROXY" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \
--field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "${translations[Show in hours and minutes]}!${translations[Show in days, hours, minutes]}")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "${translations[Show in hours and minutes]}!${translations[Show in days, hours, minutes]}")" \
--field="${translations[Sort shortcuts by]}!${translations[This setting sorts the shortcuts in the main menu]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "${translations[According to last launch]}!${translations[By time]}")" \ --field="${translations[Sort shortcuts by]}!${translations[This setting sorts the shortcuts in the main menu]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "${translations[According to last launch]}!${translations[By time]}")" \
--field="${translations[Unlock all 3D APIs]}!${translations[Allows you to unlock all available 3D APIs, even if your current graphics card does not meet the minimum requirements]} :CB" "$(combobox_fix "$PW_VULKAN_UNLOCKED" "$PW_VULKAN_UNLOCKED_LIST")" \
--button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \
--button="${translations[RESET]} USER.CONF!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} user.conf":2 \ --button="${translations[RESET]} USER.CONF!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} user.conf":2 \
--button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the <b>user.conf</b> settings file in a system text editor to view and change variables manually]}":164 \ --button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the <b>user.conf</b> settings file in a system text editor to view and change variables manually]}":164 \
@@ -6527,12 +6681,12 @@ gui_userconf () {
gui_open_user_conf gui_open_user_conf
;; ;;
166) 166)
unset PW_VULKAN_DRIVER_USE
IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb"
MIRROR="${PW_ADD_SETTINGS_UC[0]}" MIRROR="${PW_ADD_SETTINGS_UC[0]}"
if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then
if [[ ${PW_ADD_SETTINGS_UC[1]} == "DEVEL" ]] ; 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 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 \ pw_notify_send -i info \
"${translations[Branch changed to:]}" "<b>DEVEL</b>" "${translations[Branch changed to:]}" "<b>DEVEL</b>"
BRANCH="devel" BRANCH="devel"
@@ -6553,9 +6707,8 @@ gui_userconf () {
export PW_CHANGE_BRANCH="1" export PW_CHANGE_BRANCH="1"
export PW_FORCE_UPDATE="1" export PW_FORCE_UPDATE="1"
else else
if [[ $BRANCH == "DEVEL" ]] ; then BRANCH="devel" [[ $BRANCH == "DEVEL" ]] && BRANCH="devel"
elif [[ $BRANCH == "STABLE" ]] ; then BRANCH="master" [[ $BRANCH == "STABLE" ]] && BRANCH="master"
fi
fi fi
PW_GUI_START="${PW_ADD_SETTINGS_UC[2]}" PW_GUI_START="${PW_ADD_SETTINGS_UC[2]}"
DOWNLOAD_STEAM_GRID="${PW_ADD_SETTINGS_UC[3]}" DOWNLOAD_STEAM_GRID="${PW_ADD_SETTINGS_UC[3]}"
@@ -6566,30 +6719,46 @@ gui_userconf () {
GTK_THEME="${PW_ADD_SETTINGS_UC[8]}" GTK_THEME="${PW_ADD_SETTINGS_UC[8]}"
DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[9]}" DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[9]}"
SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[10]}" SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[10]}"
PW_VULKAN_UNLOCKED="${PW_ADD_SETTINGS_UC[11]}"
if [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]] ; then DOWNLOAD_STEAM_GRID="1" if [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]]
elif [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then DOWNLOAD_STEAM_GRID="0" then DOWNLOAD_STEAM_GRID="1"
else DOWNLOAD_STEAM_GRID="0"
fi fi
if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then
PW_WINE_DPI_VALUE="recommended" [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] && PW_WINE_DPI_VALUE="recommended"
case $GUI_THEME in
"${translations[default]}") GUI_THEME="default" ;;
"${translations[compact]}") GUI_THEME="compact" ;;
"${translations[classic]}") GUI_THEME="classic" ;;
esac
case $GTK_THEME in
"${translations[default]}") unset GTK_THEME ;;
"${translations[light]}") GTK_THEME=${GTK_THEME//${translations[light]}/light} ;;
"${translations[dark]}") GTK_THEME=${GTK_THEME//${translations[dark]}/dark} ;;
esac
if [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]]
then DESKTOP_WITH_TIME="posnumber1"
else DESKTOP_WITH_TIME="posnumber2"
fi fi
if [[ $GUI_THEME == "${translations[default]}" ]] ; then GUI_THEME=default
elif [[ $GUI_THEME == "${translations[compact]}" ]] ; then GUI_THEME=compact if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]]
elif [[ $GUI_THEME == "${translations[classic]}" ]] ; then GUI_THEME=classic then SORT_WITH_TIME="lastlaunch"
else SORT_WITH_TIME="bytime"
fi fi
if [[ $GTK_THEME == "${translations[default]}" ]] ; then unset GTK_THEME
elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME=${GTK_THEME//${translations[light]}/light} [[ $PW_GPU_USE == "${translations[The graphics card does not support Vulkan]}" ]] && PW_GPU_USE="disabled"
elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME=${GTK_THEME//${translations[dark]}/dark}
fi if [[ $PW_VULKAN_UNLOCKED == "${translations[unlock]}" || $PW_VULKAN_UNLOCKED == "${translations[unlocked]}" ]]
if [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber1" then PW_VULKAN_UNLOCKED="unlocked"
elif [[ $DESKTOP_WITH_TIME == "${translations[Show in days, hours, minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber2" else PW_VULKAN_UNLOCKED="default"
fi
if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]] ; then SORT_WITH_TIME="lastlaunch"
elif [[ $SORT_WITH_TIME == "${translations[By time]}" ]] ; then SORT_WITH_TIME="bytime"
fi fi
edit_user_conf_from_gui MIRROR BRANCH PW_GUI_START DOWNLOAD_STEAM_GRID PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE \ edit_user_conf_from_gui MIRROR BRANCH PW_GUI_START DOWNLOAD_STEAM_GRID PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE \
GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME PW_VULKAN_UNLOCKED
restart_pp restart_pp
;; ;;
esac esac
@@ -6606,6 +6775,10 @@ resize_png () {
RESIZE_NAME_PNG="${2// /_}" RESIZE_NAME_PNG="${2// /_}"
fi fi
if [[ $RESIZE_NAME_PNG =~ ru.linux_gaming.PortProton/data/img/ ]]
then RESIZE_NAME_PNG=${RESIZE_NAME_PNG/*ru.linux_gaming.PortProton\/data\/img\//}
fi
for resize_to in "${@:3}" ; do for resize_to in "${@:3}" ; do
if [[ $resize_to == 128 ]] if [[ $resize_to == 128 ]]
then resize_to_helper="" then resize_to_helper=""
@@ -6771,20 +6944,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') 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 () { pw_auto_create_shortcut () {
if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \ if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \
|| [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \ || [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \
@@ -6830,7 +6989,8 @@ pw_auto_create_shortcut () {
read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ') read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do 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 if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then
print_warning "Link broken for: $link_name" print_warning "Link broken for: $link_name"
else else
@@ -7044,9 +7204,9 @@ pw_prefix_manager () {
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null --tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null
YAD_STATUS="$?" YAD_STATUS="$?"
try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp" try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp" try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp" try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
case "$YAD_STATUS" in case "$YAD_STATUS" in
0) 0)
@@ -7089,11 +7249,6 @@ portwine_start_debug () {
pw_skip_get_info pw_skip_get_info
kill_portwine kill_portwine
export PW_LOG=1 export PW_LOG=1
if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" == "llvmpipe" ]] ; then
pw_notify_send -i warning \
"${translations[Attention working version of vulkan not detected!]}" \
"${translations[It is recommended to run games in OpenGL (low performance possible)!]}"
fi
echo "${translations[PortProton was launched in creation mode PortProton.log and it is successfully stored in the root directory of the port]}" > "${PORT_WINE_PATH}/PortProton.log" echo "${translations[PortProton was launched in creation mode PortProton.log and it is successfully stored in the root directory of the port]}" > "${PORT_WINE_PATH}/PortProton.log"
echo "${translations[To diagnose the problem, copy ALL of the log to:]} https://linux-gaming.ru/t/opisanie-kategorii-portproton-pomoshh/1642" >> "${PORT_WINE_PATH}/PortProton.log" echo "${translations[To diagnose the problem, copy ALL of the log to:]} https://linux-gaming.ru/t/opisanie-kategorii-portproton-pomoshh/1642" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
@@ -7434,6 +7589,7 @@ gui_open_user_conf () {
restart_pp --userconf restart_pp --userconf
;; ;;
2) 2)
unset PW_VULKAN_DRIVER_USE
echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf" echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf"
print_info "Restarting..." print_info "Restarting..."
restart_pp --userconf restart_pp --userconf

View File

@@ -277,14 +277,15 @@ if [[ -z $SORT_WITH_TIME ]] ; then
fi fi
# TODO:fixes_after_update (со временем можно будет дропнуть) # TODO:fixes_after_update (со временем можно будет дропнуть)
if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then # Оставил для примера
DESKTOP_WITH_TIME="posnumber1" # if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
edit_user_conf_from_gui DESKTOP_WITH_TIME # DESKTOP_WITH_TIME="posnumber1"
fi # edit_user_conf_from_gui DESKTOP_WITH_TIME
if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then # fi
SORT_WITH_TIME="lastlaunch" # if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
edit_user_conf_from_gui SORT_WITH_TIME # SORT_WITH_TIME="lastlaunch"
fi # edit_user_conf_from_gui SORT_WITH_TIME
# fi
# choose wine dpi default # choose wine dpi default
if [[ -z $PW_WINE_DPI_VALUE ]] ; then if [[ -z $PW_WINE_DPI_VALUE ]] ; then
@@ -306,7 +307,13 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}") PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}")
export PW_FILESYSTEM export PW_FILESYSTEM
background_pid --start "pw_get_tmp_files" "1" background_pid --start "pw_check_vulkan" "1"
background_pid --start "pw_get_tmp_files" "2"
fi
if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then
unset PW_GPU_USE
pw_check_dxvk
fi fi
# create lock file # create lock file
@@ -532,23 +539,6 @@ SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}" SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}" SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
if [[ -z $PW_VULKAN_USE ]] \
|| [[ $PW_VULKAN_USE == [3-5] ]]
then
if [[ -e "/sys/module/nvidia/version" && $(</sys/module/nvidia/version) > 550.54.13 ]] \
|| [[ pw_check_glxinfo && $(grep "Version:" "$PW_TMPFS_PATH/glxinfo.tmp" | awk '{print $2}') > 25 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
fi
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
if [[ $PW_WINE_USE == PROTON_LG ]] ; then if [[ $PW_WINE_USE == PROTON_LG ]] ; then
PW_WINE_USE="${PW_PROTON_LG_VER}" PW_WINE_USE="${PW_PROTON_LG_VER}"
PW_DEFAULT_WINE_USE="${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!${translations[GET-OTHER-WINE]}" PW_DEFAULT_WINE_USE="${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!${translations[GET-OTHER-WINE]}"
@@ -574,6 +564,10 @@ if [[ -f "$portwine_exe" ]] ; then
unset RESTART_PP_USED unset RESTART_PP_USED
gui_userconf gui_userconf
fi fi
[[ $PW_VULKAN_USE == [3-5] ]] && unset PW_VULKAN_USE
pw_check_dxvk
if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then
pw_create_gui_png pw_create_gui_png
if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
@@ -593,27 +587,32 @@ if [[ -f "$portwine_exe" ]] ; then
fi fi
fi fi
export KEY_START="$RANDOM" 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 : !$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 &
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"' \
--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 &
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then if [[ $PW_GUI_START == "NOTEBOOK" ]] ; 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 : !$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" \
--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 &
if [[ "$PW_YAD_FORM_TAB" == "1" ]] \ if [[ "$PW_YAD_FORM_TAB" == "1" ]] \
&& [[ -n "$TAB_START" ]] && [[ -n "$TAB_START" ]]
then then
@@ -622,53 +621,24 @@ if [[ -f "$portwine_exe" ]] ; then
else else
export TAB_START="1" export TAB_START="1"
fi fi
PW_GUI_START_TABNUM3="--notebook --active-tab=$TAB_START --gui-type=settings-notebook --expand"
"${pw_yad}" --key=$KEY_START --notebook --active-tab="$TAB_START" \
--gui-type="settings-notebook" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" --expand \
--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!" \
--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="$?"
export PW_YAD_FORM_TAB="1"
elif [[ $PW_GUI_START == "PANED" ]] ; then elif [[ $PW_GUI_START == "PANED" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \ PW_GUI_START_TABNUM3="--paned --gui-type=settings-paned"
--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 : !$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_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 fi
"$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})" \
--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!" \
--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="$?"
[[ $PW_GUI_START == "NOTEBOOK" ]] && export PW_YAD_FORM_TAB="1"
case "$PW_YAD_SET" in case "$PW_YAD_SET" in
128) 128)
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@@ -840,6 +810,8 @@ else
else export PW_GUI_SORT_TABS=(2 3 4 5 1) else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi fi
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM" KEY_MENU="$RANDOM"
IFS="%" IFS="%"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru) #Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2435 #SCRIPTS_NEXT_VERSION=2439
#SCRIPTS_STABLE_VERSION=2435 #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" 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_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}") export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}" #export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_USE_ESYNC="1" export PW_USE_ESYNC="0"
export PW_USE_FSYNC="1" export PW_USE_FSYNC="0"
export PW_USE_NTSYNC="0" export PW_USE_NTSYNC="0"
export PW_USE_GAMEMODE="0" export PW_USE_GAMEMODE="0"
export PW_USE_TERMINAL="0" export PW_USE_TERMINAL="0"
@@ -34,7 +34,6 @@ export PW_MESA_VK_WSI_PRESENT_MODE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled" export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_USE_EAC_AND_BE="1" export PW_USE_EAC_AND_BE="1"
export PW_USE_US_LAYOUT="0" export PW_USE_US_LAYOUT="0"
export PW_GPU_USE="disabled"
export PW_LOCALE_SELECT="disabled" export PW_LOCALE_SELECT="disabled"
export PW_DINPUT_PROTOCOL="0" export PW_DINPUT_PROTOCOL="0"
export PW_USE_VRCLIENT="0" export PW_USE_VRCLIENT="0"
@@ -45,10 +44,11 @@ export PW_USE_WINED3D_VULKAN="0"
export PW_USE_SUPPLIED_DXVK_VKD3D="1" export PW_USE_SUPPLIED_DXVK_VKD3D="1"
export PW_USE_SAREK_ASYNC="0" export PW_USE_SAREK_ASYNC="0"
export WINEUSERNAME="steamuser" export WINEUSERNAME="steamuser"
export PW_VULKAN_UNLOCKED="default"
###DEFAULT_WINE### ###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG" export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v20" 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_GALLIUM_NINE_VER="0.10"
export PW_LSFG_VK_VER="3.1-p11-cebe5e2" export PW_LSFG_VK_VER="3.1-p11-cebe5e2"
###WINE_AND_PROTON_LG### ###WINE_AND_PROTON_LG###