From 9cee5b32e99ebf37bf44bbd4601dd62da5b9bcf9 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 26 Jul 2025 21:40:59 +0500 Subject: [PATCH 01/12] Updated the mechanics of detecting GPU drivers in the system --- data_from_portwine/locales/PortProton.pot | 21 +- .../locales/es/LC_MESSAGES/PortProton.po | 48 +++-- .../locales/ru/LC_MESSAGES/PortProton.po | 63 +++--- data_from_portwine/scripts/functions_helper | 189 ++++++++++++++---- data_from_portwine/scripts/start.sh | 35 +--- data_from_portwine/scripts/var | 1 - 6 files changed, 239 insertions(+), 118 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 5c87a3be..13050ecd 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-07-24 16:50+0300\n" + "POT-Creation-Date: 2025-07-26 21:39+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -581,6 +581,10 @@ msgid "A very dangerous way to hack the memory write timer in ntdll. This " "recommended not to change the value.)" msgstr "" +msgid "GLIBC version 2.38+ is required for use Lossless Scaling frame " + "generation" +msgstr "" + msgid "Change the version of WINDOWS emulation" msgstr "" @@ -1077,9 +1081,9 @@ msgstr "" msgid "Show current wine sync in use" msgstr "" -msgid "MangoHud settings (Keys R_SHIFT + F12 disable " - "MangoHud)\\nnote: To display help for each item, just hover " - "the mouse cursor over the text." +msgid "MangoHud settings (Keys R_SHIFT + F12 disable MangoHud)" + "\\nnote: To display help for each item, just hover the mouse " + "cursor over the text." msgstr "" msgid "Enabling fps limitation with MANGOHUD tools built into PortProton " @@ -1427,6 +1431,9 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "" +msgid "The graphics card does not support Vulkan" +msgstr "" + msgid "Recommended value" msgstr "" @@ -1623,12 +1630,6 @@ msgstr "" msgid "FONTS" msgstr "" -msgid "Attention working version of vulkan not detected!" -msgstr "" - -msgid "It is recommended to run games in OpenGL (low performance possible)!" -msgstr "" - msgid "PortProton was launched in creation mode PortProton.log and it is " "successfully stored in the root directory of the port" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index aa755ff5..7e36ca1b 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-24 16:50+0300\n" +"POT-Creation-Date: 2025-07-26 19:21+0500\n" "PO-Revision-Date: 2025-07-24 15:26+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -495,8 +495,8 @@ msgid "" "Super + Y : Toggle NIS upscaling\n" "Super + I : Increase FSR sharpness by 1\n" "Super + O : Decrease FSR sharpness by 1\n" -"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE." -"png)\n" +"Super + S : Take screenshot (currently goes to /tmp/" +"gamescope_DATE.png)\n" "Super + G : Toggle keyboard grab\n" "Super + C : Update clipboard" msgstr "" @@ -707,6 +707,10 @@ msgstr "" "Esto mejora el rendimiento de algunos juegos muy específicos. (Se recomienda " "no cambiar el valor)" +msgid "" +"GLIBC version 2.38+ is required for use Lossless Scaling frame generation" +msgstr "" + msgid "Change the version of WINDOWS emulation" msgstr "Cambiar la versión de emulación de WINDOWS" @@ -1861,6 +1865,10 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "Desactivar GameScope e ir al menú anterior" +#, fuzzy +msgid "The graphics card does not support Vulkan" +msgstr "Elige una tarjeta gráfica para ejecutar el juego" + msgid "Recommended value" msgstr "Valor recomendado" @@ -2082,13 +2090,6 @@ msgstr "DLLS" msgid "FONTS" msgstr "FUENTES" -msgid "Attention working version of vulkan not detected!" -msgstr "¡Atención, no se detectó la versión funcional de vulkan!" - -msgid "It is recommended to run games in OpenGL (low performance possible)!" -msgstr "" -"¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!" - msgid "" "PortProton was launched in creation mode PortProton.log and it is " "successfully stored in the root directory of the port" @@ -2218,6 +2219,13 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" +#~ msgid "Attention working version of vulkan not detected!" +#~ msgstr "¡Atención, no se detectó la versión funcional de vulkan!" + +#~ msgid "It is recommended to run games in OpenGL (low performance possible)!" +#~ msgstr "" +#~ "¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!" + #~ msgid "Legacy DXVK (Vulkan v1.1)" #~ msgstr "DXVK heredado (Vulkan v1.1)" @@ -2269,8 +2277,8 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ msgid "" #~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" #~ msgstr "" -#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n" -#~ "\\¿Quieres reiniciar STEAM ahora?" +#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\" +#~ "¿Quieres reiniciar STEAM ahora?" #~ msgid "Restarting STEAM... Please wait." #~ msgstr "Restarting STEAM... Please wait." @@ -2280,14 +2288,14 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ msgid "" #~ "Gamescope is not detected on the system, to install it, run the " -#~ "command in the terminal:\\nflatpak install -y runtime/org.freedesktop." -#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Can be " -#~ "selected and copied)" +#~ "command in the terminal:\\nflatpak install -y runtime/" +#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" +#~ "{GAMESCOPE_VERSION}%\\n(Can be selected and copied)" #~ msgstr "" #~ "Gamescope no se detecta en el sistema, para instalarlo, ejecute el " -#~ "comando en el terminal:\\n flatpak install -y runtime/org.freedesktop." -#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n (Se puede " -#~ "seleccionar y copiar)" +#~ "comando en el terminal:\\n flatpak install -y runtime/" +#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" +#~ "{GAMESCOPE_VERSION}%\\n (Se puede seleccionar y copiar)" #, sh-format #~ msgid "" @@ -2471,8 +2479,8 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ "-F fsr: use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n" #~ "-F nis: use NVIDIA Image Scaling v1.0.3 for upscaling.\n" #~ "-S integer: use integer scaling.\n" -#~ "-S stretch: use stretch scaling, the game will fill the window. (e." -#~ "g. 4:3 to 16:9).\n" +#~ "-S stretch: use stretch scaling, the game will fill the window. " +#~ "(e.g. 4:3 to 16:9).\n" #~ "-b: create a border-less window.\n" #~ "-f: create a full-screen window." #~ msgstr "" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 14e4bd7f..0d8dbf20 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,16 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-24 16:50+0300\n" -"PO-Revision-Date: 2025-07-24 16:51+0300\n" +"POT-Creation-Date: 2025-07-26 19:21+0500\n" +"PO-Revision-Date: 2025-07-26 21:42+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.6\n" msgid "" @@ -368,8 +368,8 @@ msgid "" "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" msgstr "" -"Для запускаемого приложения найдено более одного конфигурационного файла ." -"ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим " +"Для запускаемого приложения найдено более одного конфигурационного " +"файла .ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим " "запуском\\n" msgid "Update scripts:" @@ -506,8 +506,8 @@ msgid "" "Super + Y : Toggle NIS upscaling\n" "Super + I : Increase FSR sharpness by 1\n" "Super + O : Decrease FSR sharpness by 1\n" -"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE." -"png)\n" +"Super + S : Take screenshot (currently goes to /tmp/" +"gamescope_DATE.png)\n" "Super + G : Toggle keyboard grab\n" "Super + C : Update clipboard" msgstr "" @@ -732,6 +732,10 @@ msgstr "" "производительность некоторых очень специфических игр (рекомендуется не " "изменять значение)" +msgid "" +"GLIBC version 2.38+ is required for use Lossless Scaling frame generation" +msgstr "" + msgid "Change the version of WINDOWS emulation" msgstr "Изменить версию эмуляции WINDOWS" @@ -1349,9 +1353,9 @@ msgid "" "MangoHud settings (Keys R_SHIFT + F12 disable MangoHud)\\nnote: To display help for each item, just hover the mouse cursor over the text." msgstr "" -"Настройки MangoHud (клавиши R_SHIFT + F12 отключают " -"MangoHud)\\nПримечание: Чтобы отобразить справку для каждого " -"элемента, наведите курсор мыши на текст." +"Настройки MangoHud (клавиши R_SHIFT + F12 отключают MangoHud)" +"\\nПримечание: Чтобы отобразить справку для каждого элемента, " +"наведите курсор мыши на текст." msgid "" "Enabling fps limitation with MANGOHUD tools built into PortProton (Keys " @@ -1849,6 +1853,9 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "Отключить Gamescope и перейти в предыдущее меню" +msgid "The graphics card does not support Vulkan" +msgstr "Видеокарта не поддерживает Vulkan" + msgid "Recommended value" msgstr "Рекомендуемое значение" @@ -2068,13 +2075,6 @@ msgstr "БИБЛИОТЕКИ" msgid "FONTS" msgstr "ШРИФТЫ" -msgid "Attention working version of vulkan not detected!" -msgstr "Внимание, рабочая версия Vulkan не обнаружена!" - -msgid "It is recommended to run games in OpenGL (low performance possible)!" -msgstr "" -"Игры рекомендуется запускать в OpenGL (возможна низкая производительность)" - msgid "" "PortProton was launched in creation mode PortProton.log and it is " "successfully stored in the root directory of the port" @@ -2202,6 +2202,13 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "Attention working version of vulkan not detected!" +#~ msgstr "Внимание, рабочая версия Vulkan не обнаружена!" + +#~ msgid "It is recommended to run games in OpenGL (low performance possible)!" +#~ msgstr "" +#~ "Игры рекомендуется запускать в OpenGL (возможна низкая производительность)" + #~ msgid "Legacy DXVK (Vulkan v1.1)" #~ msgstr "Устаревший DXVK (Vulkan v1.1)" @@ -2267,14 +2274,14 @@ msgstr "БИБЛИОТЕКИ" #~ msgid "" #~ "Gamescope is not detected on the system, to install it, run the " -#~ "command in the terminal:\\nflatpak install -y runtime/org.freedesktop." -#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Can be " -#~ "selected and copied)" +#~ "command in the terminal:\\nflatpak install -y runtime/" +#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" +#~ "{GAMESCOPE_VERSION}%\\n(Can be selected and copied)" #~ msgstr "" #~ "Gamescope не найден в системе, для его установки выполните команду в " -#~ "терминале:\\nflatpak install -y runtime/org.freedesktop.Platform." -#~ "VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Данный текст можно " -#~ "выделить и скопировать)" +#~ "терминале:\\nflatpak install -y runtime/" +#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" +#~ "{GAMESCOPE_VERSION}%\\n(Данный текст можно выделить и скопировать)" #, sh-format #~ msgid "" @@ -2561,8 +2568,8 @@ msgstr "БИБЛИОТЕКИ" #~ "-F fsr: use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n" #~ "-F nis: use NVIDIA Image Scaling v1.0.3 for upscaling.\n" #~ "-S integer: use integer scaling.\n" -#~ "-S stretch: use stretch scaling, the game will fill the window. (e." -#~ "g. 4:3 to 16:9).\n" +#~ "-S stretch: use stretch scaling, the game will fill the window. " +#~ "(e.g. 4:3 to 16:9).\n" #~ "-b: create a border-less window.\n" #~ "-f: create a full-screen window." #~ msgstr "" @@ -2571,8 +2578,8 @@ msgstr "БИБЛИОТЕКИ" #~ "размера окна Gamescope обновит эти настройки. Если указано -H, а -W нет, " #~ "предполагается соотношение сторон 16:9. По умолчанию установлено значение " #~ "1280×720.\n" -#~ "-w, -h: установить разрешение, используемое в игре. Если указано -" -#~ "h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию " +#~ "-w, -h: установить разрешение, используемое в игре. Если указано " +#~ "-h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию " #~ "используются значения, указанные в -W и -H.\n" #~ "-r: установить ограничение частоты кадров для игры. По умолчанию " #~ "значение неограниченно.\n" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 740be877..80dca5a8 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -871,7 +871,7 @@ check_vendor_gpu () { fi if command -v glxinfo &>/dev/null ; then - pw_check_glxinfo + background_pid --end "pw_check_glxinfo" "3" case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in *nvidia*) [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") @@ -1345,7 +1345,6 @@ seconds_to_time () { combobox_fix () { if [[ -z "$1" ]] ; then - print_error "no argument specified for combobox_fix" return 1 else local name1 name2 @@ -2514,7 +2513,7 @@ pw_init_db () { # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" - + export PW_VK_ICD_FILENAMES ;; @@ -2529,7 +2528,7 @@ pw_init_db () { [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1 [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI - + return 0 } @@ -2802,20 +2801,148 @@ 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" + TIMEOUT_CMD="5" + export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1="1" + 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 +} + +compare_versions () { + IFS='.' read -ra a1 <<< "$1" + IFS='.' read -ra a2 <<< "$2" + local len=$(( ${#a1[@]} > ${#a2[@]} ? ${#a1[@]} : ${#a2[@]} )) + + for ((i=0; i n2 )) ; then + return 0 + elif (( n1 < n2 )) ; then + return 1 + fi + done + return 0 +} + +pw_check_dxvk () { + background_pid --end "pw_check_vulkan" "1" + if [[ -z $PW_VULKAN_DRIVER_USE ]] && [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then + if [[ -z $PW_GPU_USE ]] ; then + if [[ -z $GET_GPU_NAMES ]] ; then + GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') + export GET_GPU_NAMES + fi + IFS='!' read -r -a SELECTED_VULKAN_GPU <<< "$GET_GPU_NAMES" + else + IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" + fi + + for i in "${SELECTED_VULKAN_GPU[@]}" ; do + PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' + BEGIN { + in_target = 0 + } + /^GPU[0-9]+:/ { + if (in_target) { + in_target = 0 + } + next + } + /apiVersion/ { var1=$0 } + /driverVersion/ { var2=$0 } + /deviceName/ { var3=$0 } + /deviceName/ && !/llvmpipe/ { + split($0, parts, "=") + device_name = parts[2] + gsub(/^[[:space:]]+|[[:space:]]+$/, "", device_name) + if (device_name == target) in_target = 1 + next + } + in_target { + if ($0 ~ /driverInfo/) { var4=$0; exit } + } + END { + print var1 "!" var2 "!" var3 "!" var4 "!" + } + ' "${PW_TMPFS_PATH}/vulkaninfo.tmp")" + + IFS='!' read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY <<< "$PW_CHECK_VULKAN_DRIVER" + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[2],,} =~ nvidia ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_3 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[3]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_3[2]}" "550.54.14" ; then + PW_VULKAN_DRIVER_USE="6" && break + fi + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ mesa ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then + PW_VULKAN_DRIVER_USE="6" && break + fi + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ llpc ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then + PW_VULKAN_DRIVER_USE="6" + fi + fi + done + + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ llpc ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + export PW_VK_ICD_FILENAMES + fi + + if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[3]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then + unset PW_GPU_USE + pw_check_dxvk + fi + + if [[ -z $PW_GPU_USE ]] ; then + export PW_GPU_USE=${PW_CHECK_VULKAN_DRIVER_ARRAY[2]//*= /} + edit_user_conf_from_gui PW_GPU_USE + fi + fi + + if [[ $PW_VULKAN_DRIVER_USE == "6" ]] ; then + [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6" + case "$PW_VULKAN_USE" in + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + 2) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;; + esac + else + if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then + [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="0" + PW_DEFAULT_VULKAN_USE="$SORT_OPENGL" + else + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_0 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[0]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_0[2]}" "1.3" ; then + [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="2" + case "$PW_VULKAN_USE" in + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_SAREK" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_STABLE!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;; + esac + else + [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="1" + case "$PW_VULKAN_USE" in + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_SAREK" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_OPENGL" ;; + esac + fi fi fi } pw_check_glxinfo () { - if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then - TIMEOUT_CMD="5" - pw_check_command glxinfo -B - fi + TIMEOUT_CMD="5" + pw_check_command glxinfo -B } pw_get_tmp_files () { @@ -2823,8 +2950,6 @@ pw_get_tmp_files () { do pw_check_command "$f_cmd" done - pw_check_vulkan - # GALLIUM NINE unset FIND_D3D_MODULE D3D_MODULE_PATH if ! check_flatpak ; then @@ -2850,16 +2975,15 @@ pw_get_tmp_files () { pw_skip_get_info () { if [[ "${SKIP_CHECK_UPDATES_NEW}" != "1" ]] ; then - background_pid --end "pw_get_tmp_files" "1" + background_pid --end "pw_get_tmp_files" "2" if [[ -f "${PW_TMPFS_PATH}/gamescope.tmp" ]] ; then export GAMESCOPE_INSTALLED="1" fi if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then - VULKAN_DRIVER_NAME="$(grep -e 'driverName' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | awk '{print$3}' | head -1)" - GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!') - export VULKAN_DRIVER_NAME GET_GPU_NAMES + GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') + export GET_GPU_NAMES fi if [[ -f "${PW_TMPFS_PATH}/lspci.tmp" ]] ; then @@ -4589,7 +4713,7 @@ pw_run () { PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" echo "##### Current variables #####" > "$PW_TMPFS_PATH/var.log" - for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME" \ + for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" \ "WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" \ "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR" do @@ -5543,7 +5667,6 @@ gui_edit_db () { if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \ [[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" - export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 else AMD_VULKAN_VAR="disabled" fi @@ -6423,12 +6546,12 @@ gui_userconf () { NEW_STEAM_BEHAVIOR="${translations[Enable]}" fi - if [[ -n $PW_GPU_USE ]] \ - && [[ $PW_GPU_USE != "disabled" ]] - then + if [[ -n $PW_GPU_USE ]] && [[ $PW_GPU_USE != "disabled" ]] ; then GPU_VAR="$PW_GPU_USE" + elif [[ -n $GET_GPU_NAMES ]] ; then + GPU_VAR="${GET_GPU_NAMES/!*/}" else - GPU_VAR="disabled" + GPU_VAR="${translations[The graphics card does not support Vulkan]}" fi if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then @@ -6492,7 +6615,7 @@ gui_userconf () { --field="${translations[Change branch to]}!${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]} :CB" "$(combobox_fix "$BRANCH" "$NEW_BRANCH")" \ --field="${translations[Change start gui to]}!${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]} :CB" "$(combobox_fix "$PW_GUI_START" "$NEW_START_GUI")" \ --field="${translations[Steam covers download]}!${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]} :CB" "$(combobox_fix "$DOWNLOAD_STEAM_GRID" "$NEW_STEAM_BEHAVIOR")" \ - --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ + --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix "$GPU_VAR" "$GET_GPU_NAMES")" \ --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!80!96!120!144!168!192!216!240")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \ @@ -6523,6 +6646,7 @@ gui_userconf () { gui_open_user_conf ;; 166) + unset PW_VULKAN_DRIVER_USE IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" MIRROR="${PW_ADD_SETTINGS_UC[0]}" if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then @@ -6582,6 +6706,7 @@ gui_userconf () { if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]] ; then SORT_WITH_TIME="lastlaunch" elif [[ $SORT_WITH_TIME == "${translations[By time]}" ]] ; then SORT_WITH_TIME="bytime" fi + [[ $PW_GPU_USE == "${translations[The graphics card does not support Vulkan]}" ]] && PW_GPU_USE="disabled" edit_user_conf_from_gui MIRROR BRANCH PW_GUI_START DOWNLOAD_STEAM_GRID PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE \ GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME @@ -7026,9 +7151,9 @@ pw_prefix_manager () { --tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null YAD_STATUS="$?" - try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp" - try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp" - try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp" + try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp" + try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp" + try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp" case "$YAD_STATUS" in 0) @@ -7071,11 +7196,6 @@ portwine_start_debug () { pw_skip_get_info kill_portwine export PW_LOG=1 - if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" == "llvmpipe" ]] ; then - pw_notify_send -i warning \ - "${translations[Attention working version of vulkan not detected!]}" \ - "${translations[It is recommended to run games in OpenGL (low performance possible)!]}" - fi echo "${translations[PortProton was launched in creation mode PortProton.log and it is successfully stored in the root directory of the port]}" > "${PORT_WINE_PATH}/PortProton.log" echo "${translations[To diagnose the problem, copy ALL of the log to:]} https://linux-gaming.ru/t/opisanie-kategorii-portproton-pomoshh/1642" >> "${PORT_WINE_PATH}/PortProton.log" echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" @@ -7416,6 +7536,7 @@ gui_open_user_conf () { restart_pp --userconf ;; 2) + unset PW_VULKAN_DRIVER_USE echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf" print_info "Restarting..." restart_pp --userconf diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 648f2bbc..18681954 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -307,8 +307,14 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}") export PW_FILESYSTEM - background_pid --start "pw_get_tmp_files" "1" - background_pid --start "pw_check_glxinfo" "2" + background_pid --start "pw_check_vulkan" "1" + background_pid --start "pw_get_tmp_files" "2" + background_pid --start "pw_check_glxinfo" "3" +fi + +if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then + unset PW_GPU_USE + pw_check_dxvk fi # create lock file @@ -560,22 +566,8 @@ if [[ -f "$portwine_exe" ]] ; then gui_userconf fi - if [[ -z $PW_VULKAN_USE ]] \ - || [[ $PW_VULKAN_USE == [3-5] ]] - then - if [[ -e "/sys/module/nvidia/version" ]] ;then - if [[ $( 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 + [[ $PW_VULKAN_USE == [3-5] ]] && unset PW_VULKAN_USE + pw_check_dxvk if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then pw_create_gui_png @@ -596,13 +588,6 @@ 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 - KEY_START="$RANDOM" "$pw_yad" --plug=$KEY_START --tabnum="1" --form --separator=";" $START_GUI_TYPE \ --gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \ diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 454d5487..e255d3f7 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -34,7 +34,6 @@ export PW_MESA_VK_WSI_PRESENT_MODE="disabled" export PW_VKD3D_FEATURE_LEVEL="disabled" export PW_USE_EAC_AND_BE="1" export PW_USE_US_LAYOUT="0" -export PW_GPU_USE="disabled" export PW_LOCALE_SELECT="disabled" export PW_DINPUT_PROTOCOL="0" export PW_USE_VRCLIENT="0" From b57b6d8a7688cc8d9dccffce30c519d6ea9f4cba Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 14:16:48 +0500 Subject: [PATCH 02/12] updated check_vendor_gpu functions --- data_from_portwine/scripts/functions_helper | 93 +++++++++++++-------- data_from_portwine/scripts/start.sh | 1 - 2 files changed, 58 insertions(+), 36 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 80dca5a8..78d8b1b7 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -854,46 +854,35 @@ check_selinux () { export -f check_selinux check_vendor_gpu () { - unset VENDOR_GPU_USE - if [[ $PW_GPU_USE != disabled ]] ; then + if [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then case "${PW_GPU_USE,,}" in *nvidia*) - [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") - [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau") - ;; + [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia" + [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau" ;; *amd*) - [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd") - ;; + [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd" ;; *intel*) - [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel") - ;; + [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel" ;; esac - fi - - if command -v glxinfo &>/dev/null ; then - background_pid --end "pw_check_glxinfo" "3" + elif command -v glxinfo &>/dev/null ; then + pw_check_glxinfo case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in *nvidia*) - [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") - [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau") - ;; + [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia" + [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau" ;; *amd*) - [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd") - ;; + [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd" ;; *intel*) - [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel") - ;; + [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel" ;; esac + else + [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia" + [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau" + [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd" + [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel" fi - if [[ -z ${VENDOR_GPU_USE[0]} ]] ; then - [[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia") - [[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau") - [[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd") - [[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel") - fi - - echo "${VENDOR_GPU_USE[*]}" + echo "$VENDOR_GPU_USE" } background_pid () { @@ -2839,7 +2828,35 @@ pw_check_dxvk () { IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" fi - for i in "${SELECTED_VULKAN_GPU[@]}" ; do + # какие карты в приоритете, если не выбран изначально PW_GPU_USE + if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then + for elem in "${SELECTED_VULKAN_GPU[@]}"; do + elem_lower=${elem,,} + if [[ $elem_lower =~ nvidia ]]; then + nvidia_group+=("$elem") + elif [[ $elem_lower =~ radv ]]; then + radv_group+=("$elem") + elif [[ $elem_lower =~ amd ]]; then + amd_group+=("$elem") + elif [[ $elem_lower =~ intel ]]; then + intel_group+=("$elem") + else + other_group+=("$elem") + fi + done + unset SELECTED_VULKAN_GPU + SELECTED_VULKAN_GPU_NEW=( + "${nvidia_group[@]}" + "${radv_group[@]}" + "${amd_group[@]}" + "${intel_group[@]}" + "${other_group[@]}" + ) + fi + + # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, + # либо ищем наилучший драйвер с учётом приоритета видеокарт + инфа + for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' BEGIN { in_target = 0 @@ -2861,15 +2878,16 @@ pw_check_dxvk () { next } in_target { + if ($0 ~ /driverName/) { var5=$0 } if ($0 ~ /driverInfo/) { var4=$0; exit } } END { - print var1 "!" var2 "!" var3 "!" var4 "!" + print var1 "!" var2 "!" var3 "!" var4 "!" var5 "!" } ' "${PW_TMPFS_PATH}/vulkaninfo.tmp")" IFS='!' read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY <<< "$PW_CHECK_VULKAN_DRIVER" - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[2],,} =~ nvidia ]] ; then + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_3 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[3]}" if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_3[2]}" "550.54.14" ; then PW_VULKAN_DRIVER_USE="6" && break @@ -2879,15 +2897,17 @@ pw_check_dxvk () { if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then PW_VULKAN_DRIVER_USE="6" && break fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ llpc ]] ; then + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then - PW_VULKAN_DRIVER_USE="6" + PW_VULKAN_DRIVER_USE="6" && break fi fi done - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ llpc ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then + # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он + # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then PW_VK_ICD_FILENAMES="" for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do for file in "$dir"/amd_icd*.json; do @@ -2897,17 +2917,20 @@ pw_check_dxvk () { export PW_VK_ICD_FILENAMES fi - if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[3]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then + # фикс, если вдруг название PW_GPU_USE изменилось + if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then unset PW_GPU_USE pw_check_dxvk fi + # если PW_GPU_USE изначально не было if [[ -z $PW_GPU_USE ]] ; then export PW_GPU_USE=${PW_CHECK_VULKAN_DRIVER_ARRAY[2]//*= /} edit_user_conf_from_gui PW_GPU_USE fi fi + # формируется в завимости от выбранного PW_GPU_USE и поддержки самого драйвера if [[ $PW_VULKAN_DRIVER_USE == "6" ]] ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6" case "$PW_VULKAN_USE" in diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 18681954..f392bcbc 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -309,7 +309,6 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then background_pid --start "pw_check_vulkan" "1" background_pid --start "pw_get_tmp_files" "2" - background_pid --start "pw_check_glxinfo" "3" fi if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then From d043905e16c36e5e5b169eff13d31e71a7f36236 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 16:45:45 +0500 Subject: [PATCH 03/12] Optimization for devices without vulkan driver --- data_from_portwine/scripts/functions_helper | 193 ++++++++++---------- 1 file changed, 98 insertions(+), 95 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 78d8b1b7..7b2f925b 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2828,105 +2828,108 @@ pw_check_dxvk () { IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" fi - # какие карты в приоритете, если не выбран изначально PW_GPU_USE - if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then - for elem in "${SELECTED_VULKAN_GPU[@]}"; do - elem_lower=${elem,,} - if [[ $elem_lower =~ nvidia ]]; then - nvidia_group+=("$elem") - elif [[ $elem_lower =~ radv ]]; then - radv_group+=("$elem") - elif [[ $elem_lower =~ amd ]]; then - amd_group+=("$elem") - elif [[ $elem_lower =~ intel ]]; then - intel_group+=("$elem") - else - other_group+=("$elem") - fi - done - unset SELECTED_VULKAN_GPU - SELECTED_VULKAN_GPU_NEW=( - "${nvidia_group[@]}" - "${radv_group[@]}" - "${amd_group[@]}" - "${intel_group[@]}" - "${other_group[@]}" - ) - fi - - # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, - # либо ищем наилучший драйвер с учётом приоритета видеокарт + инфа - for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do - PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' - BEGIN { - in_target = 0 - } - /^GPU[0-9]+:/ { - if (in_target) { - in_target = 0 - } - next - } - /apiVersion/ { var1=$0 } - /driverVersion/ { var2=$0 } - /deviceName/ { var3=$0 } - /deviceName/ && !/llvmpipe/ { - split($0, parts, "=") - device_name = parts[2] - gsub(/^[[:space:]]+|[[:space:]]+$/, "", device_name) - if (device_name == target) in_target = 1 - next - } - in_target { - if ($0 ~ /driverName/) { var5=$0 } - if ($0 ~ /driverInfo/) { var4=$0; exit } - } - END { - print var1 "!" var2 "!" var3 "!" var4 "!" var5 "!" - } - ' "${PW_TMPFS_PATH}/vulkaninfo.tmp")" - - IFS='!' read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY <<< "$PW_CHECK_VULKAN_DRIVER" - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_3 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[3]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_3[2]}" "550.54.14" ; then - PW_VULKAN_DRIVER_USE="6" && break - fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ mesa ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then - PW_VULKAN_DRIVER_USE="6" && break - fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then - PW_VULKAN_DRIVER_USE="6" && break - fi - fi - done - - # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он - # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + # оптимизация когда vulkan драйвера в системе нет + if [[ -n ${SELECTED_VULKAN_GPU[@]} ]] ; then + # какие карты в приоритете, если не выбран изначально PW_GPU_USE + if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then + for elem in "${SELECTED_VULKAN_GPU[@]}"; do + elem_lower=${elem,,} + if [[ $elem_lower =~ nvidia ]]; then + nvidia_group+=("$elem") + elif [[ $elem_lower =~ radv ]]; then + radv_group+=("$elem") + elif [[ $elem_lower =~ amd ]]; then + amd_group+=("$elem") + elif [[ $elem_lower =~ intel ]]; then + intel_group+=("$elem") + else + other_group+=("$elem") + fi done + unset SELECTED_VULKAN_GPU + SELECTED_VULKAN_GPU_NEW=( + "${nvidia_group[@]}" + "${radv_group[@]}" + "${amd_group[@]}" + "${intel_group[@]}" + "${other_group[@]}" + ) + fi + + # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, + # либо ищем наилучший драйвер с учётом приоритета видеокарт + инфа + for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do + PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' + BEGIN { + in_target = 0 + } + /^GPU[0-9]+:/ { + if (in_target) { + in_target = 0 + } + next + } + /apiVersion/ { var1=$0 } + /driverVersion/ { var2=$0 } + /deviceName/ { var3=$0 } + /deviceName/ && !/llvmpipe/ { + split($0, parts, "=") + device_name = parts[2] + gsub(/^[[:space:]]+|[[:space:]]+$/, "", device_name) + if (device_name == target) in_target = 1 + next + } + in_target { + if ($0 ~ /driverName/) { var5=$0 } + if ($0 ~ /driverInfo/) { var4=$0; exit } + } + END { + print var1 "!" var2 "!" var3 "!" var4 "!" var5 "!" + } + ' "${PW_TMPFS_PATH}/vulkaninfo.tmp")" + + IFS='!' read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY <<< "$PW_CHECK_VULKAN_DRIVER" + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_3 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[3]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_3[2]}" "550.54.14" ; then + PW_VULKAN_DRIVER_USE="6" && break + fi + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ mesa ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then + PW_VULKAN_DRIVER_USE="6" && break + fi + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then + read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" + if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then + PW_VULKAN_DRIVER_USE="6" && break + fi + fi done - export PW_VK_ICD_FILENAMES - fi - # фикс, если вдруг название PW_GPU_USE изменилось - if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then - unset PW_GPU_USE - pw_check_dxvk - fi + # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он + # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + export PW_VK_ICD_FILENAMES + fi - # если PW_GPU_USE изначально не было - if [[ -z $PW_GPU_USE ]] ; then - export PW_GPU_USE=${PW_CHECK_VULKAN_DRIVER_ARRAY[2]//*= /} - edit_user_conf_from_gui PW_GPU_USE + # фикс, если вдруг название PW_GPU_USE изменилось + if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then + unset PW_GPU_USE + pw_check_dxvk + fi + + # если PW_GPU_USE изначально не было + if [[ -z $PW_GPU_USE ]] ; then + export PW_GPU_USE=${PW_CHECK_VULKAN_DRIVER_ARRAY[2]//*= /} + edit_user_conf_from_gui PW_GPU_USE + fi fi fi From f863ab26643273e3b7da8ca79b8936c30ed68c9c Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 20:12:11 +0500 Subject: [PATCH 04/12] Added amdgpupro driver for pw_check_dxvk --- data_from_portwine/scripts/functions_helper | 105 +++++++++++--------- 1 file changed, 56 insertions(+), 49 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 7b2f925b..9befb503 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1716,15 +1716,15 @@ init_wine_ver () { export WINEDLLPATH fi - if ! check_flatpak ; then + if ! check_flatpak ; then WINE_LIBRARY_PATH="${WINEDIR}/lib" if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] then WINE_LIBRARY_PATH+=":${WINEDIR}/lib64" elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu" ]] then WINE_LIBRARY_PATH+=":${WINEDIR}/lib/x86_64-linux-gnu:${WINEDIR}/lib/i386-linux-gnu" fi - export WINE_LIBRARY_PATH - fi + export WINE_LIBRARY_PATH + fi export MEDIACONV_BLANK_VIDEO_FILE="${WINEDIR}"/share/media/blank.mkv export MEDIACONV_BLANK_AUDIO_FILE="${WINEDIR}"/share/media/blank.ptna @@ -1762,8 +1762,8 @@ pw_init_runtime () { PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" - if ! check_flatpak; then - export PW_LD_LIBRARY_PATH="\ + if ! check_flatpak; then + export PW_LD_LIBRARY_PATH="\ ${PW_PLUGINS_PATH}/portable/lib/lib64:\ ${PW_PLUGINS_PATH}/portable/lib/lib32:\ ${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:\ @@ -1772,7 +1772,7 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\ /overrides/lib/i386-linux-gnu:\ /lib/x86_64-linux-gnu:\ /lib/i386-linux-gnu" - fi + fi export PW_PATH="${PW_PLUGINS_PATH}/portable/bin${PATH:+:$PATH}" @@ -2350,6 +2350,43 @@ check_dirs_and_files_in_pfx () { done } +amd_vulkan_driver_selection () { + case "${PW_AMD_VULKAN_USE}" in + "amdvlk") + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + export PW_VK_ICD_FILENAMES + ;; + + "amdgpupro") + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_pro_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + + # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) + echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ + var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" + + export PW_VK_ICD_FILENAMES + ;; + + "radv") + PW_VK_ICD_FILENAMES="" + for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + export PW_VK_ICD_FILENAMES + ;; + esac +} + pw_init_db () { if echo "$LSPCI_VGA" | grep -i -q 'nvidia.*rtx' ; then export PW_USE_NVAPI_AND_DLSS="1" @@ -2480,40 +2517,7 @@ pw_init_db () { fi fi - case "${PW_AMD_VULKAN_USE}" in - "amdvlk") - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - done - export PW_VK_ICD_FILENAMES - ;; - - "amdgpupro") - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_pro_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - done - - # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) - echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ - var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" - - export PW_VK_ICD_FILENAMES - ;; - - "radv") - PW_VK_ICD_FILENAMES="" - for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - export PW_VK_ICD_FILENAMES - ;; - esac + amd_vulkan_driver_selection [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1 [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI @@ -2899,7 +2903,8 @@ pw_check_dxvk () { if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then PW_VULKAN_DRIVER_USE="6" && break fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] \ + || [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd proprietary driver"* ]] ; then read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then PW_VULKAN_DRIVER_USE="6" && break @@ -2909,14 +2914,16 @@ pw_check_dxvk () { # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] && [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - done - export PW_VK_ICD_FILENAMES + if [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then + PW_AMD_VULKAN_USE_OLD="$PW_AMD_VULKAN_USE" + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then + PW_AMD_VULKAN_USE="amdvlk" + amd_vulkan_driver_selection + elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd proprietary driver"* ]] ; then + PW_AMD_VULKAN_USE="amdgpupro" + amd_vulkan_driver_selection + fi + PW_AMD_VULKAN_USE="$PW_AMD_VULKAN_USE_OLD" fi # фикс, если вдруг название PW_GPU_USE изменилось From c7cb4503bb2efd1d70d1a6fa566ddc168deed6c0 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 20:46:12 +0500 Subject: [PATCH 05/12] OpenGL force works on nvidia if use nvidia --- data_from_portwine/scripts/functions_helper | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 9befb503..12b63f8e 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2912,6 +2912,12 @@ pw_check_dxvk () { fi done + # фикс, если вдруг название PW_GPU_USE изменилось + if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then + unset PW_GPU_USE + pw_check_dxvk + fi + # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk if [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then @@ -2926,10 +2932,11 @@ pw_check_dxvk () { PW_AMD_VULKAN_USE="$PW_AMD_VULKAN_USE_OLD" fi - # фикс, если вдруг название PW_GPU_USE изменилось - if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then - unset PW_GPU_USE - pw_check_dxvk + # Если используется nvidia, со встройкой opengl будет работать через встройку + # с этим будет работать через nvidia + if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then + export __NV_PRIME_RENDER_OFFLOAD="1" + export __GLX_VENDOR_LIBRARY_NAME="nvidia" fi # если PW_GPU_USE изначально не было From 691468d5a1f69b0fc9f62196b27044c72894f7c2 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 22:01:12 +0500 Subject: [PATCH 06/12] Added get_gpu_names function --- data_from_portwine/scripts/functions_helper | 117 ++++++++++---------- 1 file changed, 58 insertions(+), 59 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 12b63f8e..1eb55cbd 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2350,43 +2350,6 @@ check_dirs_and_files_in_pfx () { done } -amd_vulkan_driver_selection () { - case "${PW_AMD_VULKAN_USE}" in - "amdvlk") - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - done - export PW_VK_ICD_FILENAMES - ;; - - "amdgpupro") - PW_VK_ICD_FILENAMES="" - for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do - for file in "$dir"/amd_pro_icd*.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - done - - # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) - echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ - var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" - - export PW_VK_ICD_FILENAMES - ;; - - "radv") - PW_VK_ICD_FILENAMES="" - for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do - [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" - done - export PW_VK_ICD_FILENAMES - ;; - esac -} - pw_init_db () { if echo "$LSPCI_VGA" | grep -i -q 'nvidia.*rtx' ; then export PW_USE_NVAPI_AND_DLSS="1" @@ -2517,7 +2480,40 @@ pw_init_db () { fi fi - amd_vulkan_driver_selection + case "${PW_AMD_VULKAN_USE}" in + "amdvlk") + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + export PW_VK_ICD_FILENAMES + ;; + + "amdgpupro") + PW_VK_ICD_FILENAMES="" + for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do + for file in "$dir"/amd_pro_icd*.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + done + + # add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not) + echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \ + var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" + + export PW_VK_ICD_FILENAMES + ;; + + "radv") + PW_VK_ICD_FILENAMES="" + for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do + [ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file" + done + export PW_VK_ICD_FILENAMES + ;; + esac [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1 [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI @@ -2819,13 +2815,32 @@ compare_versions () { return 0 } +get_gpu_names () { + GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') + if [[ ${GET_GPU_NAMES,,} =~ radv ]] ; then + IFS='!' read -r -a GET_GPU_NAMES_ARRAY <<< "$GET_GPU_NAMES" + for i in "${!GET_GPU_NAMES_ARRAY[@]}" ; do + if [[ ${GET_GPU_NAMES_ARRAY[i],,} =~ amd && ! ${GET_GPU_NAMES_ARRAY[i],,} =~ radv ]] ; then + unset 'GET_GPU_NAMES_ARRAY[i]' + fi + done + GET_GPU_NAMES_ARRAY=("${GET_GPU_NAMES_ARRAY[@]}") + if [[ -n ${GET_GPU_NAMES_ARRAY[1]} ]] ; then + printf -v GET_GPU_NAMES '%s!' "${GET_GPU_NAMES_ARRAY[@]}" + GET_GPU_NAMES="${GET_GPU_NAMES%?}" + else + GET_GPU_NAMES="${GET_GPU_NAMES_ARRAY[0]}" + fi + fi + export GET_GPU_NAMES +} + pw_check_dxvk () { background_pid --end "pw_check_vulkan" "1" if [[ -z $PW_VULKAN_DRIVER_USE ]] && [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then if [[ -z $PW_GPU_USE ]] ; then if [[ -z $GET_GPU_NAMES ]] ; then - GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') - export GET_GPU_NAMES + get_gpu_names fi IFS='!' read -r -a SELECTED_VULKAN_GPU <<< "$GET_GPU_NAMES" else @@ -2840,8 +2855,6 @@ pw_check_dxvk () { elem_lower=${elem,,} if [[ $elem_lower =~ nvidia ]]; then nvidia_group+=("$elem") - elif [[ $elem_lower =~ radv ]]; then - radv_group+=("$elem") elif [[ $elem_lower =~ amd ]]; then amd_group+=("$elem") elif [[ $elem_lower =~ intel ]]; then @@ -2853,7 +2866,6 @@ pw_check_dxvk () { unset SELECTED_VULKAN_GPU SELECTED_VULKAN_GPU_NEW=( "${nvidia_group[@]}" - "${radv_group[@]}" "${amd_group[@]}" "${intel_group[@]}" "${other_group[@]}" @@ -2918,25 +2930,13 @@ pw_check_dxvk () { pw_check_dxvk fi - # если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он - # для тех систем, где к примеру radv не используется, либо в приоритете amdvlk - if [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then - PW_AMD_VULKAN_USE_OLD="$PW_AMD_VULKAN_USE" - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] ; then - PW_AMD_VULKAN_USE="amdvlk" - amd_vulkan_driver_selection - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd proprietary driver"* ]] ; then - PW_AMD_VULKAN_USE="amdgpupro" - amd_vulkan_driver_selection - fi - PW_AMD_VULKAN_USE="$PW_AMD_VULKAN_USE_OLD" - fi - # Если используется nvidia, со встройкой opengl будет работать через встройку # с этим будет работать через nvidia if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then export __NV_PRIME_RENDER_OFFLOAD="1" export __GLX_VENDOR_LIBRARY_NAME="nvidia" + else + export __NV_PRIME_RENDER_OFFLOAD="0" fi # если PW_GPU_USE изначально не было @@ -3022,8 +3022,7 @@ pw_skip_get_info () { fi if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then - GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') - export GET_GPU_NAMES + get_gpu_names fi if [[ -f "${PW_TMPFS_PATH}/lspci.tmp" ]] ; then From cb1fea9fddd39e906db0b47a271a94f302a20caf Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 27 Jul 2025 22:37:29 +0500 Subject: [PATCH 07/12] Added checked for amdvlk and amdgpupro drivers --- data_from_portwine/scripts/functions_helper | 25 +++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 1eb55cbd..31660c01 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2847,8 +2847,18 @@ pw_check_dxvk () { IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" fi - # оптимизация когда vulkan драйвера в системе нет - if [[ -n ${SELECTED_VULKAN_GPU[@]} ]] ; then + # если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер + if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then + if [[ ${SELECTED_VULKAN_GPU[@],,} =~ radv ]] ; then + for i in "${!SELECTED_VULKAN_GPU[@]}" ; do + if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then + SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}" + fi + done + fi + fi + + if [[ -n ${SELECTED_VULKAN_GPU[@]} ]] ; then # оптимизация когда vulkan драйвера в системе нет # какие карты в приоритете, если не выбран изначально PW_GPU_USE if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then for elem in "${SELECTED_VULKAN_GPU[@]}"; do @@ -2873,7 +2883,7 @@ pw_check_dxvk () { fi # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, - # либо ищем наилучший драйвер с учётом приоритета видеокарт + инфа + # либо ищем наилучший драйвер с учётом приоритета видеокарт + информация for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' BEGIN { @@ -2924,14 +2934,15 @@ pw_check_dxvk () { fi done - # фикс, если вдруг название PW_GPU_USE изменилось + # фикс, если вдруг PW_GPU_USE изменился или сломался if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then + PW_AMD_VULKAN_USE="disabled" + edit_db_from_gui PW_AMD_VULKAN_USE unset PW_GPU_USE pw_check_dxvk fi - # Если используется nvidia, со встройкой opengl будет работать через встройку - # с этим будет работать через nvidia + # если используется nvidia, со встройкой opengl будет работать через встройку, с этим будет работать через nvidia if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then export __NV_PRIME_RENDER_OFFLOAD="1" export __GLX_VENDOR_LIBRARY_NAME="nvidia" @@ -2947,7 +2958,7 @@ pw_check_dxvk () { fi fi - # формируется в завимости от выбранного PW_GPU_USE и поддержки самого драйвера + # формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера if [[ $PW_VULKAN_DRIVER_USE == "6" ]] ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6" case "$PW_VULKAN_USE" in From fa55bb8f354f55d0058d2200cb27578b5fecc9cd Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 28 Jul 2025 04:36:01 +0500 Subject: [PATCH 08/12] Optimization code for pw_check_dxvk --- data_from_portwine/scripts/functions_helper | 111 ++++++++------------ 1 file changed, 43 insertions(+), 68 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 31660c01..87c7bd55 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2816,7 +2816,7 @@ compare_versions () { } get_gpu_names () { - GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | sed 's/^ //' | paste -sd '!') + GET_GPU_NAMES=$(awk -F '= ' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | paste -sd '!') if [[ ${GET_GPU_NAMES,,} =~ radv ]] ; then IFS='!' read -r -a GET_GPU_NAMES_ARRAY <<< "$GET_GPU_NAMES" for i in "${!GET_GPU_NAMES_ARRAY[@]}" ; do @@ -2847,18 +2847,17 @@ pw_check_dxvk () { IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" fi - # если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер - if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then - if [[ ${SELECTED_VULKAN_GPU[@],,} =~ radv ]] ; then - for i in "${!SELECTED_VULKAN_GPU[@]}" ; do - if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then - SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}" - fi - done - fi - fi - if [[ -n ${SELECTED_VULKAN_GPU[@]} ]] ; then # оптимизация когда vulkan драйвера в системе нет + # если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер + if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then + if [[ ${SELECTED_VULKAN_GPU[@],,} =~ radv ]] ; then + for i in "${!SELECTED_VULKAN_GPU[@]}" ; do + if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then + SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}" + fi + done + fi + fi # какие карты в приоритете, если не выбран изначально PW_GPU_USE if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then for elem in "${SELECTED_VULKAN_GPU[@]}"; do @@ -2881,83 +2880,60 @@ pw_check_dxvk () { "${other_group[@]}" ) fi - # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, # либо ищем наилучший драйвер с учётом приоритета видеокарт + информация - for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do - PW_CHECK_VULKAN_DRIVER="$(awk -v target="$i" ' - BEGIN { - in_target = 0 - } - /^GPU[0-9]+:/ { - if (in_target) { - in_target = 0 - } - next - } - /apiVersion/ { var1=$0 } - /driverVersion/ { var2=$0 } - /deviceName/ { var3=$0 } - /deviceName/ && !/llvmpipe/ { - split($0, parts, "=") - device_name = parts[2] - gsub(/^[[:space:]]+|[[:space:]]+$/, "", device_name) - if (device_name == target) in_target = 1 - next - } - in_target { - if ($0 ~ /driverName/) { var5=$0 } - if ($0 ~ /driverInfo/) { var4=$0; exit } - } - END { - print var1 "!" var2 "!" var3 "!" var4 "!" var5 "!" - } - ' "${PW_TMPFS_PATH}/vulkaninfo.tmp")" + mapfile -t PW_VULKAN_DRIVER_ARRAY < <(awk ' + /apiVersion|driverVersion/ { print $3 } + /deviceName|driverName|driverInfo/ { + split($0, parts, "= ") + print parts[2] + }' "${PW_TMPFS_PATH}/vulkaninfo.tmp") - IFS='!' read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY <<< "$PW_CHECK_VULKAN_DRIVER" - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_3 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[3]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_3[2]}" "550.54.14" ; then + for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do + x="0" && y="6" + while true ; do + PW_VULKAN_DRIVER_ARRAY_CHECK=("${PW_VULKAN_DRIVER_ARRAY[@]:x:y}") + [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break + x=$(( x + 6 )) && y=$(( y + 6 )) + # фикс, если вдруг PW_GPU_USE изменился или сломался + if [[ -z ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} ]] ; then + PW_AMD_VULKAN_USE="disabled" + edit_db_from_gui PW_AMD_VULKAN_USE + unset PW_GPU_USE + pw_check_dxvk + break + fi + done + + if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then + if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[4]}" "550.54.14" ; then PW_VULKAN_DRIVER_USE="6" && break fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[3],,} =~ mesa ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "25.0" ; then + elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} =~ mesa ]] ; then + if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "25.0" ; then PW_VULKAN_DRIVER_USE="6" && break fi - elif [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd open-source driver"* ]] \ - || [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} == *"amd proprietary driver"* ]] ; then - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_1 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[1]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_1[2]}" "2.0.310" ; then + elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} == *"amd open-source driver"* ]] \ + || [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} == *"amd proprietary driver"* ]] ; then + if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "2.0.310" ; then PW_VULKAN_DRIVER_USE="6" && break fi fi done - - # фикс, если вдруг PW_GPU_USE изменился или сломался - if [[ -z ${PW_CHECK_VULKAN_DRIVER_ARRAY[4]} ]] && [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] ; then - PW_AMD_VULKAN_USE="disabled" - edit_db_from_gui PW_AMD_VULKAN_USE - unset PW_GPU_USE - pw_check_dxvk - fi - # если используется nvidia, со встройкой opengl будет работать через встройку, с этим будет работать через nvidia - if [[ ${PW_CHECK_VULKAN_DRIVER_ARRAY[4],,} =~ nvidia ]] ; then + if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then export __NV_PRIME_RENDER_OFFLOAD="1" export __GLX_VENDOR_LIBRARY_NAME="nvidia" else export __NV_PRIME_RENDER_OFFLOAD="0" fi - # если PW_GPU_USE изначально не было if [[ -z $PW_GPU_USE ]] ; then - export PW_GPU_USE=${PW_CHECK_VULKAN_DRIVER_ARRAY[2]//*= /} + export PW_GPU_USE=${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} edit_user_conf_from_gui PW_GPU_USE fi fi fi - # формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера if [[ $PW_VULKAN_DRIVER_USE == "6" ]] ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6" @@ -2972,8 +2948,7 @@ pw_check_dxvk () { [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="0" PW_DEFAULT_VULKAN_USE="$SORT_OPENGL" else - read -r -a PW_CHECK_VULKAN_DRIVER_ARRAY_0 <<< "${PW_CHECK_VULKAN_DRIVER_ARRAY[0]}" - if compare_versions "${PW_CHECK_VULKAN_DRIVER_ARRAY_0[2]}" "1.3" ; then + if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[0]}" "1.3" ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="2" case "$PW_VULKAN_USE" in 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_SAREK" ;; From a1695c032ddb6d25e1df6513135e78fbf1a7bcb7 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 28 Jul 2025 04:59:43 +0500 Subject: [PATCH 09/12] Repair choise amdvlk and amdgpupro drivers for check_dxvk --- data_from_portwine/scripts/functions_helper | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 87c7bd55..d532c5ad 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2890,11 +2890,16 @@ pw_check_dxvk () { }' "${PW_TMPFS_PATH}/vulkaninfo.tmp") for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do - x="0" && y="6" + x="0" && y="5" while true ; do PW_VULKAN_DRIVER_ARRAY_CHECK=("${PW_VULKAN_DRIVER_ARRAY[@]:x:y}") - [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break - x=$(( x + 6 )) && y=$(( y + 6 )) + if [[ -n $PW_AMD_VULKAN_USE && $PW_AMD_VULKAN_USE != "disabled" ]] ; then + [[ $PW_AMD_VULKAN_USE == "amdvlk" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] && break + [[ $PW_AMD_VULKAN_USE == "amdgpupro" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] && break + else + [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break + fi + x=$(( x + 5 )) && y=$(( y + 5 )) # фикс, если вдруг PW_GPU_USE изменился или сломался if [[ -z ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} ]] ; then PW_AMD_VULKAN_USE="disabled" @@ -2913,8 +2918,8 @@ pw_check_dxvk () { if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "25.0" ; then PW_VULKAN_DRIVER_USE="6" && break fi - elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} == *"amd open-source driver"* ]] \ - || [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} == *"amd proprietary driver"* ]] ; then + elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] \ + || [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] ; then if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "2.0.310" ; then PW_VULKAN_DRIVER_USE="6" && break fi From 90ea238f34ee51972de108de9eaafd40045e1118 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 28 Jul 2025 11:27:33 +0500 Subject: [PATCH 10/12] Make spellcheck happy --- data_from_portwine/scripts/functions_helper | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d532c5ad..47b306f7 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2847,10 +2847,10 @@ pw_check_dxvk () { IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE" fi - if [[ -n ${SELECTED_VULKAN_GPU[@]} ]] ; then # оптимизация когда vulkan драйвера в системе нет + if [[ -n ${SELECTED_VULKAN_GPU[*]} ]] ; then # оптимизация когда vulkan драйвера в системе нет # если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then - if [[ ${SELECTED_VULKAN_GPU[@],,} =~ radv ]] ; then + if [[ ${SELECTED_VULKAN_GPU[*],,} =~ radv ]] ; then for i in "${!SELECTED_VULKAN_GPU[@]}" ; do if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}" @@ -3086,7 +3086,7 @@ pw_skip_get_info () { fi logical_cores=$(grep -c ^"processor" /proc/cpuinfo) - if (( $logical_cores <= "4" )) ; then + if (( logical_cores <= "4" )) ; then GET_LOGICAL_CORE="$(seq -s! 1 $(( logical_cores - 1 )))" else GET_LOGICAL_CORE="1!2!$(seq -s! 4 4 $(( logical_cores - 1 )))" From 0b3d16c13f67c598de1eff6dd4a325d106acfa9b Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 28 Jul 2025 19:56:14 +0500 Subject: [PATCH 11/12] Added PW_VULKAN_UNLOCKED --- data_from_portwine/scripts/functions_helper | 73 +++++++++++---------- data_from_portwine/scripts/var | 1 + 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 47b306f7..ed92f4ce 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2939,8 +2939,9 @@ pw_check_dxvk () { fi fi fi + # формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера - if [[ $PW_VULKAN_DRIVER_USE == "6" ]] ; then + if [[ $PW_VULKAN_DRIVER_USE == "6" ]] || [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6" case "$PW_VULKAN_USE" in 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;; @@ -6603,10 +6604,9 @@ gui_userconf () { SOUND_DRIVER_VAR="disabled" fi - if [[ $GUI_THEME == "default" ]] ; then GUI_THEME=${translations[default]} - elif [[ $GUI_THEME == "compact" ]] ; then GUI_THEME=${translations[compact]} - elif [[ $GUI_THEME == "classic" ]] ; then GUI_THEME=${translations[classic]} - fi + [[ $GUI_THEME == "default" ]] && GUI_THEME=${translations[default]} + [[ $GUI_THEME == "compact" ]] && GUI_THEME=${translations[compact]} + [[ $GUI_THEME == "classic" ]] && GUI_THEME=${translations[classic]} if command -v gsettings &>/dev/null ; then YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) @@ -6614,11 +6614,10 @@ gui_userconf () { [[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!" fi [[ -n $GTK_THEME ]] && GTK_THEME_PROXY="$GTK_THEME" - if [[ -z $GTK_THEME_PROXY ]] ; then GTK_THEME_PROXY="${translations[default]}" - elif [[ $GTK_THEME_PROXY =~ light$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}" - elif [[ $GTK_THEME_PROXY =~ dark$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}" - elif [[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] ; then GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}" - fi + [[ -z $GTK_THEME_PROXY ]] && GTK_THEME_PROXY="${translations[default]}" + [[ $GTK_THEME_PROXY =~ light$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}" + [[ $GTK_THEME_PROXY =~ dark$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}" + [[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] && GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}" if [[ $DESKTOP_WITH_TIME == "posnumber1" ]] ; then DESKTOP_WITH_TIME=${translations[Show in hours and minutes]} @@ -6636,6 +6635,14 @@ gui_userconf () { SORT_WITH_TIME="disabled" fi + if [[ $PW_VULKAN_UNLOCKED == "default" ]] ; then + PW_VULKAN_UNLOCKED="${translations[default]}" + PW_VULKAN_UNLOCKED_LIST="${translations[unlock]}" + elif [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then + PW_VULKAN_UNLOCKED="${translations[unlocked]}" + PW_VULKAN_UNLOCKED_LIST="${translations[default]}" + fi + "${pw_yad}" --title="${translations[GLOBAL SETTINGS (USER.CONF)]}" --form \ --gui-type="settings-shortcut" --separator="%" \ --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ @@ -6652,6 +6659,7 @@ gui_userconf () { --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME_PROXY" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "${translations[Show in hours and minutes]}!${translations[Show in days, hours, minutes]}")" \ --field="${translations[Sort shortcuts by]}!${translations[This setting sorts the shortcuts in the main menu]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "${translations[According to last launch]}!${translations[By time]}")" \ + --field="${translations[Unlock all 3D APIs]}!${translations[Allows you to unlock all available 3D APIs, even if your current graphics card does not meet the minimum requirements]} :CB" "$(combobox_fix "$PW_VULKAN_UNLOCKED" "$PW_VULKAN_UNLOCKED_LIST")" \ --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ --button="${translations[RESET]} USER.CONF!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} user.conf":2 \ --button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the user.conf settings file in a system text editor to view and change variables manually]}":164 \ @@ -6702,9 +6710,8 @@ gui_userconf () { export PW_CHANGE_BRANCH="1" export PW_FORCE_UPDATE="1" else - if [[ $BRANCH == "DEVEL" ]] ; then BRANCH="devel" - elif [[ $BRANCH == "STABLE" ]] ; then BRANCH="master" - fi + [[ $BRANCH == "DEVEL" ]] && BRANCH="devel" + [[ $BRANCH == "STABLE" ]] && BRANCH="master" fi PW_GUI_START="${PW_ADD_SETTINGS_UC[2]}" DOWNLOAD_STEAM_GRID="${PW_ADD_SETTINGS_UC[3]}" @@ -6715,31 +6722,29 @@ gui_userconf () { GTK_THEME="${PW_ADD_SETTINGS_UC[8]}" DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[9]}" SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[10]}" + PW_VULKAN_UNLOCKED="${PW_ADD_SETTINGS_UC[11]}" - if [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]] ; then DOWNLOAD_STEAM_GRID="1" - elif [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then DOWNLOAD_STEAM_GRID="0" - fi - if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then - PW_WINE_DPI_VALUE="recommended" - fi - if [[ $GUI_THEME == "${translations[default]}" ]] ; then GUI_THEME=default - elif [[ $GUI_THEME == "${translations[compact]}" ]] ; then GUI_THEME=compact - elif [[ $GUI_THEME == "${translations[classic]}" ]] ; then GUI_THEME=classic - fi - if [[ $GTK_THEME == "${translations[default]}" ]] ; then unset GTK_THEME - elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME=${GTK_THEME//${translations[light]}/light} - elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME=${GTK_THEME//${translations[dark]}/dark} - fi - if [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber1" - elif [[ $DESKTOP_WITH_TIME == "${translations[Show in days, hours, minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber2" - fi - if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]] ; then SORT_WITH_TIME="lastlaunch" - elif [[ $SORT_WITH_TIME == "${translations[By time]}" ]] ; then SORT_WITH_TIME="bytime" - fi + [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]] && DOWNLOAD_STEAM_GRID="1" + [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Disabled]}|${translations[Disable]}) ]] && DOWNLOAD_STEAM_GRID="0" + [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] && PW_WINE_DPI_VALUE="recommended" + [[ $GUI_THEME == "${translations[default]}" ]] && GUI_THEME="default" + [[ $GUI_THEME == "${translations[compact]}" ]] && GUI_THEME="compact" + [[ $GUI_THEME == "${translations[classic]}" ]] && GUI_THEME="classic" + [[ $GTK_THEME == "${translations[default]}" ]] && unset GTK_THEME + [[ $GTK_THEME =~ ${translations[light]} ]] && GTK_THEME=${GTK_THEME//${translations[light]}/light} + [[ $GTK_THEME =~ ${translations[dark]} ]] && GTK_THEME=${GTK_THEME//${translations[dark]}/dark} + [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]] && DESKTOP_WITH_TIME="posnumber1" + [[ $DESKTOP_WITH_TIME == "${translations[Show in days, hours, minutes]}" ]] && DESKTOP_WITH_TIME="posnumber2" + [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]] && SORT_WITH_TIME="lastlaunch" + [[ $SORT_WITH_TIME == "${translations[By time]}" ]] && SORT_WITH_TIME="bytime" [[ $PW_GPU_USE == "${translations[The graphics card does not support Vulkan]}" ]] && PW_GPU_USE="disabled" + [[ $PW_VULKAN_UNLOCKED == "${translations[default]}" ]] && PW_VULKAN_UNLOCKED="default" + if [[ $PW_VULKAN_UNLOCKED == "${translations[unlock]}" || $PW_VULKAN_UNLOCKED == "${translations[unlocked]}" ]] + then PW_VULKAN_UNLOCKED="unlocked" + fi edit_user_conf_from_gui MIRROR BRANCH PW_GUI_START DOWNLOAD_STEAM_GRID PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE \ - GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME + GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME PW_VULKAN_UNLOCKED restart_pp ;; esac diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index e255d3f7..b7545d40 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -44,6 +44,7 @@ export PW_USE_WINED3D_VULKAN="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" export PW_USE_SAREK_ASYNC="0" export WINEUSERNAME="steamuser" +export PW_VULKAN_UNLOCKED="default" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" export PW_PLUGINS_VER="_v20" From a7d57848741f08e8b61b2cf77d28f265eb03a738 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 28 Jul 2025 19:57:10 +0500 Subject: [PATCH 12/12] update locales --- data_from_portwine/locales/PortProton.pot | 21 ++++++++-- .../locales/es/LC_MESSAGES/PortProton.po | 40 +++++++++++++------ .../locales/ru/LC_MESSAGES/PortProton.po | 20 +++++++++- data_from_portwine/scripts/functions_helper | 1 - 4 files changed, 62 insertions(+), 20 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 13050ecd..e92abef6 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2025-07-26 21:39+0500\n" + "POT-Creation-Date: 2025-07-28 19:50+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1081,9 +1081,9 @@ msgstr "" msgid "Show current wine sync in use" msgstr "" -msgid "MangoHud settings (Keys R_SHIFT + F12 disable MangoHud)" - "\\nnote: To display help for each item, just hover the mouse " - "cursor over the text." +msgid "MangoHud settings (Keys R_SHIFT + F12 disable " + "MangoHud)\\nnote: To display help for each item, just hover " + "the mouse cursor over the text." msgstr "" msgid "Enabling fps limitation with MANGOHUD tools built into PortProton " @@ -1464,6 +1464,12 @@ msgstr "" msgid "By time" msgstr "" +msgid "unlock" +msgstr "" + +msgid "unlocked" +msgstr "" + msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "" @@ -1544,6 +1550,13 @@ msgstr "" msgid "This setting sorts the shortcuts in the main menu" msgstr "" +msgid "Unlock all 3D APIs" +msgstr "" + +msgid "Allows you to unlock all available 3D APIs, even if your current " + "graphics card does not meet the minimum requirements" +msgstr "" + msgid "Open the user.conf settings file in a system text editor to " "view and change variables manually" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 7e36ca1b..1438ec2d 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-26 19:21+0500\n" +"POT-Creation-Date: 2025-07-28 19:50+0500\n" "PO-Revision-Date: 2025-07-24 15:26+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -495,8 +495,8 @@ msgid "" "Super + Y : Toggle NIS upscaling\n" "Super + I : Increase FSR sharpness by 1\n" "Super + O : Decrease FSR sharpness by 1\n" -"Super + S : Take screenshot (currently goes to /tmp/" -"gamescope_DATE.png)\n" +"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE." +"png)\n" "Super + G : Toggle keyboard grab\n" "Super + C : Update clipboard" msgstr "" @@ -1899,6 +1899,12 @@ msgstr "Desde el último inicio" msgid "By time" msgstr "Mostrar tiempo" +msgid "unlock" +msgstr "" + +msgid "unlocked" +msgstr "" + msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "CONFIGURACIONES GLOBALES (USER.CONF)" @@ -1997,6 +2003,14 @@ msgstr "" "Esta configuración ordena los accesos directos en el menú principal según el " "tiempo transcurrido en la aplicación o juego" +msgid "Unlock all 3D APIs" +msgstr "" + +msgid "" +"Allows you to unlock all available 3D APIs, even if your current graphics " +"card does not meet the minimum requirements" +msgstr "" + msgid "" "Open the user.conf settings file in a system text editor to view and " "change variables manually" @@ -2277,8 +2291,8 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ msgid "" #~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" #~ msgstr "" -#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\" -#~ "¿Quieres reiniciar STEAM ahora?" +#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar." +#~ "\\n\\¿Quieres reiniciar STEAM ahora?" #~ msgid "Restarting STEAM... Please wait." #~ msgstr "Restarting STEAM... Please wait." @@ -2288,14 +2302,14 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ msgid "" #~ "Gamescope is not detected on the system, to install it, run the " -#~ "command in the terminal:\\nflatpak install -y runtime/" -#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" -#~ "{GAMESCOPE_VERSION}%\\n(Can be selected and copied)" +#~ "command in the terminal:\\nflatpak install -y runtime/org.freedesktop." +#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Can be " +#~ "selected and copied)" #~ msgstr "" #~ "Gamescope no se detecta en el sistema, para instalarlo, ejecute el " -#~ "comando en el terminal:\\n flatpak install -y runtime/" -#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%" -#~ "{GAMESCOPE_VERSION}%\\n (Se puede seleccionar y copiar)" +#~ "comando en el terminal:\\n flatpak install -y runtime/org.freedesktop." +#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n (Se puede " +#~ "seleccionar y copiar)" #, sh-format #~ msgid "" @@ -2479,8 +2493,8 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ "-F fsr: use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n" #~ "-F nis: use NVIDIA Image Scaling v1.0.3 for upscaling.\n" #~ "-S integer: use integer scaling.\n" -#~ "-S stretch: use stretch scaling, the game will fill the window. " -#~ "(e.g. 4:3 to 16:9).\n" +#~ "-S stretch: use stretch scaling, the game will fill the window. (e." +#~ "g. 4:3 to 16:9).\n" #~ "-b: create a border-less window.\n" #~ "-f: create a full-screen window." #~ msgstr "" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 0d8dbf20..007eb1a8 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-26 19:21+0500\n" -"PO-Revision-Date: 2025-07-26 21:42+0500\n" +"POT-Creation-Date: 2025-07-28 19:50+0500\n" +"PO-Revision-Date: 2025-07-28 19:50+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -1886,6 +1886,12 @@ msgstr "По данным последнего запуска" msgid "By time" msgstr "По проведённому времени" +msgid "unlock" +msgstr "разблокировать" + +msgid "unlocked" +msgstr "разблокировано" + msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)" @@ -1981,6 +1987,16 @@ msgstr "Сортировка ярлыков по" msgid "This setting sorts the shortcuts in the main menu" msgstr "Эта настройка сортирует ярлыки в главном меню" +msgid "Unlock all 3D APIs" +msgstr "Разблокировать все 3D API" + +msgid "" +"Allows you to unlock all available 3D APIs, even if your current graphics " +"card does not meet the minimum requirements" +msgstr "" +"Позволяет разблокировать все доступные 3D API, даже если ваша текущая " +"видеокарта не соответствует минимальным требованиям" + msgid "" "Open the user.conf settings file in a system text editor to view and " "change variables manually" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ed92f4ce..2fb07574 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2939,7 +2939,6 @@ pw_check_dxvk () { fi fi fi - # формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера if [[ $PW_VULKAN_DRIVER_USE == "6" ]] || [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then [[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6"