From 90df03eec7f8de0ded254cc8cd2f1bc7f4639134 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 25 Jul 2025 11:35:00 +0500 Subject: [PATCH] 3D api: fixed stable and newest work, libvkd3d is always used from new versions --- data_from_portwine/scripts/functions_helper | 56 +++++++++------------ 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index f1997c7d..49179ca0 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3768,8 +3768,6 @@ fi # WINED3D OPENGL print_info "Use WINED3D OpenGL" unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" ;; 1) @@ -3785,27 +3783,27 @@ fi fi PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" - CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" + CP_VKD3D_FILES="d3d12" CP_WINE_FILES="d3d12core d3d10_1 d3d10" ;; 2) - # NEWEST DXVK AND VKD3D - print_info "DXVK v.${DXVK_NEW_VER} in use" - print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use" - PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}" - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" - CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" - CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" - CP_WINE_FILES="d3d10_1 d3d10" - ;; - 6) # STABLE DXVK AND VKD3D print_info "DXVK v.${DXVK_OLD_VER} in use" print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use" PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}" PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}" CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" - CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" + CP_VKD3D_FILES="d3d12 d3d12core" + CP_WINE_FILES="d3d10_1 d3d10" + ;; + 6) + # NEWEST DXVK AND VKD3D + print_info "DXVK v.${DXVK_NEW_VER} in use" + print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use" + PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}" + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" + CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" + CP_VKD3D_FILES="d3d12 d3d12core" CP_WINE_FILES="d3d10_1 d3d10" ;; esac @@ -3816,8 +3814,6 @@ fi || [[ $PW_USE_GALLIUM_ZINK == "1" ]] \ || [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D - PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi" fi @@ -3878,14 +3874,13 @@ fi 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" ]] \ - || [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" && -f "${WINEDIR}/lib/vkd3d/x86_64-windows/libvkd3d-1.dll" ]] ; then - CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1" - elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" ]] ; then - CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1" + if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" ]] \ + || [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" ]] ; then + CP_VKD3D_FILES="d3d12 d3d12core" + elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" ]] ; then + CP_VKD3D_FILES="d3d12" add_to_var CP_WINE_FILES "d3d12core" else - CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1" add_to_var CP_WINE_FILES "d3d12 d3d12core" fi [[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2" @@ -4182,30 +4177,29 @@ fi if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" - fi - if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then - try_force_link_file "${WINEDIR}/lib/vkd3d/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" - try_force_link_file "${WINEDIR}/lib/vkd3d/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" fi ;; 1) if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" - fi - if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then - try_force_link_file "${WINEDIR}/lib/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" - try_force_link_file "${WINEDIR}/lib64/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" fi ;; 0) try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;; esac - [[ ! $wine_vkd3d_dll =~ libvkd3d ]] && var_winedlloverride_update "${wine_vkd3d_dll}=n" + var_winedlloverride_update "${wine_vkd3d_dll}=n" done create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache" export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" fi + # некоторым играм для любых 3D api для правильной работы wined3d необходимо чтобы эти библиотеки всегда были + PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" # используется git версия + try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-1.dll" + try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-shader-1.dll" + try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-1.dll" + try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-shader-1.dll" + # 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}"