Fix gamescope with gallium nine on amd (and steamdeck), allow use vkbasalt with gamescope and steamdeck on Wined3d opengl and Gallium nine

This commit is contained in:
Htylol 2024-05-05 15:18:42 +05:00
parent cd895d5e19
commit a6775ae48e

@ -78,7 +78,7 @@ generate_pot () {
for lang in $LANGUAGES_LIST
do
echo "${lang}"
mkdir -p "${PORT_WINE_PATH}/data/locales/${lang}/LC_MESSAGES/"
create_new_dir "${PORT_WINE_PATH}/data/locales/${lang}/LC_MESSAGES/"
LANG_PO="${PORT_WINE_PATH}/data/locales/${lang}/LC_MESSAGES/PortProton.po"
LANG_MO="${PORT_WINE_PATH}/data/locales/${lang}/LC_MESSAGES/PortProton.mo"
TEMPLATE_POT="${PORT_WINE_PATH}/data/locales/PortProton.pot"
@ -311,19 +311,6 @@ check_start_from_steam () {
fi
}
check_gamescope_session () {
if [[ ! -z "$GAMESCOPE_IN_USE" ]]
then [[ "$GAMESCOPE_IN_USE" == 1 ]] && return 0 || return 1
fi
if echo "${DESKTOP_SESSION}" | grep -i "gamescope" &>/dev/null ; then
export GAMESCOPE_IN_USE=1
return 0
else
export GAMESCOPE_IN_USE=0
return 1
fi
}
check_wayland_session () {
if [[ ! -z "$WAYLAND_IN_USE" ]]
then [[ "$WAYLAND_IN_USE" == 1 ]] && return 0 || return 1
@ -337,6 +324,34 @@ check_wayland_session () {
fi
}
# steamdeck game session
check_gamescope_session () {
if [[ ! -z "$GAMESCOPE_SESSION_IN_USE" ]]
then [[ "$GAMESCOPE_SESSION_IN_USE" == 1 ]] && return 0 || return 1
fi
if echo "${DESKTOP_SESSION}" | grep -i "gamescope" &>/dev/null ; then
export GAMESCOPE_SESSION_IN_USE=1
return 0
else
export GAMESCOPE_SESSION_IN_USE=0
return 1
fi
}
# gamescope use in PortProton
check_gamescope_use () {
if [[ ! -z "$GAMESCOPE_USE_IN_USE" ]]
then [[ "$GAMESCOPE_USE_IN_USE" == 1 ]] && return 0 || return 1
fi
if [[ "${PW_USE_GAMESCOPE}" = "1" ]] ; then
export GAMESCOPE_USE_IN_USE=1
return 0
else
export GAMESCOPE_USE_IN_USE=0
return 1
fi
}
check_flatpak () {
if [[ ! -z "$FLATPAK_IN_USE" ]]
then [[ "$FLATPAK_IN_USE" == 1 ]] && return 0 || return 1
@ -994,7 +1009,7 @@ pw_check_and_download_dxvk_and_vkd3d () {
then
if "$pw_7z" x -y "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}.zip" -o"${PW_VULKAN_DIR}/dgvoodoo2-tmp" 1>/dev/null ; then
try_remove_file "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}.zip"
mkdir -p "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/x32"
create_new_dir "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/x32"
for DGV2_DLL_GLIDE in Glide Glide2x Glide3x ; do
mv -f "${PW_VULKAN_DIR}/dgvoodoo2-tmp/3Dfx/x86/${DGV2_DLL_GLIDE}.dll" "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/x32/${DGV2_DLL_GLIDE,,}.dll"
done
@ -1796,6 +1811,11 @@ start_portwine () {
else export WINE_HEAP_DELAY_FREE="0"
fi
if [[ "${PW_HEAP_ZERO_MEMORY}" == 1 ]]
then export WINE_HEAP_ZERO_MEMORY="1"
else export WINE_HEAP_ZERO_MEMORY="0"
fi
if [[ "${PW_WINE_ALLOW_XIM}" == 1 ]]
then export WINE_ALLOW_XIM="1"
else export WINE_ALLOW_XIM="0"
@ -1832,7 +1852,7 @@ start_portwine () {
case "$PW_FORCE_USE_VSYNC" in # 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
0)
export vblank_mode=0
export vblank_mode=0
export __GL_SYNC_TO_VBLANK=0
;;
1)
@ -1965,7 +1985,11 @@ start_portwine () {
export __GL_YIELD="NOTHING"
export mesa_glthread="true"
export WINE_D3D_CONFIG="renderer=gl"
export ENABLE_VKBASALT="0"
if check_gamescope_use || check_gamescope_session && [[ "${ENABLE_VKBASALT}" = "1" ]] ; then
export ENABLE_VKBASALT="1"
else
export ENABLE_VKBASALT="0"
fi
;;
1)
# STABLE DXVK AND VKD3D
@ -2004,9 +2028,6 @@ start_portwine () {
export __GL_YIELD="NOTHING"
export mesa_glthread="true"
export WINE_D3D_CONFIG="renderer=gl"
export ENABLE_VKBASALT="0"
export PW_MANGOHUD="0"
export PW_WINE_FULLSCREEN_FSR="0"
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)
@ -2031,6 +2052,14 @@ start_portwine () {
print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
fi
var_winedlloverride_update "d3d9=n"
if check_gamescope_use || check_gamescope_session && [[ ! -z $(echo "$LSPCI_VGA" | grep -i "AMD") ]] ; then
export AMD_DEBUG="nodcc"
fi
if check_gamescope_use || check_gamescope_session && [[ "${ENABLE_VKBASALT}" = "1" ]] ; then
export ENABLE_VKBASALT="1"
else
export ENABLE_VKBASALT="0"
fi
;;
4)
# GALLIUM ZINK
@ -2044,7 +2073,7 @@ start_portwine () {
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
if ! check_wayland_session && ! check_gamescope_use || ! check_gamescope_session ; then
export LIBGL_KOPPER_DRI2="1"
fi
;;
@ -3900,8 +3929,7 @@ pw_edit_db () {
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
# PW_HEAP_DELAY_FREE PW_FORCE_USE_VSYNC PW_HEAP_ZERO_MEMORY_FREE
}
pw_autoinstall_from_db () {