From a71b85413696658d2db579445cec4764a23942e5 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 17 Jul 2025 18:46:16 +0300 Subject: [PATCH] added support and setting for NTSYNC --- data_from_portwine/scripts/functions_helper | 26 +++++++++++++++++---- data_from_portwine/scripts/start.sh | 1 + data_from_portwine/scripts/var | 6 +++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 2bd1314e..2cf935cf 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3351,12 +3351,12 @@ start_portwine () { if [[ $ULIMIT_HN -lt 524288 ]] ; then print_warning "ESYNC dont work! (ulimit -Hn $ULIMIT_HN < 524288)" export WINEESYNC="0" - elif [[ "${PW_NO_ESYNC}" == 1 ]] + elif [[ $PW_NO_ESYNC == "1" ]] then export WINEESYNC="0" else export WINEESYNC="1" fi - if [[ "${PW_NO_FSYNC}" == 1 ]] ; then + if [[ $PW_NO_FSYNC == "1" ]] ; then export WINEFSYNC="0" export WINEFSYNC_FUTEX2="0" else @@ -3365,6 +3365,19 @@ start_portwine () { check_variables WINEFSYNC_FUTEX2 0 fi + if [[ $PW_NO_NTSYNC == "0" ]] ; then + if [[ -e "/dev/ntsync" ]] ; then + export WINENTSYNC="1" + export WINEFSYNC="0" + export WINEESYNC="0" + else + export WINENTSYNC="0" + print_error "/dev/ntsync - not found!" + fi + else + export WINENTSYNC="0" + fi + # export WINE_SIMULATE_ASYNC_READ=1 # export WINE_FSYNC_SIMULATE_SCHED_QUANTUM=1 # export WINE_ALERT_SIMULATE_SCHED_QUANTUM=1 @@ -5323,9 +5336,9 @@ export -f gui_proton_downloader gui_edit_db () { KEY_EDIT_DB_GUI=$RANDOM PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE - 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_USE_LS_FRAME_GEN - 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_NO_ESYNC PW_NO_FSYNC PW_NO_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 + PW_USE_LS_FRAME_GEN 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_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR @@ -5352,6 +5365,7 @@ gui_edit_db () { Super + C : Update clipboard]} PW_NO_ESYNC_INFO=${translations[Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)]} PW_NO_FSYNC_INFO=${translations[Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems without FUTEX_WAIT_MULTIPLE support) (It is recommended not to change the value)]} + PW_NO_NTSYNC_INFO=${translations[Do not use in-process synchronization via the Linux ntsync driver. (Automatically disabled on systems without loaded ntsync module) (Experimental)]} PW_USE_RAY_TRACING_INFO=${translations[Enable vkd3d support - Ray Tracing]} PW_USE_NVAPI_AND_DLSS_INFO=${translations[Enable DLSS on supported NVIDIA graphics cards]} PW_USE_FAKE_DLSS_INFO=${translations[Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)]} @@ -5410,6 +5424,8 @@ gui_edit_db () { DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D" fi + [[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_NO_NTSYNC" + if check_wayland_session then DISABLE_EDIT_DB_LIST+=" PW_USE_US_LAYOUT" else DISABLE_EDIT_DB_LIST+=" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 3e85f303..2f69423b 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -335,6 +335,7 @@ if [[ ${portwine_exe,,} =~ (setup|install|.msi$) ]] ; then export PW_DISABLED_CREATE_DB="1" export PW_VULKAN_USE="1" export PW_MANGOHUD="0" + export PW_NO_NTSYNC="1" export PW_NO_FSYNC="1" export PW_NO_ESYNC="1" export PW_USE_GAMEMODE="0" diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index ec8963e5..8a09db4e 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -15,6 +15,8 @@ export PW_RT_MOUNT_RO=("") export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}") #export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}" export PW_NO_ESYNC="0" +export PW_NO_FSYNC="0" +export PW_NO_NTSYNC="1" export PW_USE_GAMEMODE="0" export PW_USE_TERMINAL="0" export PW_WINDOWS_VER="10" @@ -48,7 +50,7 @@ export PW_PLUGINS_VER="_v20" export PW_FAKE_DLSS_VER="230506" export PW_FAKE_DLSS_3_VER="0.9.1-plus" export PW_GALLIUM_NINE_VER="0.10" -export PW_LSFG_VK_VER="2.13" +export PW_LSFG_VK_VER="3.1-cebe5e2" ###WINE_AND_PROTON_LG### export PW_PROTON_LG_VER="PROTON_LG_10-8" export PW_WINE_LG_VER="WINE_LG_10-12" @@ -66,7 +68,7 @@ export VKD3D_GIT_VER="1.1-4655" export PW_VKBASALT_EFFECTS="Curves:cas" export PW_VKBASALT_FFX_CAS="0.50" ###MANGOHUD### -export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine" +export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine,winesync" ###DGVOODOO2### export DGV2_VER="2.79.3" export PW_DGV2_ANTIALIASING="disabled"