Compare commits

...

33 Commits

Author SHA1 Message Date
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
Mikhail Tergoev
779fc18eb5 updated locales 2025-07-24 16:56:23 +03:00
Mikhail Tergoev
b5564b32c5 refactored 3D Api 2025-07-24 16:56:08 +03:00
Mikhail Tergoev
812cadac41 Merge branch 'Htylol-added_dxvk_stable-2' into devel 2025-07-24 15:08:00 +03:00
Mikhail Tergoev
6bee5b77f1 Merge branch 'added_dxvk_stable-2' of github.com:Htylol/PortWINE into Htylol-added_dxvk_stable-2 2025-07-24 15:07:53 +03:00
a480074dc8 Refactoring 3D api number 2 (Added stable 1.3+ dvxk,vkd3d) 2025-07-24 17:07:28 +05:00
Mikhail Tergoev
a841a3a72c Merge branch 'Boria138-cachy-v3' into devel 2025-07-24 12:54:16 +03:00
Mikhail Tergoev
cf9f9c4561 Merge branch 'cachy-v3' of github.com:Boria138/PortWINE into Boria138-cachy-v3 2025-07-24 12:54:06 +03:00
Mikhail Tergoev
152c8191af updated PROTON_LG to 10-10 (with ntsync support) 2025-07-24 12:39:59 +03:00
b41bf42d2a feat: added cachy v3 to get_other_wine if supported
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-24 12:49:36 +05:00
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
9 changed files with 345 additions and 177 deletions

View File

@@ -2,6 +2,14 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###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)
###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes
* cumulative update of stable version of PortProton scripts
* removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE)

View File

@@ -2,6 +2,14 @@
-----------------------------------------
История изменений:
###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)
###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
* удалена вкладка скачивания сторонних версий WINE-GE-GUSTOM (устаревшие версии WINE)

View File

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

View File

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

View File

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

View File

@@ -122,6 +122,7 @@ rm_from_array () {
if [[ \$rm_names =~ \$element ]] ; then
unset $array_name[\$count]
$array_name=(\${$array_name[@]})
((count--))
fi
((count++))
done"
@@ -870,9 +871,7 @@ check_vendor_gpu () {
fi
if command -v glxinfo &>/dev/null ; then
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
glxinfo -B &> "${PW_TMPFS_PATH}/glxinfo.tmp"
fi
pw_check_glxinfo
case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
@@ -2160,8 +2159,8 @@ pw_check_and_download_wine () {
}
pw_check_and_download_dxvk_and_vkd3d () {
# Download stable and git version DXVK
for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do
# Download DXVK versions
for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_OLD_VER}" "${DXVK_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then
print_info "Download and install DXVK v.${DXVK_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
@@ -2190,8 +2189,8 @@ pw_check_and_download_dxvk_and_vkd3d () {
fi
done
# Download stable and git version VKD3D
for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do
# Download VKD3D versions
for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_OLD_VER}" "${VKD3D_NEW_VER}" ; do
if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
@@ -2474,7 +2473,7 @@ pw_init_db () {
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
edit_db_from_gui PW_WINE_USE PW_PREFIX_NAME
fi
fi
@@ -2727,7 +2726,6 @@ pw_port_update () {
else
curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
sed -i "/Scripts version ${scripts_install_ver}/,$ d" "${PORT_WINE_TMP_PATH}/curent_var_ver"
"${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \
--button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \
@@ -2768,6 +2766,7 @@ pw_port_update () {
try_remove_dir "${PORT_WINE_TMP_PATH}/$PW_NAME_ARCHIVE/"
echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
unset SKIP_CHECK_UPDATES
curl -X GET "http://cloud.linux-gaming.ru:8081/api/download/${scripts_current_ver}" &>/dev/null
echo "Restarting PP after update..."
restart_pp
fi
@@ -2804,16 +2803,29 @@ pw_check_command () {
}
export -f pw_check_command
pw_check_vulkan () {
if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
TIMEOUT_CMD="5"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
fi
}
pw_check_glxinfo () {
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
TIMEOUT_CMD="5"
pw_check_command glxinfo -B
fi
}
pw_get_tmp_files () {
for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
do pw_check_command "$f_cmd"
done
TIMEOUT_CMD="5"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
pw_check_vulkan
# GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH
@@ -2918,7 +2930,7 @@ pw_skip_get_info () {
export AMD_VULKAN_DRIVER_LIST
export AMD_VULKAN_CB=":CB"
else
export AMD_VULKAN_CB=":DCB"
export AMD_VULKAN_CB=":LBLH"
fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
@@ -3756,48 +3768,55 @@ fi
# WINED3D OPENGL
print_info "Use WINED3D OpenGL"
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
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"
;;
1)
# STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_STABLE_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 libvkd3d-shader-1"
CP_WINE_FILES="d3d12core d3d8"
# DXVK-Sarek AND VKD3D
print_info "DXVK v.${DXVK_SAREK_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_SAREK_VER} in use"
if [[ $PW_USE_SAREK_ASYNC == "1" ]] ; then
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek-async"
export ASYNC_DRAW_CALL_THRESHOLD="1"
export DXVK_ALL_CORES="1"
else
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek"
fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;;
2)
# NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_GIT_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
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"
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10"
;;
3)
# LEGACY DXVK
print_info "DXVK v.${DXVK_LEGACY_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d8"
6)
# STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_OLD_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10"
;;
esac
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
if [[ $PW_USE_GALLIUM_NINE == "1" ]] \
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
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"
fi
@@ -3842,7 +3861,6 @@ fi
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \
&& [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
&& [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then
export DXVK_ASYNC="1"
if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_WINE_FILES=""
@@ -3918,17 +3936,9 @@ fi
0)
rm_from_var CP_WINE_FILES "d3d9 d3d8"
;;
1)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
2)
1|2|6)
rm_from_var CP_DXVK_FILES "d3d9 d3d8"
;;
3)
rm_from_var CP_DXVK_FILES "d3d9"
rm_from_var CP_WINE_FILES "d3d8"
;;
esac
fi
fi
@@ -3945,7 +3955,7 @@ fi
done
# DGVOODOO2 settings:
if [[ "${PW_DGV2_USE_DX12}" == "1" ]] ; then
if [[ "${PW_VULKAN_USE}" == "1" ]] || [[ "${PW_VULKAN_USE}" == "2" ]]
if [[ "${PW_VULKAN_USE}" =~ ^(1|2|6)$ ]]
then sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
fi
fi
@@ -4153,9 +4163,9 @@ fi
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
else
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else
@@ -5114,57 +5124,77 @@ gui_proton_downloader () {
pw_start_progress_bar_block "${translations[Check new version WINE...]}"
METADATA_URL="https://git.linux-gaming.ru/Boria138/PortProton-Wine-Metadata/raw/branch/main/wine_metadata.json"
METADATA=$(curl -s "$METADATA_URL")
if [[ -z "$METADATA" ]] ; then
yad_error "${translations[Error: failed to fetch metadata.]}"
restart_pp
fi
# PROTON_GE
read -r -d '' -a PROTON_GE_GIT < <(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
PROTON_GE_GIT=($(echo "$METADATA" | jq -r '.proton_ge[]?.name' 2>/dev/null))
if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_GE_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
done
sed -i -e '/Proton-6.5-GE-2/,$d' -e '/github-action/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git"
fi
# WINE_KRON4EK
read -r -d '' -a WINE_KRON4EK < <(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
WINE_KRON4EK=($(echo "$METADATA" | jq -r '.wine_kron4ek[]?.name' 2>/dev/null))
if [[ -n "${WINE_KRON4EK[0]}" ]] ; then
for PGEGIT in "${WINE_KRON4EK[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
done
sed -i -e '/6.3/,$d' -e '/-x86/d' -e '/-wow64/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
fi
# PROTON_LG
read -r -d '' -a PROTON_PW_GIT < <(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r)
PROTON_PW_GIT=($(echo "$METADATA" | jq -r '.proton_lg[]?.name' 2>/dev/null))
if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then
for PPWGIT in "${PROTON_PW_GIT[@]}" ; do
echo "${PPWGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
done
sed -i -e "/${PW_WINE_LG_VER}/d" -e '/plugins/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git"
fi
# PROTON_CACHYOS
read -r -d '' -a PROTON_CACHYOS_GIT < <(curl -s "https://api.github.com/repos/CachyOS/proton-cachyos/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | grep -v "v3" | grep -v "znver4")
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
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 "${PPWGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
done
fi
# PROTON_SAREK
read -r -d '' -a PROTON_SAREK_GIT < <(curl -s "https://api.github.com/repos/pythonlover02/Proton-Sarek/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
# PROTON_CACHYOS
PROTON_CACHYOS_GIT=($(echo "$METADATA" | jq -r '.proton_cachyos[]?.name' 2>/dev/null))
if [[ -n "${PROTON_CACHYOS_GIT[0]}" ]] ; then
# The Pentium/Celeron don't have the full instruction set, but /lib/ld-linux-x86-64.so.2 --help | grep -B 3 -E “x86-64” says otherwise, so this is where checking all flags comes in (code from https://dl.xanmod.org/check_x86-64_psabi.sh)
CPU_LEVEL=$(awk '
BEGIN {
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
if (level > 0) { print level; exit level + 1 }
exit 1
}' /proc/cpuinfo)
for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do
if [[ "$PGEGIT" =~ v3 ]] && [[ "$CPU_LEVEL" -lt 3 ]]; then
continue
else
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
fi
done
fi
# PROTON_SAREK
PROTON_SAREK_GIT=($(echo "$METADATA" | jq -r '.proton_sarek[]?.name' 2>/dev/null))
if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
done
fi
# Proton-EM
read -r -d '' -a PROTON_EM_GIT < <(curl -s "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
# PROTON_EM
PROTON_EM_GIT=($(echo "$METADATA" | jq -r '.proton_em[]?.name' 2>/dev/null))
if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_EM_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
done
fi
pw_stop_progress_bar
if [[ -z "${PROTON_PW_GIT}" ]] ; then
@@ -5287,17 +5317,31 @@ gui_proton_downloader () {
fi
pw_download_get_wine () {
print_info "Download and install ${VERSION_WINE_GIT}..."
FILENAME="$(basename "${URL_VERSION_PROTON_GIT}")"
if [[ "${URL_VERSION_PROTON_GIT}" =~ _LG ]]
then USE_MIRROR=""
else USE_MIRROR="no_mirror"
local VERSION="$1"
print_info "Download and install ${VERSION}..."
URL_VERSION_PROTON_GIT=$(echo "$METADATA" | jq -r --arg version "$VERSION" '[
(.proton_ge[] | select(.name == $version) | .url),
(.wine_kron4ek[] | select(.name == $version) | .url),
(.proton_lg[] | select(.name == $version) | .url),
(.proton_cachyos[] | select(.name == $version) | .url),
(.proton_sarek[] | select(.name == $version) | .url),
(.proton_em[] | select(.name == $version) | .url)
] | .[]' | head -n 1)
if [[ -z "$URL_VERSION_PROTON_GIT" ]]; then
yad_error "${translations[Error: no URL found for version ${VERSION}.]}"
return 1
fi
FILENAME=$(echo "$URL_VERSION_PROTON_GIT" | awk -F/ '{print $NF}')
if [[ "$URL_VERSION_PROTON_GIT" =~ _LG ]]; then
USE_MIRROR=""
else
USE_MIRROR="no_mirror"
fi
if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" "$USE_MIRROR" ; then
if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}"
if [[ -n "${portwine_exe}" ]] ; then
PW_WINE_USE=${VERSION_WINE_GIT^^}
PW_WINE_USE=${VERSION^^}
edit_db_from_gui PW_WINE_USE
fi
else
@@ -5331,23 +5375,12 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
pw_download_get_wine "$GIVE_ALL_WINE"
done
edit_db_from_gui
restart_pp
else
print_error "$PW_WINE_USE"
for GIVE_WINE_URL in "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
done
pw_download_get_wine ""
pw_download_get_wine "$VERSION_WINE_GIT"
fi
}
export -f gui_proton_downloader
@@ -5355,19 +5388,26 @@ export -f gui_proton_downloader
# GUI EDIT_DB
gui_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM
PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE
PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2
PW_USE_ESYNC PW_USE_FSYNC PW_USE_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_OPTISCALER
PW_USE_LS_FRAME_GEN PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS
PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER
PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE
PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_GAMESCOPE
)
if check_wayland_session
then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT
else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
fi
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] || [[ $PW_VULKAN_USE == "0" ]] ; then
rm_from_array "PW_EDIT_DB_LIST" PW_USE_SUPPLIED_DXVK_VKD3D
fi
check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME
# GALLIUM NINE
[[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE
[[ $PW_VULKAN_USE == "1" ]] && add_to_array "PW_EDIT_DB_LIST" PW_USE_SAREK_ASYNC
PW_MANGOHUD_INFO=${translations[Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)]}
PW_MANGOHUD_USER_CONF_INFO=${translations[Forced use of MANGOHUD system settings (GOverlay, etc.)]}
@@ -5415,6 +5455,7 @@ gui_edit_db () {
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]}
PW_USE_SAREK_ASYNC_INFO=${translations[Use async version of dxvk-sarek. (May work better or vice versa)]}
# PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]}
# PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]}
@@ -5427,29 +5468,14 @@ gui_edit_db () {
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN"
;;
1|2)
# Stable, Newest
1|2|6)
# Sarek, Newest
VKD3D_CB="CB"
;;
3)
# Legacy
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING"
;;
esac
if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
|| [[ $PW_VULKAN_USE == "0" ]] ; then
DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
fi
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC"
if check_wayland_session
then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT"
else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR"
fi
unset ADD_CHK_BOX_EDIT_DB
for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do
if [[ "${!int_to_boole}" == "1" ]]
@@ -5518,6 +5544,14 @@ gui_edit_db () {
AMD_VULKAN_VAR="disabled"
fi
[[ $AMD_VULKAN_CB == ":LBLH" ]] && translations[Select needed AMD vulkan implementation]=""
if [[ $NUMA_NODE_LIST == "0" ]] ; then
NUDA_CPU_CB=":LBLH"
translations[NUMA node for CPU affinity]=""
else
NUDA_CPU_CB=":CB"
fi
"${pw_yad}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \
--field="${translations[Change the version of <b>WINDOWS</b> emulation]}!${translations[Changing the <b>WINDOWS</b> emulation version may be required to run older games. <b>WINDOWS</b> versions below 10 do not support new games with DirectX 12]} :CB" "${ADD_WINVER_EDIT_DB}" \
--field="${translations[AUTOINSTALL WITH <b>WINETRICKS</b>]}!${translations[Automatically install with <b>WINETRICKS</b> additional libraries required to run the game/program. List of libraries separated by spaces]} :CBE" "$(combobox_fix --empty "${PW_DLL_INSTALL}" "vcrun2019 corefonts lucida")" \
@@ -5542,7 +5576,7 @@ mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
@@ -6021,7 +6055,7 @@ gui_dgvoodoo2 () {
PW_DGV2_INACTIVE_APP_STATE
)
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_USE_DX12_INFO=${translations[Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and sarek dxvk/vkd3d) (Direct3D and Glide settings)]}
PW_DGV2_FORCE_VSYNC_INFO=${translations[Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)]}
PW_DGV2_DGVOODOO_WATERMARK_INFO=${translations[Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)]}
PW_DGV2_ENABLE_CRT_INFO=${translations[CRT-like blurred appearance. (Direct3D and Glide settings)]}
@@ -6046,7 +6080,7 @@ gui_dgvoodoo2 () {
[[ "${PW_DGV2_ANTIALIASING}" == "0" ]] && export PW_DGV2_ANTIALIASING="disabled" && edit_db_from_gui PW_DGV2_ANTIALIASING
case "${PW_VULKAN_USE}" in
0|3)
0)
DISABLE_DGV2_LIST="PW_DGV2_USE_DX12
"
;;
@@ -7080,9 +7114,9 @@ portwine_start_debug () {
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
case "$PW_VULKAN_USE" in
0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER}, VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
3) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_NEW_VER}, VKD3D-PROTON v.${VKD3D_NEW_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
6) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_OLD_VER}, VKD3D-PROTON v.${VKD3D_OLD_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
*) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
esac
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"

View File

@@ -307,6 +307,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
export PW_FILESYSTEM
background_pid --start "pw_get_tmp_files" "1"
background_pid --start "pw_check_glxinfo" "2"
fi
# create lock file
@@ -495,6 +496,14 @@ esac
### GUI ###
INFO_3DAPI=${translations[Select DXVK and VKD3D versions for DirectX to Vulkan translation:
- The newest ones work only with MESA 25+ drivers, or NVIDIA 550.54.14+
- Stable ones work with any drivers, provided that the video card supports Vulkan version 1.3+
- Sarek works with almost any video card that supports Vulkan
- WineD3D OpenGL works on any PC, but with low performance and old games]}
INFO_WINE=${translations[Selecting a WINE version.]}
INFO_PREFIX=${translations[Select a prefix to launch the game/application (if you enter a non-existent name, a new prefix will be created).]}
unset PW_ADD_PREFIXES_TO_GUI
if [[ -d "${PORT_WINE_PATH}/data/prefixes/" ]] ; then
for PAIG in "${PORT_WINE_PATH}"/data/prefixes/* ; do
@@ -520,16 +529,9 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}"
fi
SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}"
SORT_LEGACY="${translations[Legacy DXVK (Vulkan v1.1)]}"
SORT_STABLE="${translations[Stable DXVK, VKD3D (Vulkan v1.2)]}"
SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_OPENGL" ;;
3|5) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;;
esac
SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
if [[ $PW_WINE_USE == PROTON_LG ]] ; then
PW_WINE_USE="${PW_PROTON_LG_VER}"
@@ -556,6 +558,24 @@ if [[ -f "$portwine_exe" ]] ; then
unset RESTART_PP_USED
gui_userconf
fi
if [[ -z $PW_VULKAN_USE ]] \
|| [[ $PW_VULKAN_USE == [3-5] ]]
then
if [[ -e "/sys/module/nvidia/version" ]] ;then
if [[ $(</sys/module/nvidia/version) > 550.54.13 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
else
background_pid --stop "pw_check_glxinfo" "2"
if [[ $(grep "Version:" "$PW_TMPFS_PATH/glxinfo.tmp" | awk '{print $2}') > 24.9.9 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
fi
fi
if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then
pw_create_gui_png
if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
@@ -575,15 +595,22 @@ if [[ -f "$portwine_exe" ]] ; then
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
export KEY_START="$RANDOM"
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 : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--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 \
@@ -624,9 +651,9 @@ if [[ -f "$portwine_exe" ]] ; then
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--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" \
@@ -822,6 +849,8 @@ else
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM"
IFS="%"
@@ -845,9 +874,9 @@ else
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \
--gui-type-layout="$MAIN_MENU_GUI_TYPE_LAYOUT" \
--field=" 3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field=" 3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \
--field=" Winetricks!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winetricks to install additional libraries to the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \
--field=" ${translations[Clear prefix]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Clear the prefix to fix problems]}":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \
@@ -967,9 +996,9 @@ fi
case "${VULKAN_MOD}" in
"$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="1" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;;
"$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;;
"$SORT_SAREK" ) export PW_VULKAN_USE="1" ;;
"$SORT_STABLE" ) export PW_VULKAN_USE="2" ;;
"$SORT_NEWEST" ) export PW_VULKAN_USE="6" ;;
esac
init_wine_ver

View File

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