From a6775ae48e60fa296148cc2fe359f88c2bdc865b Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 5 May 2024 15:18:42 +0500 Subject: [PATCH] Fix gamescope with gallium nine on amd (and steamdeck), allow use vkbasalt with gamescope and steamdeck on Wined3d opengl and Gallium nine --- data_from_portwine/scripts/functions_helper | 74 ++++++++++++++------- 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 75eeab56..793e89b3 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -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 () {