Compare commits

...

15 Commits

Author SHA1 Message Date
Mikhail Tergoev
4df7ac22c6 dropped vkbasalt from mangohud check 2025-07-13 12:57:10 +03:00
Mikhail Tergoev
1e546e9589 var_pw_vk_istance_layers_config_update: silent grep 2025-07-13 12:36:56 +03:00
Mikhail Tergoev
bbed895918 Merge branch 'Boria138-kde6-compositing' into devel 2025-07-13 12:18:49 +03:00
Mikhail Tergoev
e24e4c38ac Merge branch 'kde6-compositing' of github.com:Boria138/PortWINE into Boria138-kde6-compositing 2025-07-13 12:18:40 +03:00
Mikhail Tergoev
88f242f14b Merge branch 'Boria138-proton-em' into devel 2025-07-13 12:16:24 +03:00
Mikhail Tergoev
6d20a2a70f Merge branch 'proton-em' of github.com:Boria138/PortWINE into Boria138-proton-em 2025-07-13 12:16:15 +03:00
Mikhail Tergoev
45eac3d392 Merge branch 'Htylol-fixed_logical_cores' into devel 2025-07-13 12:14:01 +03:00
Mikhail Tergoev
40523d678c Merge branch 'fixed_logical_cores' of github.com:Htylol/PortWINE into Htylol-fixed_logical_cores 2025-07-13 12:13:54 +03:00
Mikhail Tergoev
ae75b18025 Merge branch 'Boria138-autoinstalls-exe' into devel 2025-07-13 12:12:35 +03:00
Mikhail Tergoev
90b37efab1 Merge branch 'autoinstalls-exe' of github.com:Boria138/PortWINE into Boria138-autoinstalls-exe 2025-07-13 12:12:21 +03:00
Mikhail Tergoev
8608c94c2c fixed for update dxvk.conf 2025-07-13 12:00:19 +03:00
7b14131d33 fix(compositor): skip qdbus call on KDE 6 where compositor control is not supported
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-13 11:34:02 +05:00
164da7c9cf feat: added Proton-EM to download other wine
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-13 11:26:35 +05:00
e87d4ef3b9 Correct display of logical_cores when the number of cores is less than 4 2025-07-09 03:04:10 +05:00
70b4e0a21d feat: added forget pw_create_unique_exe to autoinstalls
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-06 17:03:40 +05:00
4 changed files with 68 additions and 43 deletions

View File

@@ -692,7 +692,7 @@ var_radv_perftest_config_update () {
}
var_pw_vk_istance_layers_config_update () {
if echo "$PW_VK_INSTANCE_LAYERS" | grep "$1"
if echo "$PW_VK_INSTANCE_LAYERS" | grep -q "$1"
then return 0
else export PW_VK_INSTANCE_LAYERS="${1}${PW_VK_INSTANCE_LAYERS:+:$PW_VK_INSTANCE_LAYERS}"
fi
@@ -1834,6 +1834,40 @@ pw_mangohud_check () {
return 0
}
set_to_dxvk_conf () {
case "$1" in
nvidia_old)
sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
;;
nvidia_new)
sed -i /'dxgi.customDeviceDesc =/c dxgi.customDeviceDesc = "NVIDIA GeForce RTX 4090"' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 2684' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.hideAmdGpu =/c dxgi.hideAmdGpu = True' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.hideNvidiaGpu =/c dxgi.hideNvidiaGpu = False' "${DXVK_CONFIG_FILE}"
export WINE_HIDE_NVIDIA_GPU="0"
export WINE_HIDE_AMD_GPU="1"
export DXVK_NVAPI_DRIVER_VERSION="99999"
export DXVK_NVAPI_ALLOW_OTHER_DRIVERS="1"
export WINEHAGS="1"
;;
low_latency)
# sed -i /'d3d11.cachedDynamicResources =/c d3d11.cachedDynamicResources = a' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.maxFrameLatency =/c dxgi.maxFrameLatency = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.maxFrameLatency =/c d3d9.maxFrameLatency = 1' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.syncInterval =/c dxgi.syncInterval = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.presentInterval =/c d3d9.presentInterva = 1' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.numBackBuffers =/c dxgi.numBackBuffers = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.numBackBuffers =/c d3d9.numBackBuffers = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.deviceLossOnFocusLoss =/c d3d9.deviceLossOnFocusLoss = True' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.countLosableResources =/c d3d9.countLosableResources = True' "${DXVK_CONFIG_FILE}"
;;
esac
}
pw_lsfg_vk_check () {
if [[ "${PW_USE_LS_FRAME_GEN}" == "1" ]] ; then
local lsfg_vk_path="$PW_PLUGINS_PATH/fake_dlss/lsfg-vk-$PW_LSFG_VK_VER"
@@ -2009,7 +2043,10 @@ stop_portwine () {
&& ! check_gamescope_session
then
if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then
qdbus org.kde.KWin /Compositor resume
kde_version=$(plasmashell --version 2>/dev/null | grep -oE '[0-9]+' | head -1)
if [[ -n "$kde_version" && "$kde_version" -lt 6 ]]; then
qdbus org.kde.KWin /Compositor resume
fi
elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then
gsettings set org.mate.Marco.general compositing-manager true
elif [[ "${DESKTOP_SESSION}" =~ "xfce" ]] ; then
@@ -2906,8 +2943,8 @@ pw_skip_get_info () {
fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
if [[ "${logical_cores}" -le "4" ]] ; then
GET_LOGICAL_CORE="1!$(seq -s! 1 $(( logical_cores - 1 )))"
if (( $logical_cores <= "4" )) ; then
GET_LOGICAL_CORE="$(seq -s! 1 $(( logical_cores - 1 )))"
else
GET_LOGICAL_CORE="1!2!$(seq -s! 4 4 $(( logical_cores - 1 )))"
fi
@@ -3395,40 +3432,6 @@ start_portwine () {
unset WINE_HIDE_NVIDIA_GPU WINE_HIDE_AMD_GPU WINEHAGS
unset DXVK_NVAPI_DRIVER_VERSION DXVK_NVAPI_ALLOW_OTHER_DRIVERS
set_to_dxvk_conf () {
case "$1" in
nvidia_old)
sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
;;
nvidia_new)
sed -i /'dxgi.customDeviceDesc =/c dxgi.customDeviceDesc = "NVIDIA GeForce RTX 4090"' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 2684' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.hideAmdGpu =/c dxgi.hideAmdGpu = True' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.hideNvidiaGpu =/c dxgi.hideNvidiaGpu = False' "${DXVK_CONFIG_FILE}"
export WINE_HIDE_NVIDIA_GPU="0"
export WINE_HIDE_AMD_GPU="1"
export DXVK_NVAPI_DRIVER_VERSION="99999"
export DXVK_NVAPI_ALLOW_OTHER_DRIVERS="1"
export WINEHAGS="1"
;;
low_latency)
# sed -i /'d3d11.cachedDynamicResources =/c d3d11.cachedDynamicResources = a' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.maxFrameLatency =/c dxgi.maxFrameLatency = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.maxFrameLatency =/c d3d9.maxFrameLatency = 1' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.syncInterval =/c dxgi.syncInterval = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.presentInterval =/c d3d9.presentInterva = 1' "${DXVK_CONFIG_FILE}"
sed -i /'dxgi.numBackBuffers =/c dxgi.numBackBuffers = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.numBackBuffers =/c d3d9.numBackBuffers = 1' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.deviceLossOnFocusLoss =/c d3d9.deviceLossOnFocusLoss = True' "${DXVK_CONFIG_FILE}"
sed -i /'d3d9.countLosableResources =/c d3d9.countLosableResources = True' "${DXVK_CONFIG_FILE}"
;;
esac
}
# NVAPI, DLSS AND FAKE DLSS
FAKE_DLSS_3_PATH="$PW_PLUGINS_PATH/fake_dlss/DeckyFramegen_$PW_FAKE_DLSS_3_VER/bin/"
FAKE_DLSS_3_FILES="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll d3dcompiler_47.dll dlss-enabler.dll
@@ -5007,6 +5010,7 @@ gui_proton_downloader () {
try_remove_file "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_em_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_ge_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_installed_wine"
@@ -5080,6 +5084,14 @@ gui_proton_downloader () {
done
fi
# Proton-EM
read -r -d '' -a PROTON_EM_GIT < <(curl -s "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
if [[ -n "${PROTON_EM_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_EM_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_em_git"
done
fi
pw_stop_progress_bar
if [[ -z "${PROTON_PW_GIT}" ]] ; then
@@ -5091,7 +5103,8 @@ gui_proton_downloader () {
for INSTALLING_VERSION_IN_DIST in * ; do
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_proton_pw_git" \
"${PW_TMPFS_PATH}/tmp_proton_ge_git" "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" \
"${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
"${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" "${PW_TMPFS_PATH}/tmp_proton_sarek_git" \
"${PW_TMPFS_PATH}/tmp_proton_em_git"
done
popd 1>/dev/null || fatal
@@ -5101,6 +5114,7 @@ gui_proton_downloader () {
TMP_PROTON_CU_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" | tr '\n' ' ')"
TMP_PROTON_CACHYOS_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" | tr '\n' ' ')"
TMP_PROTON_SAREK_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_proton_sarek_git" | tr '\n' ' ')"
TMP_PROTON_EM_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_proton_em_git" | tr '\n' ' ')"
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed -e "/$PW_PROTON_LG_VER/d" -e "/$PW_WINE_LG_VER/d" -e '/^$/d' 1>"${PW_TMPFS_PATH}/tmp_installed_wine"
TMP_INSTALLED_WINE="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_installed_wine" | tr '\n' ' ')"
@@ -5160,6 +5174,14 @@ gui_proton_downloader () {
"${pw_yad}" --plug=$KEY_WINE --tabnum=7 --list --checklist --separator="" \
--gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \
--column "${translations[Set]}" \
--column "${translations[Select WINE for download:]}" \
$TMP_PROTON_EM_GIT \
1>> "${PW_TMPFS_PATH}/tmp_set_wine" \
2>/dev/null &
"${pw_yad}" --plug=$KEY_WINE --tabnum=8 --list --checklist --separator="" \
--gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \
--column "${translations[Set]}" \
--column "${translations[Select installed WINE for delete:]}" \
$TMP_INSTALLED_WINE \
1> "${PW_TMPFS_PATH}/tmp_installed_wine_set" \
@@ -5175,6 +5197,7 @@ gui_proton_downloader () {
--tab="WINE-GE-CUSTOM!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="PROTON-CACHYOS!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="PROTON-SAREK!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="Proton-EM!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \
--button="${translations[OK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":0 2>/dev/null
@@ -5245,7 +5268,7 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
@@ -5256,7 +5279,7 @@ gui_proton_downloader () {
restart_pp
else
print_error "$PW_WINE_USE"
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" "${PROTON_EM_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
@@ -5903,13 +5926,12 @@ gui_mangohud () {
export MANGOHUD_CONFIG="${GUI_MH_RESULT}"
export PW_MANGOHUD FPS_LIMIT
edit_db_from_gui MANGOHUD_CONFIG PW_MANGOHUD FPS_LIMIT
edit_db_from_gui PW_MANGOHUD_CONFIG PW_MANGOHUD FPS_LIMIT
if [[ "${YAD_MANGOHUD_STATUS}" == "184" ]] ; then
PW_MANGOHUD="1"
pw_init_runtime
pw_mangohud_check
pw_vkbasalt_check
pw_lsfg_vk_check
${pw_runtime} \
$PW_ADD_VAR_SLR \

View File

@@ -17,6 +17,7 @@ then
pw_kill_autostart Launcher.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Cybertime Games/Anomaly-Zone/Launcher.exe"
pw_create_unique_exe
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine

View File

@@ -17,6 +17,7 @@ then
pw_start_progress_bar_install_game "Blood and Soul."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Blood and Soul Classic/launcher.exe"
pw_create_unique_exe
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine

View File

@@ -18,6 +18,7 @@ then
pw_kill_autostart launcher.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="${WINEPREFIX}/drive_c/users/steamuser/AppData/Local/StarConflict/launcher.exe"
pw_create_unique_exe
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar