Fix zink with gamescope,fix wined3d with proton 9+,fix gallium nine native,minor fixes
This commit is contained in:
parent
304568c809
commit
f1b7411362
141
data_from_portwine/scripts/functions_helper
Executable file → Normal file
141
data_from_portwine/scripts/functions_helper
Executable file → Normal file
@ -679,9 +679,7 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
|
||||
}
|
||||
|
||||
pw_mangohud_check () {
|
||||
if [[ "${PW_MANGOHUD}" == "1" ]] \
|
||||
&& ! check_gamescope_session
|
||||
then
|
||||
if [[ "${PW_MANGOHUD}" == "1" ]] && ! check_gamescope_session ; then
|
||||
export PW_MANGOHUD_SLR='MANGOHUD=1'
|
||||
MANGOHUD_LIB_NAME="libMangoHud.so"
|
||||
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
|
||||
@ -701,7 +699,7 @@ pw_mangohud_check () {
|
||||
}
|
||||
|
||||
pw_vkbasalt_check () {
|
||||
if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then
|
||||
if [[ "${ENABLE_VKBASALT}" == "1" ]] ; then
|
||||
export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
|
||||
if ! grep "${PW_PLUGINS_PATH}/reshade" "${VKBASALT_CONFIG_FILE}" &>/dev/null
|
||||
then sed -ri "s|= .*/reshade|= \"${PW_PLUGINS_PATH}\"/reshade|g" "${VKBASALT_CONFIG_FILE}"
|
||||
@ -1932,14 +1930,18 @@ start_portwine () {
|
||||
try_force_link_file "${PHYSX_PATH}/cudart32_65.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
|
||||
try_force_link_file "${PHYSX_PATH}/cudart64_65.dll" "${WINEPREFIX}/drive_c/windows/system32/"
|
||||
|
||||
unset CP_VKD3D_FILES CP_DXVK_FILES CP_D8VK_FILES CP_WINE_FILES PATH_TO_VKD3D_FILES PATH_TO_DXVK_FILES
|
||||
unset CP_VKD3D_FILES CP_DXVK_FILES CP_D8VK_FILES CP_DGV2_FILES CP_G_NINE_FILES CP_WINE_FILES
|
||||
unset PATH_TO_DXVK_FILES PATH_TO_VKD3D_FILES
|
||||
case "${PW_VULKAN_USE}" in
|
||||
0) # WINED3D OPENGL
|
||||
print_info "Use WINED3D OpenGL"
|
||||
export GL_YIELD="NOTHING"
|
||||
export mesa_glthread=true
|
||||
export WINE_D3D_CONFIG='renderer=gl'
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
|
||||
export __GL_YIELD="NOTHING"
|
||||
export mesa_glthread="true"
|
||||
export WINE_D3D_CONFIG="renderer=gl"
|
||||
export ENABLE_VKBASALT="0"
|
||||
;;
|
||||
1) # STABLE DXVK AND VKD3D
|
||||
print_info "DXVK v.${DXVK_STABLE_VER} in use"
|
||||
@ -1963,73 +1965,46 @@ start_portwine () {
|
||||
;;
|
||||
3) # GALLIUM NINE
|
||||
print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
|
||||
CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 dxgi d3d12 d3d12core"
|
||||
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" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll"
|
||||
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
|
||||
var_winedlloverride_update "d3d9=n"
|
||||
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 [[ ! -z "$FIND_D3D_MODULE" ]] ; then
|
||||
old_IFS=$IFS
|
||||
IFS=$'\n'
|
||||
for D3D_MP in $FIND_D3D_MODULE ; do
|
||||
if [[ ! -z "$D3D_MODULE_PATH" ]]
|
||||
then D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}"
|
||||
else D3D_MODULE_PATH="/run/host${D3D_MP}"
|
||||
fi
|
||||
done
|
||||
IFS=$old_IFS
|
||||
print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
|
||||
else
|
||||
pw_stop_progress_bar
|
||||
yad_error "$(eval_gettext "d3dadapter9.so.1.0.0 - Not found in the system.\nInstall the missing package: <b>d3dadapter9</b>")"
|
||||
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 mesa_glthread=true
|
||||
export ENABLE_VKBASALT=0
|
||||
export PW_MANGOHUD=0
|
||||
export WINE_FULLSCREEN_FSR=0
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_G_NINE_FILES="d3d9"
|
||||
CP_WINE_FILES="d3d8 d3d11 d3d10core d3d10_1 d3d10 dxgi d3d12 d3d12core"
|
||||
export __GL_YIELD="NOTHING"
|
||||
export mesa_glthread="true"
|
||||
export WINE_D3D_CONFIG="renderer=gl"
|
||||
export PW_WINE_FULLSCREEN_FSR="0"
|
||||
export ENABLE_VKBASALT="0"
|
||||
export PW_MANGOHUD="0"
|
||||
;;
|
||||
4) # GALLIUM ZINK
|
||||
print_info "Use GALLIUM-ZINK (OpenGL on MESA vulkan drivers)"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
|
||||
export GL_YIELD="NOTHING"
|
||||
export mesa_glthread=true
|
||||
export WINE_D3D_CONFIG='renderer=gl'
|
||||
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
|
||||
if ! check_wayland_session \
|
||||
|| [[ "${PW_USE_GAMESCOPE}" != "1" ]]
|
||||
then
|
||||
export LIBGL_KOPPER_DRI2="1"
|
||||
if ! check_wayland_session && [[ "${PW_USE_GAMESCOPE}" != "1" ]] ; then
|
||||
export LIBGL_KOPPER_DRI2=1
|
||||
fi
|
||||
;;
|
||||
5) # LEGACY DXVK AND DGVOODOO2
|
||||
print_info "DXVK v.${DXVK_LEGACY_VER} in use"
|
||||
print_info "DGVOODOO2 v.${DGV2_VER} in use"
|
||||
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}"
|
||||
PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-v${DGV2_VER}"
|
||||
CP_DGV2_FILES="ddraw d3dimm glide glide2x glide3x"
|
||||
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
|
||||
CP_WINE_FILES="d3d8 d3d12 d3d12core"
|
||||
;;
|
||||
6) # WINED3D VULKAN (DAMAVAND)
|
||||
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="ddraw d3d8 d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi d3d12 d3d12core"
|
||||
export WINE_D3D_CONFIG='renderer=vulkan'
|
||||
;;
|
||||
7) # LEGACY DXVK
|
||||
print_info "DXVK v.${DXVK_LEGACY_VER} in use"
|
||||
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_LEGACY_VER}"
|
||||
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
|
||||
;;
|
||||
esac
|
||||
|
||||
# force use dxgi.dll from wine
|
||||
@ -2082,7 +2057,7 @@ start_portwine () {
|
||||
fi
|
||||
|
||||
if [[ ! -z "$CP_D8VK_FILES" ]] ; then
|
||||
print_info "Try link native D8VK file..."
|
||||
print_info "Try link native D8VK files..."
|
||||
PATH_TO_D8VK_FILES="${PW_VULKAN_DIR}/d8vk-${D8VK_VER}"
|
||||
for wine_d8vk_dll in $CP_D8VK_FILES ; do
|
||||
try_force_link_file "${PATH_TO_D8VK_FILES}/x32/${wine_d8vk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
|
||||
@ -2092,12 +2067,11 @@ start_portwine () {
|
||||
fi
|
||||
|
||||
if [[ ! -z "$CP_DGV2_FILES" ]] ; then
|
||||
print_info "Try copy native DGVOODOO2 file..."
|
||||
print_info "Try copy native DGVOODOO2 files..."
|
||||
PATH_TO_DGV2_FILES="${PW_VULKAN_DIR}/dgvoodoo2-v${DGV2_VER}"
|
||||
for wine_dgv2_dll in $CP_DGV2_FILES ; do
|
||||
try_copy_file "${PATH_TO_DGV2_FILES}/x32/${wine_dgv2_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
|
||||
done
|
||||
|
||||
if [[ ! -f "${WINEPREFIX}/drive_c/windows/syswow64/dgVoodoo.conf" ]] ; then
|
||||
echo "[General]
|
||||
OutputAPI = d3d11_fl11_0
|
||||
@ -2110,6 +2084,37 @@ dgVoodooWatermark = false" > "${WINEPREFIX}/drive_c/windows/sy
|
||||
var_winedlloverride_update "ddraw=n"
|
||||
fi
|
||||
|
||||
if [[ "$CP_G_NINE_FILES" == "d3d9" ]] ; then
|
||||
print_info "Try link native GALLIUM-NINE files..."
|
||||
PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
|
||||
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 [[ ! -z "$FIND_D3D_MODULE" ]] ; then
|
||||
old_IFS=$IFS
|
||||
IFS=$'\n'
|
||||
for D3D_MP in $FIND_D3D_MODULE ; do
|
||||
if [[ ! -z "$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=$old_IFS
|
||||
print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
|
||||
else
|
||||
pw_stop_progress_bar
|
||||
yad_error "$(eval_gettext "d3dadapter9.so.1.0.0 - Not found in the system.\nInstall the missing package: <b>d3dadapter9</b>")"
|
||||
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
|
||||
var_winedlloverride_update "d3d9=n"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${WINEPREFIX}/drive_c/vrclient/bin" ]] ; then
|
||||
create_new_dir "${WINEPREFIX}/drive_c/vrclient/bin"
|
||||
try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/vrclient.dll "${WINEPREFIX}/drive_c/vrclient/bin/"
|
||||
@ -2128,9 +2133,7 @@ dgVoodooWatermark = false" > "${WINEPREFIX}/drive_c/windows/sy
|
||||
export VKD3D_SHADER_CACHE_PATH="0"
|
||||
fi
|
||||
|
||||
if [[ "${PW_WINE_FULLSCREEN_FSR}" == "1" ]] \
|
||||
|| [[ "${WINE_FULLSCREEN_FSR}" == "1" ]]
|
||||
then
|
||||
if [[ "${PW_WINE_FULLSCREEN_FSR}" == "1" ]] ; then
|
||||
export WINE_FULLSCREEN_FSR="1"
|
||||
export WINE_FULLSCREEN_FSR_STRENGTH="2"
|
||||
export WINE_FULLSCREEN_INTEGER_SCALING="0"
|
||||
@ -2703,8 +2706,7 @@ pw_gui_for_edit_db () {
|
||||
PW_USE_SYSTEM_VK_LAYERS_INFO=$(eval_gettext 'Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers')
|
||||
PW_USE_OBS_VKCAPTURE_INFO=$(eval_gettext 'Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)')
|
||||
PW_DISABLE_COMPOSITING_INFO=$(eval_gettext 'Disable desktop compositing (effects). It often improves performance.')
|
||||
PW_USE_GAMESCOPE_INFO=$(eval_gettext "
|
||||
<b>Super + F :</b> Toggle fullscreen
|
||||
PW_USE_GAMESCOPE_INFO=$(eval_gettext '<b>Super + F :</b> Toggle fullscreen
|
||||
<b>Super + N :</b> Toggle nearest neighbour filtering
|
||||
<b>Super + U :</b> Toggle FSR upscaling
|
||||
<b>Super + Y :</b> Toggle NIS upscaling
|
||||
@ -2712,7 +2714,7 @@ pw_gui_for_edit_db () {
|
||||
<b>Super + O :</b> Decrease FSR sharpness by 1
|
||||
<b>Super + S :</b> Take screenshot (currently goes to /tmp/gamescope_DATE.png)
|
||||
<b>Super + G :</b> Toggle keyboard grab
|
||||
<b>Super + C :</b> Update clipboard")
|
||||
<b>Super + C :</b> Update clipboard')
|
||||
|
||||
edit_db_field_add () {
|
||||
for int_to_boole in $@ ; do
|
||||
@ -3657,8 +3659,6 @@ portwine_start_debug () {
|
||||
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER} and DGVOODOO2 v.${DGV2_VER}" >> "${PORT_WINE_PATH}/PortProton.log"
|
||||
elif [[ "${PW_VULKAN_USE}" = "6" ]] ; then
|
||||
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d vulkan" >> "${PORT_WINE_PATH}/PortProton.log"
|
||||
elif [[ "${PW_VULKAN_USE}" = "7" ]] ; then
|
||||
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_LEGACY_VER}" >> "${PORT_WINE_PATH}/PortProton.log"
|
||||
else
|
||||
echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log"
|
||||
fi
|
||||
@ -3833,16 +3833,19 @@ EOF
|
||||
}
|
||||
|
||||
pw_edit_db () {
|
||||
PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_VKBASALT_USER_CONF PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 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_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GAMESCOPE PW_DISABLE_COMPOSITING PW_USE_RUNTIME"
|
||||
|
||||
PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_VKBASALT_USER_CONF PW_NO_ESYNC PW_NO_FSYNC
|
||||
PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 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_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
|
||||
PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GAMESCOPE PW_DISABLE_COMPOSITING
|
||||
PW_USE_RUNTIME
|
||||
"
|
||||
if check_wayland_session ; then
|
||||
rm_from_var PW_EDIT_DB_LIST "PW_USE_US_LAYOUT"
|
||||
fi
|
||||
|
||||
if check_flatpak ; then
|
||||
rm_from_var PW_EDIT_DB_LIST "PW_USE_RUNTIME"
|
||||
fi
|
||||
|
||||
pw_gui_for_edit_db $PW_EDIT_DB_LIST
|
||||
|
||||
# PW_FORCE_USE_VSYNC HEAP_DELAY_FREE
|
||||
|
Loading…
Reference in New Issue
Block a user