Compare commits

...

17 Commits

Author SHA1 Message Date
Mikhail Tergoev
df88eac63c Merge branch 'Htylol-added_dxvk_sarek' into devel 2025-07-24 00:40:37 +03:00
Mikhail Tergoev
c28c08122b Merge branch 'added_dxvk_sarek' of github.com:Htylol/PortWINE into Htylol-added_dxvk_sarek 2025-07-24 00:40:27 +03:00
Mikhail Tergoev
407657891a Merge branch 'Htylol-rm_from_array_1' into devel 2025-07-24 00:33:58 +03:00
Mikhail Tergoev
e4d2edd889 Merge branch 'rm_from_array_1' of github.com:Htylol/PortWINE into Htylol-rm_from_array_1 2025-07-24 00:33:50 +03:00
Mikhail Tergoev
19996e4331 Merge branch 'Boria138-wine-metadata' into devel 2025-07-24 00:27:10 +03:00
Mikhail Tergoev
5d5fa65008 Merge branch 'wine-metadata' of github.com:Boria138/PortWINE into Boria138-wine-metadata 2025-07-24 00:27:03 +03:00
Mikhail Tergoev
0ff029f335 check for stable scripts only 2025-07-24 00:20:16 +03:00
1b0683772e VULKAN_VERSION_CHECK: refactor driver version detect 2025-07-23 23:45:31 +05:00
c2ff9aea0a Improved for dxvk-sarek and new 3d api 2025-07-23 23:22:03 +05:00
ee108295f4 STABLE DXVK and VKD3D changed to SAREK 2025-07-23 21:58:43 +05:00
3a57d159dd SORT_STABLE changed to SORT_SAREK 2025-07-23 21:47:26 +05:00
bdb90516a6 Improved vulkan driver detection condition for PW_VULKAN_USE 2025-07-23 21:39:36 +05:00
90110f1d26 chore(gui_proton_downloader): use metadata from my repo instead of gh api
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-23 20:57:56 +05:00
7c6ecdd518 Refactoring 3D api, added dxvk, vkd3d sarek for stable 2025-07-23 18:38:11 +05:00
9c1cd17ea4 Added NUDA_CPU_CB for hide the setting when it is not useful 2025-07-22 11:48:23 +05:00
89539538a8 AMD_VULKAN_CB: Instead of off, the state is now not displayed 2025-07-22 09:23:06 +05:00
1cd0b569b8 gui_edit_db: Instead of disabling, used hiding settings 2025-07-22 08:11:07 +05:00
7 changed files with 223 additions and 169 deletions

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-21 16:53+0300\n" "POT-Creation-Date: 2025-07-23 21:55+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"
@@ -67,13 +67,10 @@ msgstr ""
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "" msgstr ""
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK-Sarek, VKD3D (Vulkan v1.1+)"
msgstr "" msgstr ""
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D (Vulkan v1.3+)"
msgstr ""
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr "" msgstr ""
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
@@ -543,6 +540,9 @@ msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not "
"work with PROTON_LG and WINE_LG)" "work with PROTON_LG and WINE_LG)"
msgstr "" msgstr ""
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "" msgstr ""
@@ -1073,7 +1073,7 @@ msgid "Disable MangoHud and go to the previous menu"
msgstr "" msgstr ""
msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working " msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working "
"only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
msgid "Force the vertical sync to avoid tearing or prevent the GPU from " msgid "Force the vertical sync to avoid tearing or prevent the GPU from "

View File

@@ -8,8 +8,8 @@ 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-21 16:53+0300\n" "POT-Creation-Date: 2025-07-23 21:55+0500\n"
"PO-Revision-Date: 2025-07-01 20:00+0300\n" "PO-Revision-Date: 2025-07-21 23:18+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: es_ES\n" "Language: es_ES\n"
@@ -87,14 +87,11 @@ msgstr "Usar Wine del sistema"
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (Para tarjetas de video sin Vulkan)" msgstr "WineD3D OpenGL (Para tarjetas de video sin Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK-Sarek, VKD3D (Vulkan v1.1+)"
msgstr "DXVK heredado (Vulkan v1.1)" msgstr "DXVK-Sarek, VKD3D (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D (Vulkan v1.3+)"
msgstr "DXVK estable, VKD3D (Vulkan v1.2)" msgstr "Más nuevo DXVK, VKD3D (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
msgstr "OBTENER OTRO WINE" msgstr "OBTENER OTRO WINE"
@@ -661,6 +658,9 @@ msgstr ""
"Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona " "Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona "
"con PROTON_LG y WINE_LG)" "con PROTON_LG y WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK" msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK"
@@ -1316,9 +1316,10 @@ msgstr "Iniciar vkcube para previsualizar los cambios"
msgid "Disable MangoHud and go to the previous menu" msgid "Disable MangoHud and go to the previous menu"
msgstr "Desactivar MangoHud y volver al menú anterior" msgstr "Desactivar MangoHud y volver al menú anterior"
#, fuzzy
msgid "" msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
"Usa DirectX 12 para dgVoodoo2. No siempre funciona mejor. (Funciona solo con " "Usa DirectX 12 para dgVoodoo2. No siempre funciona mejor. (Funciona solo con "
"dxvk/vkd3d más nuevos y estables) (Configuraciones de Direct3D y Glide)" "dxvk/vkd3d más nuevos y estables) (Configuraciones de Direct3D y Glide)"
@@ -2193,6 +2194,9 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS" msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "DXVK heredado (Vulkan v1.1)"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)" #~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr "" #~ msgstr ""
#~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)" #~ "Habilitar el traductor de DLSS en FSR 2 en juegos DirectX 12 (CyberFSR2)"
@@ -2241,8 +2245,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-21 16:53+0300\n" "POT-Creation-Date: 2025-07-23 21:55+0500\n"
"PO-Revision-Date: 2025-07-21 16:55+0300\n" "PO-Revision-Date: 2025-07-23 21:56+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 ""
@@ -86,14 +86,11 @@ msgstr "Использовать системную версию wine"
msgid "WineD3D OpenGL (For video cards without Vulkan)" msgid "WineD3D OpenGL (For video cards without Vulkan)"
msgstr "WineD3D OpenGL (для видеокарт без поддержки Vulkan)" msgstr "WineD3D OpenGL (для видеокарт без поддержки Vulkan)"
msgid "Legacy DXVK (Vulkan v1.1)" msgid "DXVK-Sarek, VKD3D (Vulkan v1.1+)"
msgstr "Устаревший DXVK (Vulkan v1.1)" msgstr "DXVK-Sarek, VKD3D (Vulkan v1.1+)"
msgid "Stable DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D (Vulkan v1.3+)"
msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgstr "Новейшие DXVK, VKD3D (Vulkan v1.3+)"
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)"
msgid "GET-OTHER-WINE" msgid "GET-OTHER-WINE"
msgstr "Скачать другие версии wine" msgstr "Скачать другие версии wine"
@@ -342,8 +339,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:"
@@ -477,8 +474,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 ""
@@ -676,6 +673,11 @@ msgstr ""
"Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или " "Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или "
"proton. (Не работает с PROTON_LG и WINE_LG)" "proton. (Не работает с PROTON_LG и WINE_LG)"
msgid "Use async version of dxvk-sarek. (May work better or vice versa)"
msgstr ""
"Использовать асинхронную версию dxvk-sarek. (Может работать лучше, либо "
"наоборот)"
msgid "Disable asynchronous calls for VULKAN and DXVK modes" msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK" msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK"
@@ -1315,9 +1317,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 "
@@ -1337,11 +1339,11 @@ msgstr "Отключить MangoHud и перейти в предыдущее м
msgid "" msgid ""
"Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on "
"newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" "newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)"
msgstr "" msgstr ""
"Принудительно транслировать dgVoodoo2 в DirectXD 12 (работает только с " "Принудительно транслировать dgVoodoo2 в DirectXD 12 (работает только с "
"новейшими и стабильными версиями dxvk и vkd3d. Может вызвать проблемы с " "новейшими и sarek версиями dxvk и vkd3d. Может вызвать проблемы с запуском "
"запуском игр) (Direct3D + Glide)" "игр) (Direct3D + Glide)"
msgid "" msgid ""
"Force the vertical sync to avoid tearing or prevent the GPU from rendering " "Force the vertical sync to avoid tearing or prevent the GPU from rendering "
@@ -2168,6 +2170,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ" msgstr "БИБЛИОТЕКИ"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "Устаревший DXVK (Vulkan v1.1)"
#~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)" #~ msgid "Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)"
#~ msgstr "" #~ msgstr ""
#~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). " #~ "Включить трансляцию DLSS в FSR 2 в играх на DirectX 12 (CyberFSR2). "
@@ -2230,14 +2235,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 ""
@@ -2524,8 +2529,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 ""
@@ -2534,8 +2539,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

@@ -122,6 +122,7 @@ rm_from_array () {
if [[ \$rm_names =~ \$element ]] ; then if [[ \$rm_names =~ \$element ]] ; then
unset $array_name[\$count] unset $array_name[\$count]
$array_name=(\${$array_name[@]}) $array_name=(\${$array_name[@]})
((count--))
fi fi
((count++)) ((count++))
done" done"
@@ -2160,8 +2161,8 @@ pw_check_and_download_wine () {
} }
pw_check_and_download_dxvk_and_vkd3d () { pw_check_and_download_dxvk_and_vkd3d () {
# Download stable and git version DXVK # Download DXVK versions
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_GIT_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}" print_info "Download and install DXVK v.${DXVK_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \ if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
@@ -2190,8 +2191,8 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi fi
done done
# Download stable and git version VKD3D # Download VKD3D versions
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_GIT_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}" print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \ if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
@@ -2696,6 +2697,8 @@ 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"
@@ -2727,7 +2730,6 @@ pw_port_update () {
else else
curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver" curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver" sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver"
"${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \ "${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \
--button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \ --button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \
@@ -2768,6 +2770,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."
echo "Restarting PP after update..." echo "Restarting PP after update..."
restart_pp restart_pp
fi fi
@@ -2804,16 +2807,22 @@ pw_check_command () {
} }
export -f pw_check_command export -f pw_check_command
pw_get_tmp_files () { pw_check_vulkan () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a" if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
do pw_check_command "$f_cmd"
done
TIMEOUT_CMD="5" TIMEOUT_CMD="5"
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 fi
fi
}
pw_get_tmp_files () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
do pw_check_command "$f_cmd"
done
pw_check_vulkan
# GALLIUM NINE # GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH unset FIND_D3D_MODULE D3D_MODULE_PATH
@@ -2918,7 +2927,7 @@ pw_skip_get_info () {
export AMD_VULKAN_DRIVER_LIST export AMD_VULKAN_DRIVER_LIST
export AMD_VULKAN_CB=":CB" export AMD_VULKAN_CB=":CB"
else else
export AMD_VULKAN_CB=":DCB" export AMD_VULKAN_CB=":LBLH"
fi fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo) logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
@@ -3761,15 +3770,21 @@ fi
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)
# STABLE DXVK AND VKD3D # DXVK-Sarek AND VKD3D
print_info "DXVK v.${DXVK_STABLE_VER} in use" print_info "DXVK v.${DXVK_SAREK_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" print_info "VKD3D-PROTON v.${VKD3D_SAREK_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" if [[ $PW_USE_SAREK_ASYNC == "1" ]] ; then
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek-async"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" export ASYNC_DRAW_CALL_THRESHOLD="1"
export DXVK_ALL_CORES="1"
else
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek"
fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12core d3d8" CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;; ;;
2) 2)
# NEWEST DXVK AND VKD3D # NEWEST DXVK AND VKD3D
@@ -3782,15 +3797,6 @@ fi
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10" CP_WINE_FILES="d3d10_1 d3d10"
;; ;;
3)
# LEGACY DXVK
print_info "DXVK v.${DXVK_LEGACY_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d8"
;;
esac esac
if [[ $PW_USE_GALLIUM_NINE == "1" ]] \ if [[ $PW_USE_GALLIUM_NINE == "1" ]] \
@@ -3842,7 +3848,6 @@ fi
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \
&& [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
&& [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then
export DXVK_ASYNC="1"
if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_WINE_FILES="" CP_WINE_FILES=""
@@ -3918,17 +3923,9 @@ fi
0) 0)
rm_from_var CP_WINE_FILES "d3d9 d3d8" rm_from_var CP_WINE_FILES "d3d9 d3d8"
;; ;;
1) 1|2|6)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
2)
rm_from_var CP_DXVK_FILES "d3d9 d3d8" rm_from_var CP_DXVK_FILES "d3d9 d3d8"
;; ;;
3)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
esac esac
fi fi
fi fi
@@ -4153,9 +4150,9 @@ fi
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll" try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
else else
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll" try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi fi
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b" var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else else
@@ -5114,54 +5111,58 @@ gui_proton_downloader () {
pw_start_progress_bar_block "${translations[Check new version WINE...]}" pw_start_progress_bar_block "${translations[Check new version WINE...]}"
METADATA_URL="https://git.linux-gaming.ru/Boria138/PortProton-Wine-Metadata/raw/branch/main/wine_metadata.json"
METADATA=$(curl -s "$METADATA_URL")
if [[ -z "$METADATA" ]] ; then
yad_error "${translations[Error: failed to fetch metadata.]}"
restart_pp
fi
# PROTON_GE # PROTON_GE
read -r -d '' -a PROTON_GE_GIT < <(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4) PROTON_GE_GIT=($(echo "$METADATA" | jq -r '.proton_ge[]?.name' 2>/dev/null))
if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_GE_GIT[@]}" ; do for PGEGIT in "${PROTON_GE_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
done done
sed -i -e '/Proton-6.5-GE-2/,$d' -e '/github-action/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git"
fi fi
# WINE_KRON4EK # WINE_KRON4EK
read -r -d '' -a WINE_KRON4EK < <(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4) WINE_KRON4EK=($(echo "$METADATA" | jq -r '.wine_kron4ek[]?.name' 2>/dev/null))
if [[ -n "${WINE_KRON4EK[0]}" ]] ; then if [[ -n "${WINE_KRON4EK[0]}" ]] ; then
for PGEGIT in "${WINE_KRON4EK[@]}" ; do for PGEGIT in "${WINE_KRON4EK[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
done done
sed -i -e '/6.3/,$d' -e '/-x86/d' -e '/-wow64/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
fi fi
# PROTON_LG # PROTON_LG
read -r -d '' -a PROTON_PW_GIT < <(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r) PROTON_PW_GIT=($(echo "$METADATA" | jq -r '.proton_lg[]?.name' 2>/dev/null))
if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then
for PPWGIT in "${PROTON_PW_GIT[@]}" ; do for PPWGIT in "${PROTON_PW_GIT[@]}" ; do
echo "${PPWGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git" echo "${PPWGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
done done
sed -i -e "/${PW_WINE_LG_VER}/d" -e '/plugins/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git"
fi fi
# PROTON_CACHYOS # PROTON_CACHYOS
read -r -d '' -a PROTON_CACHYOS_GIT < <(curl -s "https://api.github.com/repos/CachyOS/proton-cachyos/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | grep -v "v3" | grep -v "znver4") PROTON_CACHYOS_GIT=($(echo "$METADATA" | jq -r '.proton_cachyos[]?.name' 2>/dev/null))
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
done done
fi fi
# PROTON_SAREK # PROTON_SAREK
read -r -d '' -a PROTON_SAREK_GIT < <(curl -s "https://api.github.com/repos/pythonlover02/Proton-Sarek/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4) PROTON_SAREK_GIT=($(echo "$METADATA" | jq -r '.proton_sarek[]?.name' 2>/dev/null))
if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
done done
fi fi
# Proton-EM # PROTON_EM
read -r -d '' -a PROTON_EM_GIT < <(curl -s "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4) PROTON_EM_GIT=($(echo "$METADATA" | jq -r '.proton_em[]?.name' 2>/dev/null))
if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_EM_GIT[@]}" ; do for PGEGIT in "${PROTON_EM_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_em_git" echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
done done
fi fi
@@ -5287,17 +5288,31 @@ gui_proton_downloader () {
fi fi
pw_download_get_wine () { pw_download_get_wine () {
print_info "Download and install ${VERSION_WINE_GIT}..." local VERSION="$1"
FILENAME="$(basename "${URL_VERSION_PROTON_GIT}")" print_info "Download and install ${VERSION}..."
if [[ "${URL_VERSION_PROTON_GIT}" =~ _LG ]] URL_VERSION_PROTON_GIT=$(echo "$METADATA" | jq -r --arg version "$VERSION" '[
then USE_MIRROR="" (.proton_ge[] | select(.name == $version) | .url),
else USE_MIRROR="no_mirror" (.wine_kron4ek[] | select(.name == $version) | .url),
(.proton_lg[] | select(.name == $version) | .url),
(.proton_cachyos[] | select(.name == $version) | .url),
(.proton_sarek[] | select(.name == $version) | .url),
(.proton_em[] | select(.name == $version) | .url)
] | .[]' | head -n 1)
if [[ -z "$URL_VERSION_PROTON_GIT" ]]; then
yad_error "${translations[Error: no URL found for version ${VERSION}.]}"
return 1
fi
FILENAME=$(echo "$URL_VERSION_PROTON_GIT" | awk -F/ '{print $NF}')
if [[ "$URL_VERSION_PROTON_GIT" =~ _LG ]]; then
USE_MIRROR=""
else
USE_MIRROR="no_mirror"
fi fi
if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then
if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}" try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}"
if [[ -n "${portwine_exe}" ]] ; then if [[ -n "${portwine_exe}" ]] ; then
PW_WINE_USE=${VERSION_WINE_GIT^^} PW_WINE_USE=${VERSION^^}
edit_db_from_gui PW_WINE_USE edit_db_from_gui PW_WINE_USE
fi fi
else else
@@ -5331,23 +5346,12 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do pw_download_get_wine "$GIVE_ALL_WINE"
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
done done
edit_db_from_gui edit_db_from_gui
restart_pp restart_pp
else else
print_error "$PW_WINE_USE" pw_download_get_wine "$VERSION_WINE_GIT"
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
fi fi
} }
export -f gui_proton_downloader export -f gui_proton_downloader
@@ -5364,10 +5368,17 @@ gui_edit_db () {
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
) )
if check_wayland_session
then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT
else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
fi
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] || [[ $PW_VULKAN_USE == "0" ]] ; then
rm_from_array "PW_EDIT_DB_LIST" PW_USE_SUPPLIED_DXVK_VKD3D
fi
check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME
# GALLIUM NINE # GALLIUM NINE
[[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE [[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE
[[ $PW_VULKAN_USE == "1" ]] && add_to_array "PW_EDIT_DB_LIST" PW_USE_SAREK_ASYNC
PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]} PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]}
PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]} PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]}
@@ -5415,6 +5426,7 @@ gui_edit_db () {
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]} PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]} PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]}
PW_USE_SAREK_ASYNC_INFO=${translations[Use async version of dxvk-sarek. (May work better or vice versa)]}
# PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} # PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]}
# PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]} # PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]}
@@ -5427,29 +5439,14 @@ gui_edit_db () {
VKD3D_CB="DCB" VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN" DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN"
;; ;;
1|2) 1|2|6)
# Stable, Newest # Sarek, Newest
VKD3D_CB="CB" VKD3D_CB="CB"
;; ;;
3)
# Legacy
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING"
;;
esac esac
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
|| [[ $PW_VULKAN_USE == "0" ]] ; then
DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
fi
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC" [[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC"
if check_wayland_session
then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT"
else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR"
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" ]]
@@ -5518,6 +5515,14 @@ gui_edit_db () {
AMD_VULKAN_VAR="disabled" AMD_VULKAN_VAR="disabled"
fi fi
[[ $AMD_VULKAN_CB == ":LBLH" ]] && translations[Select needed AMD vulkan implementation]=""
if [[ $NUMA_NODE_LIST == "0" ]] ; then
NUDA_CPU_CB=":LBLH"
translations[NUMA node for CPU affinity]=""
else
NUDA_CPU_CB=":CB"
fi
"${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \ "${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \
--field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \ --field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \
--field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \ --field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \
@@ -5542,7 +5547,7 @@ mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \ --field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores. --field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \ Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null & 1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \ "${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
@@ -6021,7 +6026,7 @@ gui_dgvoodoo2 () {
PW_DGV2_INACTIVE_APP_STATE PW_DGV2_INACTIVE_APP_STATE
) )
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)]} PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]} PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]}
PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]} PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]}
PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]} PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]}
@@ -6046,7 +6051,7 @@ gui_dgvoodoo2 () {
[[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING [[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING
case "${PW_VULKAN_USE}" in case "${PW_VULKAN_USE}" in
0|3) 0)
DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 DISABLE_DGV2_LIST="PW_DGV2_USE_DX12
" "
;; ;;
@@ -7080,9 +7085,8 @@ portwine_start_debug () {
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
case "$PW_VULKAN_USE" in case "$PW_VULKAN_USE" in
0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;; 0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
*) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
esac esac
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"

View File

@@ -520,16 +520,8 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}"
fi fi
SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}"
SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}" SORT_SAREK="${translations[DXVK-Sarek, VKD3D (Vulkan v1.1+)]}"
SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}" SORT_NEWEST="${translations[Newest DXVK, VKD3D (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;;
3|5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;;
esac
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}"
@@ -575,6 +567,55 @@ if [[ -f "$portwine_exe" ]] ; then
fi fi
fi fi
[[ $PW_VULKAN_USE =~ [3-5] ]] && unset PW_VULKAN_USE
if [[ -z $PW_VULKAN_USE ]] ; then
pw_check_vulkan
if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
unset VULKAN_VERSION_CHECK VULKAN_DRIVER_VERSION VULKAN_DEVICE_NAME
count="0"
while read -r line ; do
[[ $line =~ apiVersion ]] && VULKAN_VERSION_CHECK["$count"]="$line"
[[ $line =~ driverVersion ]] && VULKAN_DRIVER_VERSION["$count"]="$line"
if [[ $line =~ deviceName ]] ; then
if [[ $line == *"$PW_GPU_USE"* ]] ; then
VULKAN_DEVICE_NAME["$count"]="$PW_GPU_USE"
break
else
if [[ $line =~ llvmpipe ]] ; then
unset 'VULKAN_VERSION_CHECK["$count"]' 'VULKAN_DRIVER_VERSION["$count"]'
else
VULKAN_DEVICE_NAME["$count"]="$line"
(( count++ ))
fi
fi
fi
done < "${PW_TMPFS_PATH}/vulkaninfo.tmp"
if [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[3-9]+. ]] ; then
for number in $(seq 0 $(( ${#VULKAN_VERSION_CHECK[@]} - 1 ))) ; do
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]//*= /}"
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]// (*/}"
if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} > 25 ]] \
|| [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} > 550.54.13 ]] ; then
export PW_VULKAN_USE="2"
break
else
export PW_VULKAN_USE="6"
fi
done
elif [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[1-2]. ]] ; then
export PW_VULKAN_USE="1"
fi
else
export PW_VULKAN_USE="0"
fi
fi
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
esac
export KEY_START="$RANDOM" export KEY_START="$RANDOM"
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \ "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
@@ -822,6 +863,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_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM" KEY_MENU="$RANDOM"
IFS="%" IFS="%"
@@ -967,9 +1010,8 @@ fi
case "${VULKAN_MOD}" in case "${VULKAN_MOD}" in
"$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;; "$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_SAREK" ) export PW_VULKAN_USE="1" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;;
"$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;;
esac esac
init_wine_ver init_wine_ver

View File

@@ -43,6 +43,7 @@ export PW_USE_GALLIUM_NINE="0"
export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_ZINK="0"
export PW_USE_WINED3D_VULKAN="0" 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 WINEUSERNAME="steamuser" export WINEUSERNAME="steamuser"
###DEFAULT_WINE### ###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG" export PW_WINE_USE="PROTON_LG"
@@ -56,12 +57,10 @@ export PW_WINE_LG_VER="WINE_LG_10-12"
export PW_WINE_FULLSCREEN_FSR="1" export PW_WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_MODE="ultra" export WINE_FULLSCREEN_FSR_MODE="ultra"
###DXVK_AND_VKD3D### ###DXVK_AND_VKD3D###
export PW_VULKAN_USE="2"
export VKD3D_LIMIT_TESS_FACTORS="64" export VKD3D_LIMIT_TESS_FACTORS="64"
export DXVK_LEGACY_VER="1.6.1" export DXVK_SAREK_VER="sarek-1.11.0"
export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.6.1-368" export DXVK_GIT_VER="2.6.1-368"
export VKD3D_STABLE_VER="1.1-2602" export VKD3D_SAREK_VER="sarek-2.6.0"
export VKD3D_GIT_VER="1.1-4655" export VKD3D_GIT_VER="1.1-4655"
###VKBASALT### ###VKBASALT###
export PW_VKBASALT_EFFECTS="Curves:cas" export PW_VKBASALT_EFFECTS="Curves:cas"