Commit 8d1c5efe authored by Mikhail Tergoev's avatar Mikhail Tergoev

Auto configuration PBA and ESYNC. Add check version GLIBC and auto change WINE folder

parent 97f0c1e2
...@@ -56,7 +56,7 @@ echo "Version WINE in the Port" >> "${PORT_WINE_PATH}/${portname}.log" ...@@ -56,7 +56,7 @@ echo "Version WINE in the Port" >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "log WINE" >> "${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 VK_LOADER_DEBUG=-all
export DXVK_LOG_LEVEL="info" export DXVK_LOG_LEVEL="info"
export VKD3D_DEBUG="warn" export VKD3D_DEBUG="warn"
......
#!/bin/bash #!/bin/bash
# Author: PortWINE-Linux.ru # 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" for PROGS in "xterm" "wget" "curl"
do do
...@@ -56,61 +56,82 @@ export PATH_OLD="$PATH" ...@@ -56,61 +56,82 @@ export PATH_OLD="$PATH"
. "${link}"/lang . "${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 then
export WINEARCH=win32 export WINEARCH=win32
export WINELOADER="${PORT_WINE_PATH}/data/wine/bin/wine" export WINELOADER="${WINEDIR}/bin/wine"
export WINEDLLPATH="${PORT_WINE_PATH}"/data/wine/lib/wine export WINEDLLPATH="${WINEDIR}/lib/wine"
if [ "$runtime_libs" -eq "1" ] if [ "$runtime_libs" -eq "1" ]
then 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 else
export LD_LIBRARY_PATH="${PORT_WINE_PATH}"/data/wine/lib:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH=${WINEDIR}/lib:${LD_LIBRARY_PATH}
fi fi
else else
export WINEARCH=win64 export WINEARCH=win64
export WINELOADER="${PORT_WINE_PATH}/data/wine/bin/wine64" export WINELOADER="${WINEDIR}/bin/wine64"
export WINEDLLPATH="${PORT_WINE_PATH}"/data/wine/lib64/wine export WINEDLLPATH="${WINEDIR}/lib64/wine"
if [ "$runtime_libs" -eq "1" ] if [ "$runtime_libs" -eq "1" ]
then 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 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
fi fi
if [ -d "${PORT_WINE_PATH}/data/wine/include" ] if [ ! -e "${WINEDIR}/share/wine/smb.conf" ]
then
export C_INCLUDE_PATH="${PORT_WINE_PATH}/data/wine/include"
fi
if [ ! -e "${PORT_WINE_PATH}/data/wine/share/wine/smb.conf" ]
then then
export us_dir="$USER" export us_dir="$USER"
export STAGING_WRITECOPY=1 export STAGING_WRITECOPY=1
export STAGING_SHARED_MEMORY=1
else else
export us_dir="crossover" export us_dir="crossover"
fi fi
export WINESERVER="${PORT_WINE_PATH}/data/wine/bin/wineserver" export WINESERVER="${WINEDIR}/bin/wineserver"
export WINECFG="${PORT_WINE_PATH}/data/wine/bin/winecfg" export WINECFG="${WINEDIR}/bin/winecfg"
export WINEREG="${PORT_WINE_PATH}/data/wine/bin/regedit" export WINEREG="${WINEDIR}/bin/regedit"
export WINEOPEN="${PORT_WINE_PATH}/data/wine/bin/winefile" export WINEOPEN="${WINEDIR}/bin/winefile"
export WINEBOOT="${PORT_WINE_PATH}/data/wine/bin/wineboot" export WINEBOOT="${WINEDIR}/bin/wineboot"
export WINECMD="${PORT_WINE_PATH}/data/wine/bin/wineconsole" export WINECMD="${WINEDIR}/bin/wineconsole"
export WINEPREFIX="${PORT_WINE_PATH}/data/prefix" 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 WINESTART="C:\\windows\\command\\start.exe"
export urlg="http://portwine-linux.ru/donate" export urlg="http://portwine-linux.ru/donate"
#export CORES="$(getconf _NPROCESSORS_ONLN)" #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 () START_PORTWINE ()
{ {
chown -R "$USER" "$WINEPREFIX/drive_c" chown -R "$USER" "$WINEPREFIX/drive_c"
chown -R "$USER" "$WINEPREFIX"/*.reg
gpu="0" gpu="0"
export DRI_PRIME=1 export DRI_PRIME=1
...@@ -174,6 +195,12 @@ then ...@@ -174,6 +195,12 @@ then
else else
echo "DXVK is disabled" echo "DXVK is disabled"
fi 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 ...@@ -187,6 +214,11 @@ else
sh "${link}/winetricks" -q --force dxvk sh "${link}/winetricks" -q --force dxvk
echo "DXVK is enabled" > "${config_path}/dxvk" echo "DXVK is enabled" > "${config_path}/dxvk"
fi 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"
} }
######################################################################## ########################################################################
......
...@@ -55,7 +55,7 @@ echo ""[Desktop Entry]" ...@@ -55,7 +55,7 @@ echo ""[Desktop Entry]"
chmod u+x "${PORT_WINE_PATH}/Settings/${name_desktop}.desktop" chmod u+x "${PORT_WINE_PATH}/Settings/${name_desktop}.desktop"
done done
for name_desktop in "remove" for name_desktop in "remove" "debug"
do do
echo ""[Desktop Entry]" echo ""[Desktop Entry]"
"Name=${name_desktop}" "Name=${name_desktop}"
......
...@@ -15,8 +15,6 @@ WINE_DX_TO_OPENGL () ...@@ -15,8 +15,6 @@ WINE_DX_TO_OPENGL ()
export launch_parameters="" export launch_parameters=""
export WINEDLLOVERRIDES="winemenubuilder.exe=d" export WINEDLLOVERRIDES="winemenubuilder.exe=d"
export PROTON_OLD_GL_STRING=0 export PROTON_OLD_GL_STRING=0
export PROTON_USE_WINED3D=1
export PROTON_USE_D9VK=0
} }
######################################################################## ########################################################################
WINE_DX_TO_VULKAN () WINE_DX_TO_VULKAN ()
...@@ -24,33 +22,17 @@ WINE_DX_TO_VULKAN () ...@@ -24,33 +22,17 @@ WINE_DX_TO_VULKAN ()
export launch_parameters="" export launch_parameters=""
export WINEDLLOVERRIDES="winemenubuilder.exe=d" export WINEDLLOVERRIDES="winemenubuilder.exe=d"
export DXVK_HUD=fps export DXVK_HUD=fps
export PROTON_USE_D9VK=1 #export PROTON_USE_D9VK=1
export PROTON_USE_WINED3D=0
} }
###PROTON#
export PROTON_FORCE_LARGE_ADDRESS_AWARE=1
###.NVIDIA.### ###.NVIDIA.###
#export LD_PRELOAD="libpthread.so.0 libGL.so.1" #export LD_PRELOAD="libpthread.so.0 libGL.so.1"
#export __GL_THREADED_OPTIMIZATIONS=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 #export __GL_SYNC_TO_VBLANK=0
###.MESA.###
export mesa_glthread="true"
#export vblank_mode=0 #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.### ###.OTHER.###
export PROTON_FORCE_LARGE_ADDRESS_AWARE=0
export STAGING_SHARED_MEMORY=1
export WINEDEBUG="-all" export WINEDEBUG="-all"
export Xserv=2
#export PULSE_LATENCY_MSEC=60
######################################################################## ########################################################################
ADD_IN_START_PORTWINE () ADD_IN_START_PORTWINE ()
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment