From 7c6ecdd518df7011d9e9faad6f7680b84feda2ea Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 21 Jul 2025 23:20:16 +0500 Subject: [PATCH 1/6] Refactoring 3D api, added dxvk, vkd3d sarek for stable --- .../locales/es/LC_MESSAGES/PortProton.po | 45 ++++++------ .../locales/ru/LC_MESSAGES/PortProton.mo | Bin 92689 -> 0 bytes .../locales/ru/LC_MESSAGES/PortProton.po | 61 +++++++++------- data_from_portwine/scripts/functions_helper | 69 ++++++++---------- data_from_portwine/scripts/start.sh | 34 ++++++--- data_from_portwine/scripts/var | 7 +- 6 files changed, 112 insertions(+), 104 deletions(-) delete mode 100644 data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 6e4df4d5..40976596 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -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-21 23:16+0500\n" +"PO-Revision-Date: 2025-07-21 23:18+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -87,14 +87,11 @@ 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-Sarek, VKD3D (Vulkan v1.1+)" +msgstr "DXVK-Sarek, VKD3D (Vulkan v1.1+)" -msgid "Stable DXVK, VKD3D (Vulkan v1.2)" -msgstr "DXVK estable, VKD3D (Vulkan v1.2)" - -msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" -msgstr "Más nuevo DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Newest DXVK, VKD3D (Vulkan v1.3+)" +msgstr "Más nuevo DXVK, VKD3D (Vulkan v1.3+)" msgid "GET-OTHER-WINE" msgstr "OBTENER OTRO WINE" @@ -474,8 +471,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 "" @@ -661,6 +658,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" @@ -2193,6 +2193,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)" @@ -2241,8 +2244,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." @@ -2252,14 +2255,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 "" @@ -2443,8 +2446,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.mo b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo deleted file mode 100644 index 268bc42d79ef9e2e273b4dff2738b0d0facb170e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92689 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 E6P0>O#Q*>R diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 0febea11..91333ffa 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-21 16:53+0300\n" -"PO-Revision-Date: 2025-07-21 16:55+0300\n" +"POT-Creation-Date: 2025-07-21 23:16+0500\n" +"PO-Revision-Date: 2025-07-21 23:18+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 "" @@ -86,14 +86,11 @@ 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-Sarek, VKD3D (Vulkan v1.1+)" +msgstr "DXVK-Sarek, VKD3D (Vulkan v1.1+)" -msgid "Stable DXVK, VKD3D (Vulkan v1.2)" -msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" - -msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" -msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Newest DXVK, VKD3D (Vulkan v1.3+)" +msgstr "Новейшие DXVK, VKD3D (Vulkan v1.3+)" msgid "GET-OTHER-WINE" msgstr "Скачать другие версии wine" @@ -342,8 +339,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:" @@ -477,8 +474,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 "" @@ -676,6 +673,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" @@ -1315,9 +1317,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 " @@ -2168,6 +2170,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). " @@ -2230,14 +2235,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 "" @@ -2524,8 +2529,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 "" @@ -2534,8 +2539,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 9cc7b16c..21bfd3cb 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2161,7 +2161,7 @@ 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 + for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_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" \ @@ -2817,16 +2817,22 @@ 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_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 @@ -3793,12 +3799,18 @@ fi # 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}" + if [[ $PW_USE_SAREK_ASYNC == "1" ]] ; then + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}/sarek-async" + export ASYNC_DRAW_CALL_THRESHOLD="1" + export DXVK_ALL_CORES="1" + else + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}/sarek" + fi PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + 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 libvkd3d-shader-1" - CP_WINE_FILES="d3d12core d3d8" + CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12core d3d10_1 d3d10" ;; 2) # NEWEST DXVK AND VKD3D @@ -3811,15 +3823,6 @@ fi 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" - ;; esac if [[ $PW_USE_GALLIUM_NINE == "1" ]] \ @@ -3871,7 +3874,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="" @@ -3947,17 +3949,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) 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 @@ -4182,9 +4176,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_GIT_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll" + try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" + try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll" fi var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b" else @@ -5414,9 +5408,9 @@ gui_edit_db () { ) 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.)]} @@ -5464,6 +5458,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]} @@ -5480,11 +5475,6 @@ gui_edit_db () { # Stable, 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) ]] \ @@ -6095,7 +6085,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 " ;; @@ -7131,7 +7121,6 @@ portwine_start_debug () { 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" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; esac echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 72b4a6f1..14cc2945 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -520,16 +520,8 @@ 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_STABLE="${translations[DXVK-Sarek, VKD3D (Vulkan v1.1+)]}" +SORT_NEWEST="${translations[Newest DXVK, VKD3D (Vulkan v1.3+)]}" if [[ $PW_WINE_USE == PROTON_LG ]] ; then PW_WINE_USE="${PW_PROTON_LG_VER}" @@ -575,6 +567,25 @@ if [[ -f "$portwine_exe" ]] ; then fi fi + if [[ -z $PW_VULKAN_USE ]] \ + || (( PW_VULKAN_USE > 2 )) ; then + pw_check_vulkan + VULKAN_VERSION_CHECK=$(grep "apiVersion" "${PW_TMPFS_PATH}/vulkaninfo.tmp" 2>/dev/null) + if [[ $VULKAN_VERSION_CHECK =~ 1.[3-9]. ]] ; then + export PW_VULKAN_USE="2" + elif [[ $VULKAN_VERSION_CHECK =~ 1.[1-2]. ]] ; then + export PW_VULKAN_USE="1" + else + export PW_VULKAN_USE="0" + fi + fi + + case "$PW_VULKAN_USE" in + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$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 \ @@ -822,6 +833,8 @@ else else export PW_GUI_SORT_TABS=(2 3 4 5 1) fi + PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" + KEY_MENU="$RANDOM" IFS="%" @@ -969,7 +982,6 @@ 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" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index a888200f..00936d49 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -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" @@ -56,12 +57,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_STABLE_VER="sarek-1.11.0" export DXVK_GIT_VER="2.6.1-368" -export VKD3D_STABLE_VER="1.1-2602" +export VKD3D_STABLE_VER="sarek-2.6.0" export VKD3D_GIT_VER="1.1-4655" ###VKBASALT### export PW_VKBASALT_EFFECTS="Curves:cas" From bdb90516a6fa22f65c3dabca2e6a4c90523df350 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 23 Jul 2025 21:27:27 +0500 Subject: [PATCH 2/6] Improved vulkan driver detection condition for PW_VULKAN_USE --- data_from_portwine/scripts/start.sh | 38 +++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 14cc2945..52ed54ac 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -567,14 +567,38 @@ if [[ -f "$portwine_exe" ]] ; then fi fi - if [[ -z $PW_VULKAN_USE ]] \ - || (( PW_VULKAN_USE > 2 )) ; then + [[ $PW_VULKAN_USE =~ [3-5] ]] && unset PW_VULKAN_USE + if [[ -z $PW_VULKAN_USE ]] ; then pw_check_vulkan - VULKAN_VERSION_CHECK=$(grep "apiVersion" "${PW_TMPFS_PATH}/vulkaninfo.tmp" 2>/dev/null) - if [[ $VULKAN_VERSION_CHECK =~ 1.[3-9]. ]] ; then - export PW_VULKAN_USE="2" - elif [[ $VULKAN_VERSION_CHECK =~ 1.[1-2]. ]] ; then - export PW_VULKAN_USE="1" + if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then + count="0" + while read -r line ; do + [[ $line =~ apiVersion ]] && VULKAN_VERSION_CHECK["$count"]="$line" + [[ $line =~ driverVersion ]] && VULKAN_DRIVER_VERSION["$count"]="$line" + if [[ $line =~ deviceName ]] ; then + if [[ $line =~ "$PW_GPU_USE" ]] ; then + VULKAN_DEVICE_NAME["$count"]="$PW_GPU_USE" + break + else + if [[ $line =~ llvmpipe ]] ; then + unset VULKAN_VERSION_CHECK["$count"] VULKAN_DRIVER_VERSION["$count"] + else + VULKAN_DEVICE_NAME["$count"]="$line" + (( count++ )) + fi + fi + fi + done < "${PW_TMPFS_PATH}/vulkaninfo.tmp" + if [[ ${VULKAN_VERSION_CHECK[@]} =~ 1.[3-9]+. ]] ; then + if [[ ${VULKAN_DEVICE_NAME[@],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[@]} =~ (2[5-9]|[3-9][0-9]). ]] \ + || [[ ${VULKAN_DEVICE_NAME[@],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[@]} =~ (5[5-9][0-9]|[6-9][0-9][0-9]). ]] ; then + export PW_VULKAN_USE="2" + else + export PW_VULKAN_USE="6" + fi + elif [[ ${VULKAN_VERSION_CHECK[@]} =~ 1.[1-2]. ]] ; then + export PW_VULKAN_USE="1" + fi else export PW_VULKAN_USE="0" fi From 3a57d159ddc44f7144f868670841a5529b7f947e Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 23 Jul 2025 21:47:26 +0500 Subject: [PATCH 3/6] SORT_STABLE changed to SORT_SAREK --- data_from_portwine/scripts/start.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 52ed54ac..78a927b6 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -520,7 +520,7 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}" fi SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" -SORT_STABLE="${translations[DXVK-Sarek, VKD3D (Vulkan v1.1+)]}" +SORT_SAREK="${translations[DXVK-Sarek, VKD3D (Vulkan v1.1+)]}" SORT_NEWEST="${translations[Newest DXVK, VKD3D (Vulkan v1.3+)]}" if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -605,9 +605,9 @@ if [[ -f "$portwine_exe" ]] ; then fi case "$PW_VULKAN_USE" in - 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE" ;; - 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_OPENGL" ;; - *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_SAREK" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;; esac export KEY_START="$RANDOM" @@ -857,7 +857,7 @@ else else export PW_GUI_SORT_TABS=(2 3 4 5 1) fi - PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" + PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" KEY_MENU="$RANDOM" @@ -1004,7 +1004,7 @@ fi case "${VULKAN_MOD}" in "$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;; - "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; + "$SORT_SAREK" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; esac From ee108295f4ee435ed035dfbe4bafe55ddf055f32 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 23 Jul 2025 21:58:43 +0500 Subject: [PATCH 4/6] STABLE DXVK and VKD3D changed to SAREK --- data_from_portwine/locales/PortProton.pot | 14 ++++----- .../locales/es/LC_MESSAGES/PortProton.po | 29 ++++++++++--------- .../locales/ru/LC_MESSAGES/PortProton.po | 10 +++---- data_from_portwine/scripts/functions_helper | 26 ++++++++--------- data_from_portwine/scripts/var | 4 +-- 5 files changed, 42 insertions(+), 41 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index fc4266ef..706a1802 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-21 16:53+0300\n" + "POT-Creation-Date: 2025-07-23 21:55+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -67,13 +67,10 @@ msgstr "" msgid "WineD3D OpenGL (For video cards without Vulkan)" msgstr "" -msgid "Legacy DXVK (Vulkan v1.1)" +msgid "DXVK-Sarek, VKD3D (Vulkan v1.1+)" msgstr "" -msgid "Stable DXVK, VKD3D (Vulkan v1.2)" -msgstr "" - -msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Newest DXVK, VKD3D (Vulkan v1.3+)" msgstr "" msgid "GET-OTHER-WINE" @@ -543,6 +540,9 @@ msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not " "work with PROTON_LG and WINE_LG)" 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 +1073,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 " diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 40976596..9376ace3 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-21 23:16+0500\n" +"POT-Creation-Date: 2025-07-23 21:55+0500\n" "PO-Revision-Date: 2025-07-21 23:18+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -471,8 +471,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 "" @@ -1316,9 +1316,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)" @@ -2244,8 +2245,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." @@ -2255,14 +2256,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 "" @@ -2446,8 +2447,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 91333ffa..56595167 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-21 23:16+0500\n" -"PO-Revision-Date: 2025-07-21 23:18+0500\n" +"POT-Creation-Date: 2025-07-23 21:55+0500\n" +"PO-Revision-Date: 2025-07-23 21:56+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -1339,11 +1339,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 " diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21bfd3cb..b0d331ca 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2160,8 +2160,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}" ; do + # Download DXVK versions + for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_GIT_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 +2190,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_GIT_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" \ @@ -3796,17 +3796,17 @@ fi 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" + # 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_STABLE_VER}/sarek-async" + 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_STABLE_VER}/sarek" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_SAREK_VER}/sarek" fi - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" @@ -5472,7 +5472,7 @@ gui_edit_db () { 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 + # Sarek, Newest VKD3D_CB="CB" ;; esac @@ -6060,7 +6060,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)]} @@ -7119,7 +7119,7 @@ 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" ;; + 1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; 2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;; *) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;; esac diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 00936d49..9a6649cf 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -58,9 +58,9 @@ export PW_WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_MODE="ultra" ###DXVK_AND_VKD3D### export VKD3D_LIMIT_TESS_FACTORS="64" -export DXVK_STABLE_VER="sarek-1.11.0" +export DXVK_SAREK_VER="sarek-1.11.0" export DXVK_GIT_VER="2.6.1-368" -export VKD3D_STABLE_VER="sarek-2.6.0" +export VKD3D_SAREK_VER="sarek-2.6.0" export VKD3D_GIT_VER="1.1-4655" ###VKBASALT### export PW_VKBASALT_EFFECTS="Curves:cas" From c2ff9aea0a9c8d8cd17981f3a8abf3330ad74381 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 23 Jul 2025 23:05:08 +0500 Subject: [PATCH 5/6] Improved for dxvk-sarek and new 3d api --- data_from_portwine/scripts/functions_helper | 4 ++-- data_from_portwine/scripts/start.sh | 24 ++++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b0d331ca..585b49d5 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3949,7 +3949,7 @@ fi 0) rm_from_var CP_WINE_FILES "d3d9 d3d8" ;; - 1|2) + 1|2|6) rm_from_var CP_DXVK_FILES "d3d9 d3d8" ;; esac @@ -5471,7 +5471,7 @@ 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) + 1|2|6) # Sarek, Newest VKD3D_CB="CB" ;; diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 78a927b6..1fe6a2b1 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -571,17 +571,18 @@ if [[ -f "$portwine_exe" ]] ; then if [[ -z $PW_VULKAN_USE ]] ; then pw_check_vulkan if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then + unset VULKAN_VERSION_CHECK VULKAN_DRIVER_VERSION VULKAN_DEVICE_NAME count="0" while read -r line ; do [[ $line =~ apiVersion ]] && VULKAN_VERSION_CHECK["$count"]="$line" [[ $line =~ driverVersion ]] && VULKAN_DRIVER_VERSION["$count"]="$line" if [[ $line =~ deviceName ]] ; then - if [[ $line =~ "$PW_GPU_USE" ]] ; then + if [[ $line == *"$PW_GPU_USE"* ]] ; then VULKAN_DEVICE_NAME["$count"]="$PW_GPU_USE" break else if [[ $line =~ llvmpipe ]] ; then - unset VULKAN_VERSION_CHECK["$count"] VULKAN_DRIVER_VERSION["$count"] + unset 'VULKAN_VERSION_CHECK["$count"]' 'VULKAN_DRIVER_VERSION["$count"]' else VULKAN_DEVICE_NAME["$count"]="$line" (( count++ )) @@ -589,14 +590,17 @@ if [[ -f "$portwine_exe" ]] ; then fi fi done < "${PW_TMPFS_PATH}/vulkaninfo.tmp" - if [[ ${VULKAN_VERSION_CHECK[@]} =~ 1.[3-9]+. ]] ; then - if [[ ${VULKAN_DEVICE_NAME[@],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[@]} =~ (2[5-9]|[3-9][0-9]). ]] \ - || [[ ${VULKAN_DEVICE_NAME[@],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[@]} =~ (5[5-9][0-9]|[6-9][0-9][0-9]). ]] ; then - export PW_VULKAN_USE="2" - else - export PW_VULKAN_USE="6" - fi - elif [[ ${VULKAN_VERSION_CHECK[@]} =~ 1.[1-2]. ]] ; then + if [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[3-9]+. ]] ; then + for number in $(seq 0 $(( ${#VULKAN_VERSION_CHECK[@]} - 1 ))) ; do + if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} =~ (2[5-9]|[3-9][0-9]). ]] \ + || [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} =~ (5[5-9][0-9]|[6-9][0-9][0-9]). ]] ; then + export PW_VULKAN_USE="2" + break + else + export PW_VULKAN_USE="6" + fi + done + elif [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[1-2]. ]] ; then export PW_VULKAN_USE="1" fi else From 1b0683772ed837d982826c99c3421cd1d7cdc5ef Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 23 Jul 2025 23:45:31 +0500 Subject: [PATCH 6/6] VULKAN_VERSION_CHECK: refactor driver version detect --- data_from_portwine/scripts/start.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 1fe6a2b1..d7429343 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -592,8 +592,10 @@ if [[ -f "$portwine_exe" ]] ; then done < "${PW_TMPFS_PATH}/vulkaninfo.tmp" if [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[3-9]+. ]] ; then for number in $(seq 0 $(( ${#VULKAN_VERSION_CHECK[@]} - 1 ))) ; do - if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} =~ (2[5-9]|[3-9][0-9]). ]] \ - || [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} =~ (5[5-9][0-9]|[6-9][0-9][0-9]). ]] ; then + VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]//*= /}" + VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]// (*/}" + if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} > 25 ]] \ + || [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} > 550.54.13 ]] ; then export PW_VULKAN_USE="2" break else