diff --git a/portwine_run_scripts/debug b/portwine_run_scripts/debug index 0c9774d3..0cd50d95 100755 --- a/portwine_run_scripts/debug +++ b/portwine_run_scripts/debug @@ -56,7 +56,7 @@ echo "Version WINE in the Port" >> "${PORT_WINE_PATH}/${portname}.log" echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "log WINE" >> "${PORT_WINE_PATH}/${portname}.log" -export WINEDEBUG="warn+all" +export WINEDEBUG="err+all,fixme-all" export VK_LOADER_DEBUG=-all export DXVK_LOG_LEVEL="info" export VKD3D_DEBUG="warn" diff --git a/portwine_run_scripts/runlib b/portwine_run_scripts/runlib index bd8931ce..5a922aef 100644 --- a/portwine_run_scripts/runlib +++ b/portwine_run_scripts/runlib @@ -1,7 +1,7 @@ #!/bin/bash # Author: PortWINE-Linux.ru -[ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" && exit 1 +[ $(id -u) -eq 0 ] && echo "Do not run this script as root!" && zenity --error --text "Do not run this script as root!" && exit 1 for PROGS in "xterm" "wget" "curl" do @@ -56,61 +56,82 @@ export PATH_OLD="$PATH" . "${link}"/lang ######################################################################## -if [ ! -d "${PORT_WINE_PATH}/data/wine/lib64" ] +GLIBC_REQUIRED=2.27 +GLIBC_VERSION="$(ldd --version | head -n1 | sed 's/\(.*\) //g' | sed 's/\.[^.]*//2g')" +if [ "$(echo "${GLIBC_VERSION//./}")" -lt "$(echo "${GLIBC_REQUIRED//./}")" ]; then + WINEDIR="${PORT_WINE_PATH}"/data/wine_glibc_223 +else + WINEDIR="${PORT_WINE_PATH}"/data/wine_glibc_227 +fi +######################################################################## +if [ ! -d "${WINEDIR}/lib64" ] then export WINEARCH=win32 - export WINELOADER="${PORT_WINE_PATH}/data/wine/bin/wine" - export WINEDLLPATH="${PORT_WINE_PATH}"/data/wine/lib/wine + export WINELOADER="${WINEDIR}/bin/wine" + export WINEDLLPATH="${WINEDIR}/lib/wine" if [ "$runtime_libs" -eq "1" ] then - export LD_LIBRARY_PATH="${PORT_WINE_PATH}"/data/wine/runtime-lib_i386:"${PORT_WINE_PATH}"/data/wine/lib:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=${WINEDIR}/runtime-lib_i386:${WINEDIR}/lib:${LD_LIBRARY_PATH} else - export LD_LIBRARY_PATH="${PORT_WINE_PATH}"/data/wine/lib:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=${WINEDIR}/lib:${LD_LIBRARY_PATH} fi else export WINEARCH=win64 - export WINELOADER="${PORT_WINE_PATH}/data/wine/bin/wine64" - export WINEDLLPATH="${PORT_WINE_PATH}"/data/wine/lib64/wine + export WINELOADER="${WINEDIR}/bin/wine64" + export WINEDLLPATH="${WINEDIR}/lib64/wine" if [ "$runtime_libs" -eq "1" ] then - export LD_LIBRARY_PATH="${PORT_WINE_PATH}"/data/wine/runtime-lib_x86_64:"${PORT_WINE_PATH}"/data/wine/runtime-lib_i386:"${PORT_WINE_PATH}"/data/wine/lib64:"${PORT_WINE_PATH}"/data/wine/lib:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=${WINEDIR}/runtime-lib_x86_64:${WINEDIR}/runtime-lib_i386:${WINEDIR}/lib64:${WINEDIR}/lib:${LD_LIBRARY_PATH} else - export LD_LIBRARY_PATH="${PORT_WINE_PATH}"/data/wine/lib64:"${PORT_WINE_PATH}"/data/wine/lib:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=${WINEDIR}/lib64:${WINEDIR}/lib:${LD_LIBRARY_PATH} fi fi -if [ -d "${PORT_WINE_PATH}/data/wine/include" ] -then - export C_INCLUDE_PATH="${PORT_WINE_PATH}/data/wine/include" -fi - -if [ ! -e "${PORT_WINE_PATH}/data/wine/share/wine/smb.conf" ] +if [ ! -e "${WINEDIR}/share/wine/smb.conf" ] then export us_dir="$USER" export STAGING_WRITECOPY=1 - export STAGING_SHARED_MEMORY=1 else export us_dir="crossover" fi -export WINESERVER="${PORT_WINE_PATH}/data/wine/bin/wineserver" -export WINECFG="${PORT_WINE_PATH}/data/wine/bin/winecfg" -export WINEREG="${PORT_WINE_PATH}/data/wine/bin/regedit" -export WINEOPEN="${PORT_WINE_PATH}/data/wine/bin/winefile" -export WINEBOOT="${PORT_WINE_PATH}/data/wine/bin/wineboot" -export WINECMD="${PORT_WINE_PATH}/data/wine/bin/wineconsole" +export WINESERVER="${WINEDIR}/bin/wineserver" +export WINECFG="${WINEDIR}/bin/winecfg" +export WINEREG="${WINEDIR}/bin/regedit" +export WINEOPEN="${WINEDIR}/bin/winefile" +export WINEBOOT="${WINEDIR}/bin/wineboot" +export WINECMD="${WINEDIR}/bin/wineconsole" export WINEPREFIX="${PORT_WINE_PATH}/data/prefix" -export PATH="${PORT_WINE_PATH}/data/wine/bin":${PATH} +export PATH="${WINEDIR}/bin":${PATH} export WINESTART="C:\\windows\\command\\start.exe" export urlg="http://portwine-linux.ru/donate" #export CORES="$(getconf _NPROCESSORS_ONLN)" +export WINEFSYNC=1 +export PROTON_NO_FSYNC=0 + +# Check if Wine has PBA or ESYNC features +if grep PBA "${WINEDIR}/lib/wine/wined3d.dll.so" &>/dev/null || grep PBA "${WINEDIR}/lib64/wine/wined3d.dll.so" &>/dev/null; then + PBA_ENABLE=1 +else + PBA_ENABLE=0 +fi + +if grep ESYNC "${WINEDIR}/lib/wine/ntdll.dll.so" &>/dev/null || grep ESYNC "${WINEDIR}/lib64/wine/ntdll.dll.so" &>/dev/null; +then + if ! ulimit -n 500000 &>/dev/null; then + export WINEESYNC=0 + else + export WINEESYNC=1 + fi +fi ######################################################################## START_PORTWINE () { chown -R "$USER" "$WINEPREFIX/drive_c" +chown -R "$USER" "$WINEPREFIX"/*.reg gpu="0" export DRI_PRIME=1 @@ -174,6 +195,12 @@ then else echo "DXVK is disabled" fi +export PROTON_USE_WINED3D=1 +export PROTON_USE_D9VK=0 +export DXVK_STATE_CACHE=0 +export __GL_SHADER_DISK_CACHE_PATH="${PATH_TO_GAME}" +export __GL_SHADER_DISK_CACHE=1 +export mesa_glthread="true" } ######################################################################## @@ -187,6 +214,11 @@ else sh "${link}/winetricks" -q --force dxvk echo "DXVK is enabled" > "${config_path}/dxvk" fi +export PROTON_USE_WINED3D=0 +export __GL_SHADER_DISK_CACHE=0 +export DXVK_STATE_CACHE_PATH="${PATH_TO_GAME}" +export DXVK_STATE_CACHE=1 +export mesa_glthread="false" } ######################################################################## diff --git a/portwine_run_scripts/setup b/portwine_run_scripts/setup index 1faaba51..5ce7bc64 100755 --- a/portwine_run_scripts/setup +++ b/portwine_run_scripts/setup @@ -55,7 +55,7 @@ echo ""[Desktop Entry]" chmod u+x "${PORT_WINE_PATH}/Settings/${name_desktop}.desktop" done -for name_desktop in "remove" +for name_desktop in "remove" "debug" do echo ""[Desktop Entry]" "Name=${name_desktop}" diff --git a/portwine_run_scripts/vars b/portwine_run_scripts/vars index 0a084566..12ac9374 100755 --- a/portwine_run_scripts/vars +++ b/portwine_run_scripts/vars @@ -15,8 +15,6 @@ WINE_DX_TO_OPENGL () export launch_parameters="" export WINEDLLOVERRIDES="winemenubuilder.exe=d" export PROTON_OLD_GL_STRING=0 -export PROTON_USE_WINED3D=1 -export PROTON_USE_D9VK=0 } ######################################################################## WINE_DX_TO_VULKAN () @@ -24,33 +22,17 @@ WINE_DX_TO_VULKAN () export launch_parameters="" export WINEDLLOVERRIDES="winemenubuilder.exe=d" export DXVK_HUD=fps -export PROTON_USE_D9VK=1 -export PROTON_USE_WINED3D=0 +#export PROTON_USE_D9VK=1 } -###PROTON# -export PROTON_FORCE_LARGE_ADDRESS_AWARE=1 ###.NVIDIA.### #export LD_PRELOAD="libpthread.so.0 libGL.so.1" #export __GL_THREADED_OPTIMIZATIONS=1 -export __GL_SHADER_DISK_CACHE=1 -export __GL_SHADER_DISK_CACHE_PATH="${PATH_TO_GAME}" #export __GL_SYNC_TO_VBLANK=0 -###.MESA.### -export mesa_glthread="true" #export vblank_mode=0 -###.ESYNC and FSYNC.### -export WINEESYNC=0 -export PROTON_NO_ESYNC=1 -export WINEFSYNC=1 -export PROTON_NO_FSYNC=0 -###.PBA.### -export PBA_DISABLE=1 -export __PBA_CB_HEAP=128 -export __PBA_GEO_HEAP=512 ###.OTHER.### +export PROTON_FORCE_LARGE_ADDRESS_AWARE=0 +export STAGING_SHARED_MEMORY=1 export WINEDEBUG="-all" -export Xserv=2 -#export PULSE_LATENCY_MSEC=60 ######################################################################## ADD_IN_START_PORTWINE () {