Commit f7bd8449 authored by Mikhail Tergoev's avatar Mikhail Tergoev

Merge branch 'numa' of github.com:Boria138/PortWINE into Boria138-numa

parents c8e84d9a 5ce1ef8a
......@@ -7,13 +7,13 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-07 19:38+0500\n"
"POT-Creation-Date: 2025-04-21 21:55+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A running PortProton session was detected.\\nDo you want to end the "
......@@ -100,12 +100,6 @@ msgstr ""
msgid "Edit database file for"
msgstr ""
msgid "Global settings"
msgstr ""
msgid "Settings for user.conf"
msgstr ""
msgid "Open directory"
msgstr ""
......@@ -638,6 +632,15 @@ msgstr ""
msgid "Choosing which implementation of vulkan will be used to run the game"
msgstr ""
msgid "NUMA node for CPU affinity"
msgstr ""
msgid "In multi‑core systems, CPUs are split into NUMA nodes, each with its "
"own local memory and cores.\n"
"Binding a game to a single node reduces memory‑access latency and "
"limits costly core‑to‑core switches.)"
msgstr ""
msgid "EDIT DB"
msgstr ""
......@@ -1401,118 +1404,7 @@ msgstr ""
msgid "classic"
msgstr ""
msgid "light"
msgstr ""
msgid "dark"
msgstr ""
msgid "Show in hours and minutes"
msgstr ""
msgid "Show in days, hours, minutes"
msgstr ""
msgid "According to last launch"
msgstr ""
msgid "By time"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr ""
msgid "Change global settings"
msgstr ""
msgid "Change mirror to"
msgstr ""
msgid "Depending on which mirror is selected, updates will be downloaded "
"from there."
msgstr ""
msgid "Change branch to"
msgstr ""
msgid "Depending on the version of the scripts, PortProton will receive the "
"latest changes first (the DEVEL branch), the STABLE branch is "
"updated later and is stable."
msgstr ""
msgid "Change start gui to"
msgstr ""
msgid "When using PANED in the game start menu, additional buttons are "
"located on one large page; if NOTEBOOK, then they are divided into "
"several."
msgstr ""
msgid "Steam covers download"
msgstr ""
msgid "If downloading steam covers is enabled, they will be downloaded and "
"created. (Disablement is provided in cases where their downloading "
"is unavailable for some reason)"
msgstr ""
msgid "Choose a graphics card to run the game"
msgstr ""
msgid "Select which video card will be used to run the game (used for all "
"running games and programs in PortProton)"
msgstr ""
msgid "Force dpi"
msgstr ""
msgid "Here you can set forced dpi for applications wine"
msgstr ""
msgid "Choice wine audio driver"
msgstr ""
msgid "Fixes sound popling if choice alsa"
msgstr ""
msgid "Select PortProton theme"
msgstr ""
msgid "Allows you to select a theme for PortProton"
msgstr ""
msgid "Select gtk theme"
msgstr ""
msgid "Allows you to select a theme for GTK."
msgstr ""
msgid "Time display"
msgstr ""
msgid "Displays time spent in an application or game"
msgstr ""
msgid "Sort shortcuts by"
msgstr ""
msgid "This setting sorts the shortcuts in the main menu"
msgstr ""
msgid "Open the <b>user.conf</b> settings file in a system text editor to "
"view and change variables manually"
msgstr ""
msgid "Do you really want to reset settings for"
msgstr ""
msgid "Do you actually want to change the scripts version to:"
msgstr ""
msgid "Branch changed to:"
msgstr ""
msgid "The shortcut will be created in the PortProton directory."
msgid "The shortcut will be changed in the PortProton directory."
msgstr ""
msgid "Name"
......@@ -1527,9 +1419,6 @@ msgstr ""
msgid "Add shortcut to STEAM library"
msgstr ""
msgid "The shortcut will be changed in the PortProton directory."
msgstr ""
msgid "REMOVE SHORTCUT"
msgstr ""
......
......@@ -4328,11 +4328,12 @@ pw_run () {
check_variables SteamAppId "0"
check_variables SteamGameId "0"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME"
print_var "WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR"
proxy_launch_parameters=${LAUNCH_PARAMETERS//\\\\/\\}
if [[ "$PW_USE_RUNTIME" == 1 ]] \
&& [[ "$PW_WINE_USE" != "USE_SYSTEM_WINE" ]]
......@@ -4347,7 +4348,8 @@ pw_run () {
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR}\
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
......@@ -4366,7 +4368,8 @@ pw_run () {
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR}\
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
......@@ -4402,7 +4405,8 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
"${WINELOADER}" "$@" ${proxy_launch_parameters} &>>"${PW_LOG_TO_FILE}"
wait_wineserver
else
......@@ -4421,7 +4425,8 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
"${WINELOADER}" "$@" ${proxy_launch_parameters}
wait_wineserver
fi
......@@ -5204,6 +5209,23 @@ gui_edit_db () {
CPU_LIMIT_VAR="disabled"
fi
declare -A NODE_MAP
NUMA_NODE_LIST=""
INDEX=0
while read -r line; do
NODE_MAP[$INDEX]="$line"
NUMA_NODE_LIST+="$INDEX "
((INDEX++))
done < <( lscpu | grep -Po "NUMA node\d+ CPU\(s\):\s+\K.*" )
# удаляем последний пробел, чтобы в combobox не было «0 »
NUMA_NODE_LIST="${NUMA_NODE_LIST% }"
if [[ -n "${PW_CPU_NUMA_NODE_INDEX}" ]] && [[ "${PW_CPU_NUMA_NODE_INDEX}" != "disabled" ]]; then
NUMA_NODE_INDEX="${PW_CPU_NUMA_NODE_INDEX}"
else
NUMA_NODE_INDEX="disabled"
fi
if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \
[[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
......@@ -5235,6 +5257,8 @@ immediate - Unlimited frame rate + tearing.
mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multi‑core systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memory‑access latency and limits costly core‑to‑core switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
......@@ -5285,6 +5309,17 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]
PW_LOCALE_SELECT="${PW_ADD_SETTINGS[7]}"
PW_MESA_VK_WSI_PRESENT_MODE="${PW_ADD_SETTINGS[8]}"
PW_AMD_VULKAN_USE="${PW_ADD_SETTINGS[9]}"
NUMA_NODE_INDEX="${PW_ADD_SETTINGS[10]//[[:space:]]/}"
if [[ "$NUMA_NODE_INDEX" =~ ^[0-9]+$ ]] && [[ -v NODE_MAP[$NUMA_NODE_INDEX] ]]; then
NUMA_CORES="${NODE_MAP[$NUMA_NODE_INDEX]}"
PW_CPU_NUMA_NODE_INDEX="$NUMA_NODE_INDEX"
PW_TASKSET_SLR="taskset -c $NUMA_CORES"
else
PW_CPU_NUMA_NODE_INDEX="disabled"
PW_TASKSET_SLR=""
fi
export PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
if [[ "${CPU_LIMIT}" =~ ^[0-9]+$ ]] ; then
PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $(( CPU_LIMIT - 1 )))"
......@@ -5294,7 +5329,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]
export PW_WINE_CPU_TOPOLOGY
edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY \
PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE
PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
if [[ -z "$MANGOHUD_CONFIG" ]] ; then
MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')"
......
......@@ -103,7 +103,7 @@ unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_T
unset PW_PREFIX_NAME VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR PW_WINE_CPU_TOPOLOGY
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
unset PW_TERM PW_EXEC_FROM_DESKTOP WEBKIT_DISABLE_DMABUF_RENDERER PW_AMD_VULKAN_USE PW_VK_ICD_FILENAMES LAUNCH_URI PW_USE_SETUP_FILE
unset PW_TERM PW_EXEC_FROM_DESKTOP WEBKIT_DISABLE_DMABUF_RENDERER PW_AMD_VULKAN_USE PW_VK_ICD_FILENAMES LAUNCH_URI PW_USE_SETUP_FILE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment