From f7dab199218725b479639f0587f983f95a5bd21f Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 17:18:37 +0500 Subject: [PATCH 01/10] Added check for gallium nine --- data_from_portwine/scripts/functions_helper | 63 +++++++++++---------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b046d325..ffbe7162 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2737,6 +2737,28 @@ pw_get_tmp_files () { print_warning "use portable vulkaninfo" "$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" fi + + # GALLIUM NINE + unset FIND_D3D_MODULE D3D_MODULE_PATH + if ! check_flatpak ; then + FIND_D3D_MODULE="$(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*" 2>/dev/null)" + if [[ -n "$FIND_D3D_MODULE" ]] ; then + FIND_D3D_MODULE="$(dirname "$FIND_D3D_MODULE")" + IFS=$'\n' + for D3D_MP in $FIND_D3D_MODULE ; do + if [[ -n "$D3D_MODULE_PATH" ]] + then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" + else export D3D_MODULE_PATH="/run/host${D3D_MP}" + fi + done + IFS="$orig_IFS" + fi + else + if [[ -d "/app/lib/i386-linux-gnu/GL/default/lib/d3d" && -d "/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" ]] ; then + export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" + fi + fi + [[ -n $D3D_MODULE_PATH ]] && echo "$D3D_MODULE_PATH" > "${PW_TMPFS_PATH}/gallium_nine.tmp" } pw_skip_get_info () { @@ -4038,7 +4060,8 @@ start_portwine () { export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" fi - if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] ; then + # GALLIUM NINE + if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}" if [[ ! -d "$PATH_TO_GALLIUM_NINE_FILES" ]] ; then if try_download "github.com/Castro-Fidel/vulkan/releases/download/gallium_nine_v.${PW_GALLIUM_NINE_VER}/gallium_nine_v.${PW_GALLIUM_NINE_VER}.tar.xz" \ @@ -4052,28 +4075,8 @@ start_portwine () { print_info "Try create symlink GALLIUM_NINE files..." try_force_link_file "${PATH_TO_GALLIUM_NINE_FILES}/lib32/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll" try_force_link_file "${PATH_TO_GALLIUM_NINE_FILES}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll" - unset FIND_D3D_MODULE D3D_MODULE_PATH - if ! check_flatpak ; then - FIND_D3D_MODULE=$(dirname "$(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*" 2>/dev/null)") - if [[ -n "$FIND_D3D_MODULE" ]] ; then - IFS=$'\n' - for D3D_MP in $FIND_D3D_MODULE ; do - if [[ -n "$D3D_MODULE_PATH" ]] - then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" - else export D3D_MODULE_PATH="/run/host${D3D_MP}" - fi - done - IFS="$orig_IFS" - print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}" - else - pw_stop_progress_bar - yad_error "${translations[d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing package: d3dadapter9]}" - stop_portwine - fi - else - export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d" - print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}" - fi + export D3D_MODULE_PATH="$(<"${PW_TMPFS_PATH}/gallium_nine.tmp")" + print_info "D3D_MODULE_PATH=$D3D_MODULE_PATH" var_winedlloverride_update "d3d9=n" fi @@ -5193,15 +5196,15 @@ gui_edit_db () { PW_USE_DAMAVAND PW_USE_SUPPLIED_DXVK_VKD3D ) - if check_wayland_session ; then - rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT - else - rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND + if check_wayland_session + then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT + else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND fi - if check_flatpak ; then - rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME - fi + check_flatpak && rm_from_array "PW_EDIT_DB_LIST" PW_USE_RUNTIME + + # GALLIUM NINE + [[ ! -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] && rm_from_array "PW_EDIT_DB_LIST" PW_USE_GALLIUM_NINE PW_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.)]} From ea77d551368c00f55e834f00c85d194547ed0ef8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:29:20 +0500 Subject: [PATCH 02/10] Combined damavand with gallium zink. --- data_from_portwine/scripts/functions_helper | 163 +++++++++----------- data_from_portwine/scripts/start.sh | 4 +- data_from_portwine/scripts/var | 1 - 3 files changed, 79 insertions(+), 89 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ffbe7162..52452832 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3627,85 +3627,62 @@ start_portwine () { # 3D API unset CP_VKD3D_FILES CP_DXVK_FILES CP_DGV2_FILES CP_WINE_FILES PATH_TO_DXVK_FILES PATH_TO_VKD3D_FILES CP_GALLIUM_NINE_FILES - [[ "$PW_USE_GALLIUM_NINE" == "1" ]] && PW_VULKAN_USE="3" + case "${PW_VULKAN_USE}" in + 0) + # WINED3D OPENGL + print_info "Use WINED3D OpenGL" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export PW_VKBASALT="0" + ;; + 1) + # STABLE DXVK AND VKD3D + print_info "DXVK v.${DXVK_STABLE_VER} in use" + print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" + CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" + CP_WINE_FILES="d3d12core d3d8" + ;; + 2) + # NEWEST DXVK AND VKD3D + print_info "DXVK v.${DXVK_GIT_VER} in use" + print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" + [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" + CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d10_1 d3d10" + ;; + 3) + # LEGACY DXVK + print_info "DXVK v.${DXVK_LEGACY_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d8" + ;; + esac - if [[ $PW_USE_DAMAVAND == "1" ]] && [[ $PW_VULKAN_USE != "0" ]] ; then - # WINED3D VULKAN (DAMAVAND) + # GALLIUM ZINK + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_VULKAN_USE != "0" ]] ; then + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export WINE_D3D_CONFIG="renderer=vulkan" - else - case "${PW_VULKAN_USE}" in - 0) - # WINED3D OPENGL - print_info "Use WINED3D OpenGL" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" - export PW_VKBASALT="0" - export PW_USE_GALLIUM_ZINK="0" - ;; - 1) - # STABLE DXVK AND VKD3D - print_info "DXVK v.${DXVK_STABLE_VER} in use" - print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" - [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" - CP_VKD3D_FILES="d3d12 libvkd3d-shader-1" - CP_WINE_FILES="d3d12core d3d8" - ;; - 2) - # NEWEST DXVK AND VKD3D - print_info "DXVK v.${DXVK_GIT_VER} in use" - print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" - [[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk" - CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d10_1 d3d10" - ;; - 3) - # GALLIUM NINE - print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_GALLIUM_NINE_FILES="d3d9" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" - export PW_VKBASALT="0" - export PW_MANGOHUD="0" - export PW_WINE_FULLSCREEN_FSR="0" - export PW_USE_GALLIUM_ZINK="0" - export DXVK_ENABLE_NVAPI="0" - export PW_USE_VRCLIENT="0" - ;; - 5) - # 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 - fi - - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then - # GALLIUM ZINK - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" export __GL_YIELD="NOTHING" export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=vulkan" export __GLX_VENDOR_LIBRARY_NAME="mesa" export MESA_LOADER_DRIVER_OVERRIDE="zink" export GALLIUM_DRIVER="zink" @@ -3720,9 +3697,26 @@ start_portwine () { fi fi + # GALLIUM NINE + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_GALLIUM_NINE_FILES="d3d9" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export PW_VKBASALT="0" + export PW_MANGOHUD="0" + export PW_WINE_FULLSCREEN_FSR="0" + export DXVK_ENABLE_NVAPI="0" + export PW_USE_VRCLIENT="0" + fi + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - && [[ ! $PW_VULKAN_USE =~ (0|3) ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ + && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] \ && [[ -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 @@ -3773,6 +3767,9 @@ start_portwine () { if [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then rm_from_var CP_DXVK_FILES "d3d9" + elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + rm_from_var CP_GALLIUM_NINE_FILES "d3d9" + rm_from_var CP_WINE_FILES "d3d8" else case "${PW_VULKAN_USE}" in 0) @@ -3786,10 +3783,6 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9 d3d8" ;; 3) - rm_from_var CP_GALLIUM_NINE_FILES "d3d9" - rm_from_var CP_WINE_FILES "d3d8" - ;; - 5) rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; @@ -5193,7 +5186,7 @@ gui_edit_db () { PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE - PW_USE_DAMAVAND PW_USE_SUPPLIED_DXVK_VKD3D + PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5246,9 +5239,8 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of dxvk WineD3D vulkan (Damavand) is used. This function does not work with Gallium Nine.]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} - PW_USE_DAMAVAND_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_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} @@ -5260,13 +5252,13 @@ gui_edit_db () { 0) # WineD3D OpenGL 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_DAMAVAND" + DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK" ;; 1|2) # Stable, Newest VKD3D_CB="CB" ;; - 5) + 3) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5863,7 +5855,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|5) + 0|3) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6889,8 +6881,7 @@ 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} - Native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/PortProton.log" ;; - 5) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_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 5733e8ee..51f5ac31 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -516,8 +516,8 @@ 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" ;; - 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" ;; + 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -958,7 +958,7 @@ 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="5" ;; + "$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 886b1b04..7d7cbb6a 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -40,7 +40,6 @@ export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_NINE="0" -export PW_USE_DAMAVAND="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" From 66223080dc500f498673710ede61d5882dab6c3d Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:35:39 +0500 Subject: [PATCH 03/10] Update locales and fix for dgvoodoo2 --- data_from_portwine/locales/PortProton.pot | 14 ++---- .../locales/es/LC_MESSAGES/PortProton.po | 42 +++++++++++------- .../locales/ru/LC_MESSAGES/PortProton.po | 44 ++++++++++++------- data_from_portwine/scripts/functions_helper | 2 + 4 files changed, 59 insertions(+), 43 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 780401ce..489aa7b1 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-05-09 02:05+0500\n" + "POT-Creation-Date: 2025-05-24 23:31+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -341,10 +341,6 @@ msgstr "" msgid "Launched" msgstr "" -msgid "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the " - "missing package: d3dadapter9" -msgstr "" - msgid "EXIT" msgstr "" @@ -524,16 +520,14 @@ msgid "Enable experemental native Wayland support (need special wine build " "to work)" msgstr "" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also " + "instead of dxvk WineD3D vulkan (Damavand) is used. This function " + "does not work with Gallium Nine." msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental " - "function." -msgstr "" - msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not " "work with PROTON_LG and WINE_LG)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 9fde19d2..c4420299 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-05-09 02:05+0500\n" -"PO-Revision-Date: 2024-11-13 08:18+0500\n" +"POT-Creation-Date: 2025-05-24 23:31+0500\n" +"PO-Revision-Date: 2025-05-24 23:34+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -375,13 +375,6 @@ msgstr "¿Quieres instalar las bibliotecas recomendadas en el nuevo prefijo:" msgid "Launched" msgstr "Lanzado" -msgid "" -"d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " -"package: d3dadapter9" -msgstr "" -"d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" -"Instala el paquete faltante:d3dadapter9" - msgid "EXIT" msgstr "SALIR" @@ -631,17 +624,18 @@ msgstr "" "Habilite el soporte experimental nativo de Wayland (necesita una compilación " "de vino especial para funcionar)" -#, fuzzy -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -msgstr "Gallium Zink (OpenGL a Vulkan)" +msgid "" +"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " +"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " +"Gallium Nine." +msgstr "" +"Utilice Gallium Zink (el controlador OpenGL se implementa mediante Vulkan). " +"En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta función no " +"funciona con Gallium Nine." msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" -#, fuzzy -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -msgstr "WineD3D Vulkan (Damavand experimental)" - msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2177,6 +2171,22 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" +#~ msgid "" +#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " +#~ "package: d3dadapter9" +#~ msgstr "" +#~ "d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" +#~ "Instala el paquete faltante:d3dadapter9" + +#, fuzzy +#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +#~ msgstr "Gallium Zink (OpenGL a Vulkan)" + +#, fuzzy +#~ msgid "" +#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +#~ msgstr "WineD3D Vulkan (Damavand experimental)" + #~ msgid "Global settings" #~ msgstr "Configuraciones globales" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 06d99106..288be5bf 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-05-09 02:05+0500\n" -"PO-Revision-Date: 2025-04-21 21:59+0500\n" +"POT-Creation-Date: 2025-05-24 23:31+0500\n" +"PO-Revision-Date: 2025-05-24 23:33+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "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" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.4.4\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -385,13 +385,6 @@ msgstr "Хотите добавить рекомендуемые библиот msgid "Launched" msgstr "Запущено" -msgid "" -"d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " -"package: d3dadapter9" -msgstr "" -"d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий пакет: " -"d3dadapter9" - msgid "EXIT" msgstr "ВЫХОД" @@ -652,17 +645,18 @@ msgstr "" "Включить экспериментальную поддержку запуска игры/программы из-под нативной " "сессии Wayland, минуя XWayland (для работы требуется специальная сборка Wine)" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" +msgid "" +"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " +"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " +"Gallium Nine." +msgstr "" +"Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо dxvk " +"используется WineD3D vulkan (Damavand). Данная функция не работает вместе с " +"Gallium Nine." msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" -msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -msgstr "" -"Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " -"функция." - msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2159,6 +2153,22 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "" +#~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " +#~ "package: d3dadapter9" +#~ msgstr "" +#~ "d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий " +#~ "пакет: d3dadapter9" + +#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +#~ msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" + +#~ msgid "" +#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +#~ msgstr "" +#~ "Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " +#~ "функция." + #~ msgid "Global settings" #~ msgstr "Глобальные настройки" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 52452832..36d08aae 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3770,6 +3770,8 @@ start_portwine () { elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" + elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + rm_from_var CP_WINE_FILES "d3d9 d3d8" else case "${PW_VULKAN_USE}" in 0) From a0b8077fc0e557dc09b4373131025951d56722e3 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 24 May 2025 23:49:51 +0500 Subject: [PATCH 04/10] Optimizations for PW_USE_SUPPLIED_DXVK_VKD3D --- data_from_portwine/scripts/functions_helper | 41 +++++++++++---------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 36d08aae..57137a5e 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3716,24 +3716,25 @@ start_portwine () { if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ - && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] \ && [[ -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="" - else - CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" - CP_WINE_FILES="d3d10_1 d3d10" - fi - if [[ $PW_DGVOODOO2 != "1" ]] ; then - if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then - try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" - try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" - var_winedlloverride_update "d3d8=n" - elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] - then add_to_var CP_DXVK_FILES "d3d8" - else add_to_var CP_WINE_FILES "d3d8" + if [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] ; 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="" + else + CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" + CP_WINE_FILES="d3d10_1 d3d10" + fi + if [[ $PW_DGVOODOO2 != "1" ]] ; then + if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then + try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" + try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" + var_winedlloverride_update "d3d8=n" + elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] + then add_to_var CP_DXVK_FILES "d3d8" + else add_to_var CP_WINE_FILES "d3d8" + fi fi fi if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ @@ -3765,13 +3766,13 @@ start_portwine () { try_remove_file "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf" try_force_link_file "${DGV2CONF}" "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf" - if [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - rm_from_var CP_DXVK_FILES "d3d9" - elif [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then rm_from_var CP_WINE_FILES "d3d9 d3d8" + elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then + rm_from_var CP_DXVK_FILES "d3d9" else case "${PW_VULKAN_USE}" in 0) From 280b1b044dc8ef39713b192366fe800bdfed26c1 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 25 May 2025 01:38:10 +0500 Subject: [PATCH 05/10] Gallium zink and WineD3D vulkan moved to 3D api --- data_from_portwine/locales/PortProton.pot | 10 +- .../locales/es/LC_MESSAGES/PortProton.po | 23 ++-- .../locales/ru/LC_MESSAGES/PortProton.po | 28 ++--- data_from_portwine/scripts/functions_helper | 111 +++++++++--------- data_from_portwine/scripts/start.sh | 11 +- data_from_portwine/scripts/var | 1 - 6 files changed, 93 insertions(+), 91 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 489aa7b1..434bd350 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-05-24 23:31+0500\n" + "POT-Creation-Date: 2025-05-25 01:15+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,6 +76,9 @@ msgstr "" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "" +msgid "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "" + msgid "GET-OTHER-WINE" msgstr "" @@ -520,11 +523,6 @@ msgid "Enable experemental native Wayland support (need special wine build " "to work)" msgstr "" -msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also " - "instead of dxvk WineD3D vulkan (Damavand) is used. This function " - "does not work with Gallium Nine." -msgstr "" - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index c4420299..bbbe3214 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-05-24 23:31+0500\n" +"POT-Creation-Date: 2025-05-25 01:15+0500\n" "PO-Revision-Date: 2025-05-24 23:34+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -87,6 +87,9 @@ 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 "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "" + msgid "GET-OTHER-WINE" msgstr "OBTENER OTRO WINE" @@ -624,15 +627,6 @@ msgstr "" "Habilite el soporte experimental nativo de Wayland (necesita una compilación " "de vino especial para funcionar)" -msgid "" -"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " -"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " -"Gallium Nine." -msgstr "" -"Utilice Gallium Zink (el controlador OpenGL se implementa mediante Vulkan). " -"En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta función no " -"funciona con Gallium Nine." - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" @@ -2171,6 +2165,15 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" +#~ msgid "" +#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " +#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " +#~ "with Gallium Nine." +#~ msgstr "" +#~ "Utilice Gallium Zink (el controlador OpenGL se implementa mediante " +#~ "Vulkan). En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta " +#~ "función no funciona con Gallium Nine." + #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 288be5bf..f12f484b 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-05-24 23:31+0500\n" -"PO-Revision-Date: 2025-05-24 23:33+0500\n" +"POT-Creation-Date: 2025-05-25 01:15+0500\n" +"PO-Revision-Date: 2025-05-25 01:17+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -95,6 +95,9 @@ msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" +msgid "Gallium Zink and WineD3D Vulkan (Damavand)" +msgstr "Gallium Zink и WineD3D Vulkan (Damavand)" + msgid "GET-OTHER-WINE" msgstr "Скачать другие версии wine" @@ -645,15 +648,6 @@ msgstr "" "Включить экспериментальную поддержку запуска игры/программы из-под нативной " "сессии Wayland, минуя XWayland (для работы требуется специальная сборка Wine)" -msgid "" -"Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of " -"dxvk WineD3D vulkan (Damavand) is used. This function does not work with " -"Gallium Nine." -msgstr "" -"Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо dxvk " -"используется WineD3D vulkan (Damavand). Данная функция не работает вместе с " -"Gallium Nine." - msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" @@ -2153,6 +2147,15 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "" +#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " +#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " +#~ "with Gallium Nine." +#~ msgstr "" +#~ "Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо " +#~ "dxvk используется WineD3D vulkan (Damavand). Данная функция не работает " +#~ "вместе с Gallium Nine." + #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2231,9 +2234,6 @@ msgstr "БИБЛИОТЕКИ" #~ msgid "Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)" #~ msgstr "Авторские права © $%DATE% Castro-Fidel (linux-gaming.ru)" -#~ msgid "WineD3D Vulkan (Damavand experimental)" -#~ msgstr "WineD3D Vulkan (Damavand - экспериментальный)" - #~ msgid "Change the version of WINDOWS 10 to WINDOWS 7 in the prefix" #~ msgstr "Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 57137a5e..ae700047 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,10 +1814,8 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" - fi + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3670,36 +3668,34 @@ start_portwine () { CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d8" ;; + 4) + # GALLIUM ZINK AND WINED3D VULKAN + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" + print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=vulkan" + export __GLX_VENDOR_LIBRARY_NAME="mesa" + export MESA_LOADER_DRIVER_OVERRIDE="zink" + export GALLIUM_DRIVER="zink" + if ! check_wayland_session \ + && ! check_gamescope_session \ + && [[ "${PW_GAMESCOPE}" != "1" ]] + then + export LIBGL_KOPPER_DRI2="1" + fi + if [[ $(check_vendor_gpu) =~ nouveau ]] ; then + export NOUVEAU_USE_ZINK="1" + fi esac - # GALLIUM ZINK - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" && $PW_VULKAN_USE != "0" ]] ; then - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - print_info "Use DAMAVAND (DirectX to wined3d vulkan)" - unset PATH_TO_DXVK_FILES CP_DXVK_FILES - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=vulkan" - export __GLX_VENDOR_LIBRARY_NAME="mesa" - export MESA_LOADER_DRIVER_OVERRIDE="zink" - export GALLIUM_DRIVER="zink" - if ! check_wayland_session \ - && ! check_gamescope_session \ - && [[ "${PW_GAMESCOPE}" != "1" ]] - then - export LIBGL_KOPPER_DRI2="1" - fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi - fi - # GALLIUM NINE if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_GALLIUM_NINE_FILES="d3d9" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" @@ -3715,26 +3711,25 @@ start_portwine () { fi if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != "0" ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ + && [[ ! $PW_VULKAN_USE =~ (0|4) ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] \ && [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] ; then - if [[ $PW_USE_GALLIUM_NINE != "1" && $PW_USE_GALLIUM_ZINK != "1" ]] ; 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="" - else - CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" - CP_WINE_FILES="d3d10_1 d3d10" - fi - if [[ $PW_DGVOODOO2 != "1" ]] ; then - if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then - try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" - try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" - var_winedlloverride_update "d3d8=n" - elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] - then add_to_var CP_DXVK_FILES "d3d8" - else add_to_var CP_WINE_FILES "d3d8" - fi + 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="" + else + CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi" + CP_WINE_FILES="d3d10_1 d3d10" + fi + if [[ $PW_DGVOODOO2 != "1" ]] ; then + if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then + try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll" + try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll" + var_winedlloverride_update "d3d8=n" + elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" || -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d8.dll" ]] + then add_to_var CP_DXVK_FILES "d3d8" + else add_to_var CP_WINE_FILES "d3d8" fi fi if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \ @@ -3769,10 +3764,11 @@ start_portwine () { if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" - elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then - rm_from_var CP_WINE_FILES "d3d9 d3d8" elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - rm_from_var CP_DXVK_FILES "d3d9" + if [[ $PW_VULKAN_USE = "4" ]] + then rm_from_var CP_WINE_FILES "d3d9" + else rm_from_var CP_DXVK_FILES "d3d9" + fi else case "${PW_VULKAN_USE}" in 0) @@ -3789,6 +3785,9 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; + 4) + rm_from_var CP_WINE_FILES "d3d9 d3d8" + ;; esac fi fi @@ -5188,7 +5187,7 @@ gui_edit_db () { PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE - PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE + PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE PW_USE_SUPPLIED_DXVK_VKD3D ) @@ -5242,7 +5241,6 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead of dxvk WineD3D vulkan (Damavand) is used. This function does not work with Gallium Nine.]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} 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)]} @@ -5255,13 +5253,13 @@ gui_edit_db () { 0) # WineD3D OpenGL 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" + DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE" ;; 1|2) # Stable, Newest VKD3D_CB="CB" ;; - 3) + 3|4) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5858,7 +5856,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|3|4) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6885,6 +6883,7 @@ portwine_start_debug () { 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" ;; + 4) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - Gallium Zink and WineD3D Vulkan" >> "${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 51f5ac31..aafa9fff 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -509,15 +509,17 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}" fi SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" +SORT_VULKAN="${translations[Gallium Zink and WineD3D Vulkan (Damavand)]}" 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" ;; - *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; - 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN" ;; + 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; + 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_VULKAN!$SORT_OPENGL" ;; + 4) PW_DEFAULT_VULKAN_USE="$SORT_VULKAN!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -959,6 +961,7 @@ case "${VULKAN_MOD}" in "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; + "$SORT_VULKAN" ) export PW_VULKAN_USE="4" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 7d7cbb6a..d66d4598 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -38,7 +38,6 @@ export PW_LOCALE_SELECT="disabled" export PW_DINPUT_PROTOCOL="0" export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" -export PW_USE_GALLIUM_ZINK="0" export PW_USE_GALLIUM_NINE="0" export PW_USE_SUPPLIED_DXVK_VKD3D="1" ###DEFAULT_WINE### From a9db4e3bbdc15bb650600759521daab0a4ab587d Mon Sep 17 00:00:00 2001 From: Htylol Date: Tue, 27 May 2025 04:13:08 +0500 Subject: [PATCH 06/10] Update DISABLE_EDIT_DB_LIST for PW_USE_SUPPLIED_DXVK_VKD3D --- data_from_portwine/scripts/functions_helper | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ae700047..42d1f253 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5266,7 +5266,10 @@ gui_edit_db () { ;; esac - [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" + if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ + || [[ $PW_VULKAN_USE =~ (0|4) ]] ; then + DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" + fi unset ADD_CHK_BOX_EDIT_DB for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do From 595363adbf23242734cb49bec5419c2ede8d59e1 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:30:29 +0500 Subject: [PATCH 07/10] Many changes for 3D api --- data_from_portwine/scripts/functions_helper | 89 +++++++++++---------- data_from_portwine/scripts/start.sh | 11 +-- data_from_portwine/scripts/var | 2 + 3 files changed, 54 insertions(+), 48 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 42d1f253..ed3b19e4 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3668,38 +3668,42 @@ start_portwine () { CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d8" ;; - 4) - # GALLIUM ZINK AND WINED3D VULKAN - print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - print_info "Use DAMAVAND (DirectX to wined3d vulkan)" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=vulkan" - export __GLX_VENDOR_LIBRARY_NAME="mesa" - export MESA_LOADER_DRIVER_OVERRIDE="zink" - export GALLIUM_DRIVER="zink" - if ! check_wayland_session \ - && ! check_gamescope_session \ - && [[ "${PW_GAMESCOPE}" != "1" ]] - then - export LIBGL_KOPPER_DRI2="1" - fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi esac + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ + || [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + unset PATH_TO_DXVK_FILES CP_DXVK_FILES + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" + CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" + fi + + # GALLIUM ZINK + if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + export WINE_D3D_CONFIG="renderer=gl" + export __GLX_VENDOR_LIBRARY_NAME="mesa" + export MESA_LOADER_DRIVER_OVERRIDE="zink" + export GALLIUM_DRIVER="zink" + if ! check_wayland_session \ + && ! check_gamescope_session \ + && [[ "${PW_GAMESCOPE}" != "1" ]] + then + export LIBGL_KOPPER_DRI2="1" + fi + if [[ $(check_vendor_gpu) =~ nouveau ]] ; then + export NOUVEAU_USE_ZINK="1" + fi + fi + # GALLIUM NINE if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - unset PATH_TO_DXVK_FILES CP_DXVK_FILES - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" + rm_from_var CP_WINE_FILES "d3d9" CP_GALLIUM_NINE_FILES="d3d9" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d8 dxgi" export __GL_YIELD="NOTHING" export mesa_glthread="true" export WINE_D3D_CONFIG="renderer=gl" @@ -3710,9 +3714,15 @@ start_portwine () { export PW_USE_VRCLIENT="0" fi + # WINED3D VULKAN + if [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + print_info "Use DAMAVAND (DirectX to wined3d vulkan)" + export WINE_D3D_CONFIG="renderer=vulkan" + fi + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - && [[ ! $PW_VULKAN_USE =~ (0|4) ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] \ + && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ + && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "1" ]] \ && [[ -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 @@ -3764,11 +3774,10 @@ start_portwine () { if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then rm_from_var CP_GALLIUM_NINE_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" + elif [[ $PW_USE_GALLIUM_ZINK == "1" ]] || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then + rm_from_var CP_WINE_FILES "d3d9 d3d8" elif [[ $PW_USE_SUPPLIED_DXVK_VKD3D != "0" ]] ; then - if [[ $PW_VULKAN_USE = "4" ]] - then rm_from_var CP_WINE_FILES "d3d9" - else rm_from_var CP_DXVK_FILES "d3d9" - fi + rm_from_var CP_DXVK_FILES "d3d9" else case "${PW_VULKAN_USE}" in 0) @@ -3785,9 +3794,6 @@ start_portwine () { rm_from_var CP_DXVK_FILES "d3d9" rm_from_var CP_WINE_FILES "d3d8" ;; - 4) - rm_from_var CP_WINE_FILES "d3d9 d3d8" - ;; esac fi fi @@ -5188,7 +5194,7 @@ gui_edit_db () { PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE - PW_USE_SUPPLIED_DXVK_VKD3D + PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5242,6 +5248,8 @@ gui_edit_db () { PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} + PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + 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_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]} @@ -5253,13 +5261,13 @@ gui_edit_db () { 0) # WineD3D OpenGL VKD3D_CB="DCB" - DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE" + 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 VKD3D_CB="CB" ;; - 3|4) + 3) # Legacy VKD3D_CB="DCB" DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING" @@ -5267,7 +5275,7 @@ gui_edit_db () { esac if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \ - || [[ $PW_VULKAN_USE =~ (0|4) ]] ; then + || [[ $PW_VULKAN_USE == "0" ]] ; then DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" fi @@ -5859,7 +5867,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|4) + 0|3) DISABLE_DGV2_LIST="PW_DGV2_USE_DX12 " ;; @@ -6886,7 +6894,6 @@ portwine_start_debug () { 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" ;; - 4) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - Gallium Zink and WineD3D Vulkan" >> "${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 aafa9fff..257290b6 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -509,17 +509,15 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}" fi SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}" -SORT_VULKAN="${translations[Gallium Zink and WineD3D Vulkan (Damavand)]}" 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!$SORT_VULKAN" ;; - 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; - 3) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_VULKAN!$SORT_OPENGL" ;; - 4) PW_DEFAULT_VULKAN_USE="$SORT_VULKAN!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; - *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_VULKAN!$SORT_OPENGL" ;; + 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) PW_DEFAULT_VULKAN_USE="$SORT_LEGACY!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;; + *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_OPENGL" ;; esac if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -961,7 +959,6 @@ case "${VULKAN_MOD}" in "$SORT_STABLE" ) export PW_VULKAN_USE="1" ;; "$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;; "$SORT_LEGACY" ) export PW_VULKAN_USE="3" ;; - "$SORT_VULKAN" ) export PW_VULKAN_USE="4" ;; esac init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index d66d4598..ba870a68 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -39,6 +39,8 @@ export PW_DINPUT_PROTOCOL="0" export PW_USE_VRCLIENT="0" export STAGING_SHARED_MEMORY="1" 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" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" From d2dc2cb2de957b30058fe97f27f2330e69355ae8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:31:04 +0500 Subject: [PATCH 08/10] Update locales --- data_from_portwine/locales/PortProton.pot | 12 ++++-- .../locales/es/LC_MESSAGES/PortProton.po | 33 +++++----------- .../locales/ru/LC_MESSAGES/PortProton.po | 38 +++++++------------ 3 files changed, 32 insertions(+), 51 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 434bd350..cfacf4be 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-05-25 01:15+0500\n" + "POT-Creation-Date: 2025-05-30 01:28+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,9 +76,6 @@ msgstr "" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "" -msgid "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "" - msgid "GET-OTHER-WINE" msgstr "" @@ -526,6 +523,13 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "" + +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental " + "function." +msgstr "" + msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not " "work with PROTON_LG and WINE_LG)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index bbbe3214..13c49515 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-05-25 01:15+0500\n" -"PO-Revision-Date: 2025-05-24 23:34+0500\n" +"POT-Creation-Date: 2025-05-30 01:28+0500\n" +"PO-Revision-Date: 2024-11-13 08:18+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -87,9 +87,6 @@ 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 "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "" - msgid "GET-OTHER-WINE" msgstr "OBTENER OTRO WINE" @@ -630,6 +627,14 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "" +#, fuzzy +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "Gallium Zink (OpenGL a Vulkan)" + +#, fuzzy +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +msgstr "WineD3D Vulkan (Damavand experimental)" + msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2165,15 +2170,6 @@ msgstr "UNIRSE" msgid "THIRD PARTY LIBRARIES" msgstr "BIBLIOTECAS DE TERCEROS" -#~ msgid "" -#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " -#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " -#~ "with Gallium Nine." -#~ msgstr "" -#~ "Utilice Gallium Zink (el controlador OpenGL se implementa mediante " -#~ "Vulkan). En lugar de dxvk, se utiliza WineD3D Vulkan (Damavand). Esta " -#~ "función no funciona con Gallium Nine." - #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2181,15 +2177,6 @@ msgstr "BIBLIOTECAS DE TERCEROS" #~ "d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n" #~ "Instala el paquete faltante:d3dadapter9" -#, fuzzy -#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -#~ msgstr "Gallium Zink (OpenGL a Vulkan)" - -#, fuzzy -#~ msgid "" -#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -#~ msgstr "WineD3D Vulkan (Damavand experimental)" - #~ msgid "Global settings" #~ msgstr "Configuraciones globales" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index f12f484b..08ed0abb 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-05-25 01:15+0500\n" -"PO-Revision-Date: 2025-05-25 01:17+0500\n" +"POT-Creation-Date: 2025-05-30 01:28+0500\n" +"PO-Revision-Date: 2025-04-21 21:59+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "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" -"X-Generator: Poedit 3.4.4\n" +"X-Generator: Poedit 3.6\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -95,9 +95,6 @@ msgstr "Стабильные DXVK, VKD3D (Vulkan v1.2)" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "Новейшие DXVK, VKD3D, D8VK (Vulkan v1.3+)" -msgid "Gallium Zink and WineD3D Vulkan (Damavand)" -msgstr "Gallium Zink и WineD3D Vulkan (Damavand)" - msgid "GET-OTHER-WINE" msgstr "Скачать другие версии wine" @@ -651,6 +648,14 @@ msgstr "" msgid "Use Gallium Nine (native DirectX 9 for MESA)" msgstr "Принудительно использовать Gallium Nine (нативный DirectX9 для Mesa)" +msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" +msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" + +msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." +msgstr "" +"Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " +"функция." + msgid "" "Use dxvk and vkd3d which are bundled with wine or proton. (Does not work " "with PROTON_LG and WINE_LG)" @@ -2147,15 +2152,6 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" -#~ msgid "" -#~ "Use Gallium Zink (OpenGL driver is implemented via Vulkan), also instead " -#~ "of dxvk WineD3D vulkan (Damavand) is used. This function does not work " -#~ "with Gallium Nine." -#~ msgstr "" -#~ "Использовать Gallium Zink (трансляция OpenGL в Vulkan), так же заместо " -#~ "dxvk используется WineD3D vulkan (Damavand). Данная функция не работает " -#~ "вместе с Gallium Nine." - #~ msgid "" #~ "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " #~ "package: d3dadapter9" @@ -2163,15 +2159,6 @@ msgstr "БИБЛИОТЕКИ" #~ "d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий " #~ "пакет: d3dadapter9" -#~ msgid "Use Gallium Zink (OpenGL driver is implemented via Vulkan)" -#~ msgstr "Использовать Gallium Zink (трансляция OpenGL в Vulkan)" - -#~ msgid "" -#~ "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function." -#~ msgstr "" -#~ "Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная " -#~ "функция." - #~ msgid "Global settings" #~ msgstr "Глобальные настройки" @@ -2234,6 +2221,9 @@ msgstr "БИБЛИОТЕКИ" #~ msgid "Copyright © $%DATE% Castro-Fidel (linux-gaming.ru)" #~ msgstr "Авторские права © $%DATE% Castro-Fidel (linux-gaming.ru)" +#~ msgid "WineD3D Vulkan (Damavand experimental)" +#~ msgstr "WineD3D Vulkan (Damavand - экспериментальный)" + #~ msgid "Change the version of WINDOWS 10 to WINDOWS 7 in the prefix" #~ msgstr "Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе" From 5e39bf3ae3b44890af2439bfb3dc1ee6b49522b8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 01:49:42 +0500 Subject: [PATCH 09/10] Use WINE_D3D_CONFIG=renderer=gl for default --- data_from_portwine/scripts/functions_helper | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ed3b19e4..d1bc08e5 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,8 +1814,10 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" + if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then # без этого могут быть вылеты + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" + fi else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3632,9 +3634,6 @@ start_portwine () { PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export PW_VKBASALT="0" ;; 1) @@ -3682,9 +3681,6 @@ start_portwine () { # GALLIUM ZINK if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export __GLX_VENDOR_LIBRARY_NAME="mesa" export MESA_LOADER_DRIVER_OVERRIDE="zink" export GALLIUM_DRIVER="zink" @@ -3704,9 +3700,6 @@ start_portwine () { print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" rm_from_var CP_WINE_FILES "d3d9" CP_GALLIUM_NINE_FILES="d3d9" - export __GL_YIELD="NOTHING" - export mesa_glthread="true" - export WINE_D3D_CONFIG="renderer=gl" export PW_VKBASALT="0" export PW_MANGOHUD="0" export PW_WINE_FULLSCREEN_FSR="0" @@ -3718,8 +3711,13 @@ start_portwine () { if [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then print_info "Use DAMAVAND (DirectX to wined3d vulkan)" export WINE_D3D_CONFIG="renderer=vulkan" + else + export WINE_D3D_CONFIG="renderer=gl" fi + export __GL_YIELD="NOTHING" + export mesa_glthread="true" + if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "1" ]] \ From 7d3d0031f73835337c4e309cf9a6bd78ee49a1c5 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 30 May 2025 02:10:03 +0500 Subject: [PATCH 10/10] Refactoring for 3D api --- data_from_portwine/scripts/functions_helper | 52 +++++++++------------ 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d1bc08e5..c700e7fa 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1814,10 +1814,8 @@ pw_mangohud_check () { export PW_MANGOHUD_SLR='MANGOHUD=1' fi # TODO: need to fix work for OpenGL without flatpak... - if [[ $PW_USE_GALLIUM_ZINK == "0" ]] ; then # без этого могут быть вылеты - MANGOHUD_LIB_NAME="libMangoHud_shim.so" - export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" - fi + MANGOHUD_LIB_NAME="libMangoHud_shim.so" + export PW_LD_PRELOAD="${PW_LD_PRELOAD:+$PW_LD_PRELOAD:}${MANGOHUD_LIB_NAME}" else export PW_MANGOHUD_SLR='' print_info "MangoHud is disabled" @@ -3631,10 +3629,10 @@ start_portwine () { 0) # WINED3D OPENGL print_info "Use WINED3D OpenGL" + unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" - export PW_VKBASALT="0" ;; 1) # STABLE DXVK AND VKD3D @@ -3669,15 +3667,23 @@ start_portwine () { ;; esac - if [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ - || [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + if [[ $PW_USE_GALLIUM_NINE == "1" ]] \ + || [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then - unset PATH_TO_DXVK_FILES CP_DXVK_FILES + unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}" CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" fi + # GALLIUM NINE + if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then + print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + unset PW_VKBASALT PW_MANGOHUD PW_WINE_FULLSCREEN_FSR DXVK_ENABLE_NVAPI PW_USE_VRCLIENT + rm_from_var CP_WINE_FILES "d3d9" + CP_GALLIUM_NINE_FILES="d3d9" + fi + # GALLIUM ZINK if [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)" @@ -3690,21 +3696,7 @@ start_portwine () { then export LIBGL_KOPPER_DRI2="1" fi - if [[ $(check_vendor_gpu) =~ nouveau ]] ; then - export NOUVEAU_USE_ZINK="1" - fi - fi - - # GALLIUM NINE - if [[ $PW_USE_GALLIUM_NINE == "1" ]] ; then - print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)" - rm_from_var CP_WINE_FILES "d3d9" - CP_GALLIUM_NINE_FILES="d3d9" - export PW_VKBASALT="0" - export PW_MANGOHUD="0" - export PW_WINE_FULLSCREEN_FSR="0" - export DXVK_ENABLE_NVAPI="0" - export PW_USE_VRCLIENT="0" + [[ $(check_vendor_gpu) =~ nouveau ]] && export NOUVEAU_USE_ZINK="1" fi # WINED3D VULKAN @@ -3712,15 +3704,17 @@ start_portwine () { print_info "Use DAMAVAND (DirectX to wined3d vulkan)" export WINE_D3D_CONFIG="renderer=vulkan" else - export WINE_D3D_CONFIG="renderer=gl" + if [[ $PW_VULKAN_USE == "0" ]] \ + || [[ $PW_USE_GALLIUM_NINE == "1" ]] || [[ $PW_USE_GALLIUM_ZINK == "1" ]] ; then + export WINE_D3D_CONFIG="renderer=gl" + fi fi export __GL_YIELD="NOTHING" export mesa_glthread="true" if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \ - && [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && [[ $PW_VULKAN_USE != 0 ]] \ - && [[ $PW_USE_GALLIUM_ZINK != "1" ]] && [[ $PW_USE_GALLIUM_NINE != "1" ]] && [[ $PW_USE_WINED3D_VULKAN != "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 @@ -5191,8 +5185,8 @@ gui_edit_db () { PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE - PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_NINE - PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D + PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK + PW_USE_GALLIUM_NINE PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D ) if check_wayland_session @@ -5245,8 +5239,8 @@ gui_edit_db () { PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]} PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]} PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support (need special wine build to work)]} - PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]} PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]} + 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)]}