From c946de6169e7be0e84238912febba391fc681cfb Mon Sep 17 00:00:00 2001
From: castro-fidel <tergoevm@gmail.com>
Date: Sat, 18 Mar 2023 15:46:42 +0300
Subject: [PATCH] Scripts version 2174

---
 data_from_portwine/changelog_eng            |  6 ++++++
 data_from_portwine/changelog_rus            |  7 +++++++
 data_from_portwine/scripts/functions_helper |  7 +++++--
 data_from_portwine/scripts/runlib           | 16 ++++++++++------
 data_from_portwine/scripts/start.sh         | 17 ++++++++---------
 data_from_portwine/scripts/var              |  6 +++---
 6 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng
index e7efa760..d0968b6b 100755
--- a/data_from_portwine/changelog_eng
+++ b/data_from_portwine/changelog_eng
@@ -2,6 +2,12 @@ You can help us in the development of the project on the website: boosty.to/linu
 -----------------------------------------
 Changelog:
 
+###Scripts version 2174###
+* updated versions:
+    PROTON_LG="7-51" 
+    PROTON_GE="7-51" 
+* minor improvements and optimization of scripts
+
 ###Scripts version 2173###
 * added saving the size of the PortProton main menu window
 
diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus
index f9335891..bffb2108 100755
--- a/data_from_portwine/changelog_rus
+++ b/data_from_portwine/changelog_rus
@@ -2,6 +2,13 @@
 -----------------------------------------
 История изменений:
 
+###Scripts version 2174###
+* обновлены версии:
+    PROTON_LG="7-51" 
+    PROTON_GE="7-51" 
+* добавлена переменная PW_USE_GSTREAMER в настройки запуска для включения/выключения gstreamer (воспроизведение видео в играх)
+* небольшие улучшения PortProton
+
 ###Scripts version 2173###
 * добавлено сохранение размера окна главного меню PortProton (необходим пакет wmctrl установленный в системе)
 
diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index 9d53b4fa..d920b7e2 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -994,8 +994,11 @@ pw_find_exe () {
     --text="\n${loc_gui_create_shortcut_for_exe}" --column="path to .exe file:" ${FIND_TO_GUI})"
     YAD_STATUS="$?"
     print_var YAD_STATUS
-    if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" || -z "${PW_SET_FIND_EXE}" ]] ; then
-        /usr/bin/env bash -c ${pw_full_command_line[*]} &
+    if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
+        if [[ -z "${PW_SET_FIND_EXE}" ]] ; then
+            /usr/bin/env bash -c ${pw_full_command_line[*]} &
+            echo "Restarting..."
+        fi
         exit 0
     fi
     IFS=$OrigIFS
diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index 4e2ee176..3c91ec57 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -129,15 +129,19 @@ start_portwine () {
         export WINE_HIDE_NVIDIA_GPU=0
     elif [[ ! -z "${PW_USE_NVAPI_AND_DLSS}" && "${PW_USE_NVAPI_AND_DLSS}" == 1 ]] && [[ -d "${WINEDIR}/lib/wine/nvapi/" ]]
     then
-        try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/"
-        try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/" 
+        if ! try_force_link_file "${WINEDIR}/lib/wine/nvapi/nvapi.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/" ; then
+            try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/"
+        fi
+        if ! try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/" ; then
+            try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/" 
+        fi
         try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvngx.ini"
-        var_winedlloverride_update "nvapi,nvapi64,nvml=n;nvcuda=b"
+        var_winedlloverride_update "nvapi,nvapi64=n;nvml,nvcuda,nvcuvid=b"
         if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvngx.dll" || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/_nvngx.dll" ]] ; then
             try_copy_file `find /usr/* -type f -name "nvngx.dll" 2>/dev/null | awk '{print $1}' | grep '/lib/'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"
             try_copy_file `find /usr/* -type f -name "_nvngx.dll" 2>/dev/null | awk '{print $1}' | grep '/lib/'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/"       
         fi
-        echo "Try link nvml.dll.so to prefix"
+        # echo "Try link nvml.dll.so to prefix"
         try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/nvml.dll"
         try_force_link_file "${PW_PLUGINS_PATH}"/nvml/lib64/wine/nvml.dll.so "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/nvml.dll"
         export DXVK_NVAPIHACK=0
@@ -171,10 +175,10 @@ start_portwine () {
     [[ ! -z "${PW_MANGOHUD_USER_CONF}" && "${PW_MANGOHUD_USER_CONF}" != 0 ]] && unset MANGOHUD_CONFIG
     if [[ ! -z "${PW_USE_DXR11}" && "${PW_USE_DXR11}" != 0 ]] ; then 
         var_vkd3d_config_update dxr11
-        var_radv_perftest_config_update rt
+        var_radv_perftest_config_update rt,gpl
     elif [[ ! -z "${PW_USE_DXR10}" && "${PW_USE_DXR10}" != 0 ]] ; then 
         var_vkd3d_config_update dxr
-        var_radv_perftest_config_update rt
+        var_radv_perftest_config_update rt,gpl
     fi
     export optirun_on=""
     export check_optimus_manager=
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index 466a92a8..0ae779f9 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -190,8 +190,7 @@ portwine_start_debug () {
     unset PW_TIMER
     while read -r line || [[ -n $(pgrep -a yad | grep "yad_new --text-info --tail --button="STOP":0 --title="DEBUG"" | awk '{print $1}') ]] ; do
             sleep 0.005
-            if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \
-                                    && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \
+            if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \
                                     && [[ -z "$(echo "${line}" | grep -i "ntlm")" ]]
             then
                 echo "# ${line}"
@@ -205,7 +204,6 @@ portwine_start_debug () {
     kill_portwine
 #    sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && kill_portwine
     sed -i '/.fx$/d' "${PORT_WINE_PATH}/${portname}.log"
-    sed -i '/GStreamer/d' "${PORT_WINE_PATH}/${portname}.log"
     sed -i '/kerberos/d' "${PORT_WINE_PATH}/${portname}.log"
     sed -i '/ntlm/d' "${PORT_WINE_PATH}/${portname}.log"
     sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/${portname}.log"
@@ -414,15 +412,15 @@ pw_create_prefix_backup () {
 pw_edit_db () {
     pw_gui_for_edit_db \
     PW_MANGOHUD PW_MANGOHUD_x32 PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \
-    PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
+    PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
     PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME \
-    PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE PW_USE_WINE_DXGI
+    PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE PW_USE_WINE_DXGI
     if [ "$?" == 0 ] ; then
         echo "Restarting PP after update ppdb file..."
         /usr/bin/env bash -c ${pw_full_command_line[*]} &
         exit 0
     fi
-    # PW_WINE_ALLOW_XIM PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE PW_USE_GSTREAMER PW_USE_AMDVLK_DRIVER
+    # PW_WINE_ALLOW_XIM PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE PW_USE_AMDVLK_DRIVER
 }
 
 pw_autoinstall_from_db () {
@@ -769,14 +767,15 @@ else
     # --field="   Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"'
 
     if  [[ `which wmctrl` ]] &>/dev/null ; then
+        sleep 2
         while [[ $(pgrep -a yad_new | head -n 1 | awk '{print $1}' 2>/dev/null) ]] ; do
-            sleep 1
+            sleep 2
             PW_MAIN_GUI_SIZE_TMP="$(wmctrl -lG | grep PortProton-1.0 | awk '{print $5" "$6}' 2>/dev/null)"
             if [[ -n "${PW_MAIN_GUI_SIZE_TMP}" ]] ; then
                 echo "${PW_MAIN_GUI_SIZE_TMP}" > "${PORT_WINE_TMP_PATH}/tmp_main_gui_size"
             fi
-        done &
-    fi
+        done
+    fi &
 
     if [[ -z "${PW_ALL_DF}" ]] ; then
         "${pw_yad_new}" --key=$KEY --notebook --borders=5 --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close --center \
diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var
index f8931800..af29e872 100755
--- a/data_from_portwine/scripts/var
+++ b/data_from_portwine/scripts/var
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 #Author: Castro-Fidel (linux-gaming.ru)
-#SCRIPTS_NEXT_VERSION=2173
+#SCRIPTS_NEXT_VERSION=2174
 ########################################################################
 export PW_MANGOHUD=0
 export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt
@@ -35,10 +35,10 @@ export PW_WINE_USE="PROTON_LG"
 export PW_PLUGINS_VER="_v10"
 export PW_FAKE_DLSS_VER="091122"
 ###WINE_PROTON_LG###
-export PW_LG_VER="7-49"
+export PW_LG_VER="7-51"
 export PW_PROTON_LG_VER="PROTON_LG_${PW_LG_VER}"
 ###WINE_PROTON_GE###
-export PW_GE_VER="7-49"
+export PW_GE_VER="7-51"
 export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}"
 export PW_WINE_FULLSCREEN_FSR="1"
 ###DXVK_AND_VKD3D###