diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 0e40bbb4..753173af 100644 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,19 @@ You can help us in the development of the project on the website: https://boosty ----------------------------------------- Changelog: +###Scripts version 2097### +* accelerated launch of all applications in PortProton up to 200% depending on the system +* updated additional libraries "plugins_v4" (added support for GALLIUM_NINE) +* added "GALLIUM_NINE" mode selection (support for native DirectX9 on video card with MESA driver) +* new interface for WINETRICKS added settings tab +* added variable PW_USE_AMDVLK_DRIVER to EDIT_DB (use AMDVLK driver instead of RADV on AMD video cards) +* added label archiving when creating a prefix image +* added restoration of shortcuts after unpacking the prefix image (the path to the .exe file is corrected automatically) +* improved virtual desktop performance +* explorer changed to winefile (free disk space detection fixed) +* disabled loading of mono and gecko for League of Legends (speeds up the first launch) +* to force the use of AMD graphics cards instead of NVIDIA, you can add "export DRI_PRIME=1" to user.conf + ###Scripts version 2096### * added check for LANG variable for PortProton to work on STEAM-DECK * added new interface for WINETRICKS diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index 7562028b..6732e7bc 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,19 @@ ----------------------------------------- История изменений: +###Scripts version 2097### +* ускорен запуск всех приложений в PortProton до 200% в зависимости от системы +* обновлены дополнительные библиотеки "plugins_v4" (добавлена поддержка GALLIUM_NINE) +* добавлен выбор режима "GALLIUM_NINE" (поддержка нитивного DirectX9 на видеокарте с MESA драйвером) +* в новый интерфейс для WINETRICKS добавлена вкладка settings +* в EDIT_DB добавлена переменная PW_USE_AMDVLK_DRIVER (использовать драйвер AMDVLK вместо RADV на видеокартах от AMD) +* добавлено архивация ярлыков при создании образа префикса +* добавлено востановление ярлыков после распаковки образа префикса (путь до .exe файла корректируется автоматически) +* улучшена работа виртуального рабочего стола +* explorer изменен на winefile (исправлено определение свободного дискового пространства) +* отключена загрузка mono и gecko для League of Legends (ускоряет первый запуск) +* для принудительного использования AMD видеокарты, вместо NVIDIA, можно добавить "export DRI_PRIME=1" в user.conf + ###Scripts version 2096### * добавлена проверка на переменную LANG для работы PortProton на STEAM-DECK * добавлен новый интерфейс для WINETRICKS diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 28251d1f..ef468f06 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -186,45 +186,6 @@ unpack_tar () { [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0 } -pw_mangohud_check () { - export RUN_MANGOHUD_IN_SLR="" - if [[ "${PW_MANGOHUD}" == "1" ]] ; then - if [[ "${PW_VULKAN_USE}" = "0" ]] ; then - export RUN_MANGOHUD_IN_SLR="mangohud --dlsym" - else - export RUN_MANGOHUD_IN_SLR="mangohud" - fi - else - export DISABLE_MANGOHUD=1 - fi - return 0 -} -export -f pw_mangohud_check - -pw_vkbasalt_check () { - if [[ ! -z "${ENABLE_VKBASALT}" && "${ENABLE_VKBASALT}" == 1 ]] ; then - if [ -z "${PW_VKBASALT_EFFECTS}" ] ; then - export PW_VKBASALT_EFFECTS="cas:FilmGrain2" - fi - sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" - if [ -z "${PW_VKBASALT_FFX_CAS}" ] ; then - export PW_VKBASALT_FFX_CAS="0.7" - fi - sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" - export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf" - sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx" - sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx" - sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx" - if [ ! -z "${VK_INSTANCE_LAYERS}" ] - then export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${VK_INSTANCE_LAYERS}" - else export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing" - fi - else - export DISABLE_VKBASALT=1 - fi - return 0 -} - pw_clear_pfx () { try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" @@ -338,7 +299,7 @@ init_wine_ver () { if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then echo "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK." elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then - try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" + try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" | sszen try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/ echo "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK." @@ -374,17 +335,13 @@ pw_init_runtime () { PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then - if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then - export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}" - fi + export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}" else export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases" fi - if [[ ! -z "${VK_LAYER_PATH}" ]] - then export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/:${VK_LAYER_PATH}" - else export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/" - fi + export PW_VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/" + if [ ! -z ${PATH_TMP} ] then export PATH="${PATH_TMP}" else export PATH_TMP="${PATH}" @@ -405,8 +362,6 @@ pw_init_runtime () { else var_winedlloverride_update "winegstreamer=" fi - # export STAGING_SHARED_MEMORY=1 - # export PW_FORCE_LARGE_ADDRESS_AWARE=1 if [ "${PW_USE_RUNTIME}" = 0 ] ; then export pw_runtime="" @@ -447,7 +402,56 @@ pw_init_runtime () { fi } -check_vk_icd_file () { +pw_mangohud_check () { + if [[ "${PW_MANGOHUD}" == "1" ]] ; then + export MANGOHUD=1 + MANGOHUD_LIB_NAME="libMangoHud.so" + if [[ "${PW_VULKAN_USE}" = "0" ]] ; then + MANGOHUD_LIB_NAME="libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}" + fi + if [[ ! -z "${PW_LD_PRELOAD}" ]] + then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}" + else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}" + fi + if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]] + then export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay:${PW_VK_INSTANCE_LAYERS}" + else export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay" + fi + print_info "MANGOHUD is enabled" + else + export DISABLE_MANGOHUD=1 + print_info "MANGOHUD is disabled" + fi + return 0 +} + +pw_vkbasalt_check () { + if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then + if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then + export PW_VKBASALT_EFFECTS="cas:FilmGrain2" + fi + sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" + if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then + export PW_VKBASALT_FFX_CAS="0.7" + fi + sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf" + export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf" + sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx" + sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx" + sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx" + if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]] + then export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${PW_VK_INSTANCE_LAYERS}" + else export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing" + fi + print_info "vkBasalt is enabled" + else + export DISABLE_VKBASALT=1 + print_info "vkBasalt is disabled" + fi + return 0 +} + +check_nvidia_vk_icd_file () { if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json" elif [[ -f "/etc/vulkan/icd.d/nvidia_icd.json" ]] ; then @@ -643,6 +647,11 @@ pw_init_db () { export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi` if [[ -f "${portwine_exe}".ppdb ]] ; then export PORTWINE_DB_FILE="${portwine_exe}".ppdb + . "${PORTWINE_DB_FILE}" + if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then + export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` + edit_db_from_gui PW_PREFIX_NAME + fi else orig_IFS="$IFS" IFS=$'\n' @@ -666,13 +675,13 @@ pw_init_db () { IFS="$orig_IFS" if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb - export PORTWINE_DB_FILE="${portwine_exe}".ppdb - if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \ - [[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT"` ]] - then - export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` - edit_db_from_gui PW_PREFIX_NAME - fi + fi + export PORTWINE_DB_FILE="${portwine_exe}".ppdb + if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \ + [[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/"` ]] + then + export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` + edit_db_from_gui PW_PREFIX_NAME fi fi if [ ! -z "${PORTWINE_DB_FILE}" ]; then diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index b664ca54..0e6cf132 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -11,7 +11,7 @@ then export inst_set="Выбор" export inst_set_top="Установка PortWINE" - export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?" + export ss_done="Ярлык создан в корневом каталоге порта.\n Добавить его в МЕНЮ -> ИГРЫ?" export inst_succ="Установка завершена успешно!" @@ -88,6 +88,7 @@ then export PW_D3D_EXTRAS_DISABLE_INFO='Отключить принудительное использование сторонних библиотек DirectX' export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)' export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе' + export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD' export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)' export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместо с CAS' @@ -118,7 +119,7 @@ then export inst_set="Sett..." export inst_set_top="PortWINE setting" - export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?" + export ss_done="The shortcut was created in the ${portname} directory.\n Add it to MENU -> GAMES?" export inst_succ="The installation was successful." export port_upd1="New update PortWINE" diff --git a/data_from_portwine/scripts/portwine_db/League of Legends b/data_from_portwine/scripts/portwine_db/League of Legends index 2a115a76..8aed332a 100755 --- a/data_from_portwine/scripts/portwine_db/League of Legends +++ b/data_from_portwine/scripts/portwine_db/League of Legends @@ -13,7 +13,7 @@ export TEXT_OPSSL="" export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time" ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) -##export WINEDLLOVERRIDES="blabla=n,b" +export WINEDLLOVERRIDES="mscoree,mshtml=" export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options export PW_WINE_USE=WINE_LOL_GE_7.0-1 export PW_VULKAN_USE=1 diff --git a/data_from_portwine/scripts/portwine_db/alanwake b/data_from_portwine/scripts/portwine_db/alanwake index c2f7b5b6..15fce26e 100755 --- a/data_from_portwine/scripts/portwine_db/alanwake +++ b/data_from_portwine/scripts/portwine_db/alanwake @@ -25,7 +25,7 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix ##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options ##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr -export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP +export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_VIRTUAL_DESKTOP=1 ##export DXVK_HUD=fps,devinfo ##export PW_HEAP_DELAY_FREE=0 diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc index a2e6d2d1..68d91665 100755 --- a/data_from_portwine/scripts/portwine_db/wgc +++ b/data_from_portwine/scripts/portwine_db/wgc @@ -15,3 +15,7 @@ export WINEDLLOVERRIDES="ucrtbase,xaudio2_7,xaudio2_8=n,b" export PW_DLL_INSTALL="lucida vcrun2019" # Install DDL in port prefix (used winetricks) ##export PW_GUI_DISABLED_CS=1 ##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG + +add_in_start_portwine () { + sed -i 's% true % false %' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" +} diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_LOL b/data_from_portwine/scripts/pw_autoinstall/PW_LOL index 11326014..57b0d695 100644 --- a/data_from_portwine/scripts/pw_autoinstall/PW_LOL +++ b/data_from_portwine/scripts/pw_autoinstall/PW_LOL @@ -7,6 +7,7 @@ export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline= export PW_MUST_HAVE_DLL="" export PW_VULKAN_USE=1 export PW_WINE_USE=WINE_LOL_GE_7.0-1 +export WINEDLLOVERRIDES="mscoree,mshtml=" if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 472e7e77..56f5a06b 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -26,11 +26,36 @@ start_portwine () { create_new_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" export WINEARCH="win64" - pw_install_dll_in_prefix - pw_check_and_download_wine "${PW_WINE_USE}" + if [[ "${PW_VULKAN_USE}" == 3 ]] ; then + export PW_WINE_USE="${PW_PROTON_PW_VER}" + echo "Force to use $PW_WINE_USE" + if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then + if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ + "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then + if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then + try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" + UNPACK_STATUS=0 + else + try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" + try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" + fi + fi + [[ "${UNPACK_STATUS}" != 0 ]] && exit 1 + fi + edit_db_from_gui PW_WINE_USE + else + pw_check_and_download_wine "${PW_WINE_USE}" + fi + pw_install_dll_in_prefix init_wine_ver - sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf" - sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" + grep 'Steam.exe' "${WINEDIR}/share/wine/wine.inf" + if [[ "$?" == "0" ]] ; then + sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf" + fi + grep '\\Valve\\Steam' "${WINEDIR}/share/wine/wine.inf" + if [[ "$?" == "0" ]] ; then + sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" + fi if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e" elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e" elif [ -x "`which xterm 2>/dev/null`" ]; then export PW_TERM="${PW_XTERM}" @@ -57,8 +82,6 @@ start_portwine () { export DXVK_LOG_PATH="none" fi - export VKD3D_FEATURE_LEVEL="12_0" - #default wine-mono override for FNA games export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n" @@ -114,7 +137,7 @@ start_portwine () { fi if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then export __NV_PRIME_RENDER_OFFLOAD=1 - check_vk_icd_file + check_nvidia_vk_icd_file fi if [[ ! -z "${PW_HEAP_DELAY_FREE}" && "${PW_HEAP_DELAY_FREE}" != 0 ]] then export WINE_HEAP_DELAY_FREE="1" @@ -141,21 +164,21 @@ start_portwine () { if [ -x "`which optimus-manager 2>/dev/null`" ]; then export check_optimus_manager=`optimus-manager --status | grep Current | cut -f 2 -d':' | sed -e 's/^[[:space:]]*//'` fi - if [[ ! -z "${PW_NVIDIA}" && "${check_optimus_manager}" != "intel" ]] ; then + if [[ ! -z "${PW_NVIDIA}" ]] && [[ "${check_optimus_manager}" != "intel" ]] && [[ "${DRI_PRIME}" != 1 ]] ; then if [ "${check_optimus_manager}" = "nvidia" ]; then - check_vk_icd_file + check_nvidia_vk_icd_file elif [ -x "`which primusrun 2>/dev/null`" ]; then export optirun_on="primusrun" - check_vk_icd_file + check_nvidia_vk_icd_file elif [ -x "`which optirun 2>/dev/null`" ]; then export optirun_on="optirun -b primus" - check_vk_icd_file + check_nvidia_vk_icd_file elif [ -x "`which prime-run 2>/dev/null`" ]; then export optirun_on="prime-run" - check_vk_icd_file + check_nvidia_vk_icd_file elif [[ -x "`which nvidia-settings 2>/dev/null`" ]] ; then export __GLX_VENDOR_LIBRARY_NAME=nvidia - check_vk_icd_file + check_nvidia_vk_icd_file fi else export DRI_PRIME=1 @@ -185,17 +208,17 @@ start_portwine () { [[ -z "`cat /etc/os-release | grep -i "red hat"`" ]] && \ [[ -z "`cat /etc/os-release | grep -i "centos"`" ]] ; then export PW_GAMEMODERUN=1 - if [[ ! -z "${LD_PRELOAD}" ]] ; then - export PW_LD_PRELOAD="$LD_PRELOAD:libgamemodeauto.so.0" + if [[ ! -z "${PW_LD_PRELOAD}" ]] ; then + export PW_LD_PRELOAD="$PW_LD_PRELOAD:libgamemodeauto.so.0" else export PW_LD_PRELOAD="libgamemodeauto.so.0" fi + PW_GAMEMODERUN_SLR="gamemoderun" echo "Gamemod will be launched." else export PW_GAMEMODERUN=0 echo "Gamemod is not installed or disabled in vars script or db file: PW_USE_GAMEMODE=$PW_USE_GAMEMODE" fi - pw_vkbasalt_check pw_other_fixes check_dirs_and_files_in_pfx () { @@ -300,8 +323,31 @@ start_portwine () { fi done var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12=" + elif [[ "${PW_VULKAN_USE}" == 3 ]] ; then + echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)" + echo "Try link wine DXGI..." + export PW_GALLIUM_NINE_VER="0.8" + export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}" + try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/d3d9.dll" + try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/d3d9.dll" + var_winedlloverride_update "d3d9=n;d3d10,d3d11,dxvk_config,vulkan-1,winevulkan=" + export D3D_MODULE_PATH="${PW_GALLIUM_NINE_PATH}/lib32:${PW_GALLIUM_NINE_PATH}/lib64" + export PW_DX12_DISABLE=1 + export ENABLE_VKBASALT=0 + export PW_MANGOHUD=0 + export WINE_FULLSCREEN_FSR=0 else echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)" + if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" && "${PW_USE_AMDVLK_DRIVER}" != 0 ]] + then export AMD_VULKAN_ICD=AMDVLK + else export AMD_VULKAN_ICD=RADV + fi + export VKD3D_FEATURE_LEVEL="12_0" + create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache" + export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache + export DXVK_STATE_CACHE=1 + export __GL_DXVK_OPTIMIZATIONS=1 + export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi dxvk_config" echo "Try link native DXVK files..." for wine_dxvk_dll in ${CP_DXVK_FILES} ; do @@ -327,15 +373,12 @@ start_portwine () { try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll" try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" done - if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]] - then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12=" - else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n" - fi fi - create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache" - export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache - export DXVK_STATE_CACHE=1 - export __GL_DXVK_OPTIMIZATIONS=1 + if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]] + then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12=" + else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n" + fi + create_new_dir "${PORT_WINE_TMP_PATH}/gl_shader_cache" export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache" export __GL_SHADER_DISK_CACHE=1 @@ -409,6 +452,7 @@ pw_run () { cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c" fi pw_mangohud_check + pw_vkbasalt_check PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log" print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" \ "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" @@ -416,22 +460,14 @@ pw_run () { echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}" echo "------------------------------------" >> "${PW_LOG_TO_FILE}" echo "Log WINE:" >> "${PW_LOG_TO_FILE}" - if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then - ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \ - LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" - else - ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ - ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" - fi + ${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \ + PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ + VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" else [ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM="" - if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then - $PW_TERM ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \ - LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} - else - $PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ - ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} - fi + $PW_TERM ${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \ + PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ + VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} fi } export -f pw_run @@ -453,7 +489,7 @@ fi unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME -unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME +unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR export portname=PortProton diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index a2f8bafa..86c4cd28 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -22,7 +22,17 @@ if [[ -n `basename "${portwine_exe}" | grep .ppack` ]] ; then export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" unset PW_SANDBOX_HOME_PATH pw_init_runtime - ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/$(basename $1 | awk -F'.' '{print $1}')" "$1" + export PW_PREFIX_NAME=`basename "$1" | awk -F'.' '{print $1}'` + ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" + if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then + orig_IFS="$IFS" + IFS=$'\n' + for crfb in `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"` ; do + export portwine_exe="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}" + portwine_create_shortcut "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}" + done + IFS="$orig_IFS" + fi exit 0 fi @@ -32,45 +42,16 @@ portwine_launch () { PORTWINE_BAT=`basename "${portwine_exe}" | grep .bat` if [[ ! -z "${PW_VIRTUAL_DESKTOP}" && "${PW_VIRTUAL_DESKTOP}" == "1" ]] ; then pw_screen_resolution=`xrandr --current | grep "*" | awk '{print $1;}' | head -1` - pw_run explorer "/desktop=portwine,${pw_screen_resolution}" "$portwine_exe" + pw_run explorer "/desktop=portwine,${pw_screen_resolution}" ${WINE_WIN_START} "$portwine_exe" elif [ ! -z "${PORTWINE_MSI}" ]; then pw_run msiexec /i "$portwine_exe" elif [[ ! -z "${PORTWINE_BAT}" || ! -z "${portwine_exe}" ]] ; then pw_run ${WINE_WIN_START} "$portwine_exe" else - pw_run explorer + pw_run winefile fi } -portwine_create_shortcut () { - pw_create_gui_png - name_desktop="${PORTPROTON_NAME}" - echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - if [ -z "${PW_CHECK_AUTOINSTAL}" ] - then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ - >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ - >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - fi - echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" - `zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` &> /dev/null - if [ $? -eq "0" ]; then - cp -fu "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ - fi - xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & -} - -portwine_delete_shortcut () { - rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`" - rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`" -} - portwine_start_debug () { kill_portwine export PW_LOG=1 @@ -99,9 +80,12 @@ portwine_start_debug () { echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log" echo `ldd --version | grep -m1 ldd | awk '{print $NF}'` >> "${PORT_WINE_PATH}/${portname}.log" echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" - if [ "${PW_VULKAN_USE}" = "0" ] - then echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log" - else echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log" + if [[ "${PW_VULKAN_USE}" = "0" ]] ; then + echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log" + elif [[ "${PW_VULKAN_USE}" = "3" ]] ; then + echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/${portname}.log" + else + echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log" fi echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "Version WINE in the Port:" >> "${PORT_WINE_PATH}/${portname}.log" @@ -212,7 +196,7 @@ pw_winecfg () { pw_winefile () { start_portwine - pw_run explorer + pw_run winefile } pw_winecmd () { @@ -233,7 +217,7 @@ pw_prefix_manager () { start_portwine [[ ! -f "${PORT_WINE_TMP_PATH}/dll_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" dlls list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/dll_list" [[ ! -f "${PORT_WINE_TMP_PATH}/fonts_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" fonts list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/fonts_list" - # [[ ! -f "${PORT_WINE_TMP_PATH}/settings_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list" + [[ ! -f "${PORT_WINE_TMP_PATH}/settings_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list" gui_prefix_manager () { pw_start_progress_bar_block "Starting prefix manager..." @@ -242,7 +226,7 @@ pw_prefix_manager () { IFS=$'\n' try_remove_file "${PORT_WINE_TMP_PATH}/dll_list_tmp" while read PW_BOOL_IN_DLL_LIST ; do - if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'dont_use|dxvk|vkd3d|galliumnine|faudio1'` ]] ; then + if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'd3d|directx9|dont_use|dxvk|vkd3d|galliumnine|faudio1'` ]] ; then if grep "^`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then echo -e "true\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp" else @@ -260,6 +244,16 @@ pw_prefix_manager () { fi fi done < "${PORT_WINE_TMP_PATH}/fonts_list" + try_remove_file "${PORT_WINE_TMP_PATH}/settings_list_tmp" + while read PW_BOOL_IN_FONTS_LIST ; do + if [[ -z `echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'vista|alldlls|autostart_|bad|good|win|videomemory|vd=|isolate_home'` ]] ; then + if grep "^`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then + echo -e "true\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp" + else + echo -e "false\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp" + fi + fi + done < "${PORT_WINE_TMP_PATH}/settings_list" pw_stop_progress_bar KEY_EDIT_MANAGER_GUI=$RANDOM @@ -271,8 +265,12 @@ pw_prefix_manager () { --text="Select fonts to install in prefix: \"${PW_PREFIX_NAME}\", using wine: \"${PW_WINE_USE}\"" \ --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/fonts_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" & + "${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \ + --text="Change config for prefix: \"${PW_PREFIX_NAME}\"" \ + --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/settings_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" & + "${pw_yad_new}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=5 --width=700 --height=600 --center \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONST" + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONTS" --tab="SETTINGS" YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then stop_portwine @@ -337,6 +335,11 @@ pw_create_prefix_backup () { --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO..."` YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi + if [[ ! -z "`grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop `" ]] ; then + try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" + grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \ + | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" + fi unset PW_SANDBOX_HOME_PATH export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" pw_init_runtime @@ -361,10 +364,12 @@ pw_create_prefix_backup () { } pw_edit_db () { - pw_gui_for_edit_db PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \ + pw_gui_for_edit_db \ + PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \ PW_VULKAN_NO_ASYNC PW_USE_NVAPI_AND_DLSS PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \ PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \ - PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE PW_FIX_VIDEO_IN_GAME + PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \ + PW_FORCE_LARGE_ADDRESS_AWARE if [ "$?" == 0 ] ; then /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 @@ -434,9 +439,10 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then [ -z "${PW_VULKAN_USE}" ] && export PW_VULKAN_USE=1 fi case "${PW_VULKAN_USE}" in - "0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)' ;; - "2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;; - *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;; + "0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!GALLIUM_NINE (native DX9 on MESA)' ;; + "2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;; + "3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;; + *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;; esac if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" @@ -453,7 +459,7 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then fi fi else - export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' + export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]] ; then @@ -574,7 +580,7 @@ else # --field=" ABOUT PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_about_portproton"' & "${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \ - --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \ + --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ --field=" DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ @@ -649,6 +655,8 @@ elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (DXVK and VKD3D)" ]] then export PW_VULKAN_USE="1" elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (WINE DXGI)" ]] then export PW_VULKAN_USE="2" +elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "GALLIUM_NINE (native DX9 on MESA)" ]] +then export PW_VULKAN_USE="3" fi init_wine_ver diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index d13e7b56..98205bb0 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,11 +1,12 @@ #!/usr/bin/env bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2096 +#SCRIPTS_NEXT_VERSION=2097 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1 -export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,gpu_name,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,fps,frametime,arch,frame_timing,time,font_size=24,position=top-left,vram,version,wine,no_display,resolution,background_alpha=0.5,toggle_hud=Shift_R+F12,vkbasalt +export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt,gamemode,no_display #export DXVK_HUD=compiler +#export GALLIUM_HUD=fps #export ENABLE_VKBASALT=1 #export PW_VIRTUAL_DESKTOP=1 #export PW_XKBD_RU_HACK=1 @@ -28,9 +29,11 @@ export GDK_BACKEND="x11" export PW_USE_GSTREAMER="1" export PW_PREFIX_NAME="DEFAULT" export WINE_WIN_START="start.exe /i /unix" +export STAGING_SHARED_MEMORY=1 +export PW_FORCE_LARGE_ADDRESS_AWARE=1 ###DEFAULT_WINE### export PW_WINE_USE=PROTON_GE -export PW_PLUGINS_VER="_v3" +export PW_PLUGINS_VER="_v4" ###WINE_PROTON_STEAM### export PW_STEAM_VER="7.0-1B" export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" @@ -39,6 +42,9 @@ export PW_GE_VER="7-9" export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" export WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_STRENGTH="2" +###WINE_PROTON_PW_FOR_GALLIUM_NINE### +export PW_PW_VER="7.5" +export PW_PROTON_PW_VER="PROTON_PW_${PW_PW_VER}" ################################################################# pw_install_dll_in_prefix () { diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index da05cf2c..2e0c81f2 100644 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -118,10 +118,15 @@ pw_tray_icon () { export -f tray_icon_click pw_tray_winefile () { - pw_run explorer + pw_run winefile "C:\\users\\${USER}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\" } export -f pw_tray_winefile + pw_tray_taskmgr () { + pw_run taskmgr + } + export -f pw_tray_taskmgr + tray_icon_click_exit () { pw_stop_progress_bar stop_portwine @@ -135,6 +140,7 @@ pw_tray_icon () { --tooltip="PortProton" \ --menu="| \ <<< WINEFILE >>>!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/port_winefile.png"| \ +<<< TASKMNR >>>!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"| \ <<< CHANGE LOG >>>!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"| \ <<< FORCE EXIT >>>!bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"|" & return 0 @@ -181,7 +187,7 @@ pw_gui_for_edit_db () { --field=":LBL" "" \ --field="MANGOHUD FPS LIMIT (0-disabled):SCL" ${FPS_LIMIT_VAR} 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" & - "${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="520" \ + "${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="550" \ --text "Change settings in database file for ${PORTWINE_DB}\n" --separator=" " --borders=10 --center \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0 YAD_STATUS="$?" @@ -392,3 +398,39 @@ gui_vkBasalt () { /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 } + +portwine_create_shortcut () { + pw_create_gui_png + name_desktop="${PORTPROTON_NAME}" + echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + if [ -z "${PW_CHECK_AUTOINSTAL}" ] + then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ + >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ + >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + fi + echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" + "${pw_yad}" --title="${inst_set}." --form --center --borders=5 \ + --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ + --field=" ${name_desktop}.desktop:LBL" "" \ + --field=" ${ss_done}:LBL" "" \ + --button='CANCEL'!!"":1 \ + --button='OK'!!"":0 + if [ $? -eq "0" ]; then + try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop" + cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ + fi + xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & +} + +portwine_delete_shortcut () { + rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`" + rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`" +}