Commit 2e4fa2ac authored by Mikhail Tergoev's avatar Mikhail Tergoev

Merge branch 'Boria138-amd-vulkan-select'

parents f151b943 bef62e1b
<div align="center">
<img src="https://raw.githubusercontent.com/Castro-Fidel/PortProton_PKGBUILD/main/portproton.svg" width="64">
<h1 align="center">PortProton</h1>
<p align="center">Проект, призванный сделать запуск Windows-игр в Linux простым и удобным как для начинающих, так и для опытных пользователей.
Проект стремится сделать запуск игр (и другого программного обеспечения) максимально простым, но в то же время предоставляет гибкие настройки для опытных пользователей.</p>
</div>
# **Язык README**
**Русский** - [English](README.md)
## Внимание
**Официальный сайт проекта** с сентября 2022 года: https://linux-gaming.ru. **Любой другой сайт - фальшивка!**
## Особенности
- Основан на версии WINE от Valve (Proton) и ее модификациях (Proton GE).
Включает набор скриптов, объединенных с самим wine-proton, контейнер Steam Runtime Sniper с добавлением портированных версий MANGOHUD (вывод полезной информации в окно игры: FPS, FrameTime, CPU, GPU и т.д.) и vkBasalt (улучшение графики в играх, очень хорош в связке с FSR, DLSS) + множество уже настроенных оптимизаций для максимальной производительности.
- Реализована автоматическая установка одним щелчком мыши (на вкладке АВТОУСТАНОВКА) популярных лаунчеров, таких как: WGC, Epic Games, Battle.net, Origin, EVE Online, RockStar, Ubisoft connect , League of Legends и многие другие.
- Для любителей консольных игр предлагается множество эмуляторов консолей (на вкладке ЭМУЛЯТОРЫ ): PPSSPP, Citra, Cemu, ePSXe, MAME и многие другие..
**ПОЖАЛУЙСТА, НЕ СООБЩАЙТЕ О НАЙДЕННЫХ ОШИБКАХ В WINEHQ ИЛИ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ VALVE!**
## **Ссылка на исходный код версий wine используемых в PortProton:**
* WINE-PROTON: https://github.com/ValveSoftware/Proton
* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
## Установка с помощью пакетов
* **Ubuntu 20.04** (Kubuntu, Xubuntu, Lubuntu, и т.д.), **Linux Mint 20.x** :
[portproton_1.0-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.0-2_amd64/portproton_1.0-2_amd64.deb)
* **Arch Linux** и производные (Manjaro, Garuda, и т.д.) :
[AUR](https://aur.archlinux.org/packages/portproton)
* **ROSA Linux** устанавливается с помощью этой команды:
```sh
sudo urpmi portproton
```
* **Fedora 37+** and **Nobara**:
```sh
sudo dnf copr enable boria138/portproton
sudo dnf install portproton
```
* [**openSUSE Leap 15.4**](https://software.opensuse.org/ymp/home:Boria138/15.4/portproton.ymp?base=openSUSE%3ALeap%3A15.4&query=portproton)
* [**openSUSE Leap 15.5**](https://software.opensuse.org/ymp/home:Boria138/15.5/portproton.ymp?base=openSUSE%3ALeap%3A15.5&query=portproton)
* [**openSUSE Tumbleweed**](https://software.opensuse.org/ymp/home:Boria138/openSUSE_Tumbleweed/portproton.ymp?base=openSUSE%3AFactory&query=portproton)
* **Alt Linux** устанавливается с помощью этой команды:
```sh
su -
epm ei
epm full-upgrade
epm play portproton
exit
```
## Универсальный (ручной) метод установки
**ВНИМАНИЕ** : при универсальном способе установки PortProton зависимости должны быть установлены вручную!
Нормальная установка:
```sh
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0
```
Тихая установка (ENG):
```sh
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -eng
```
Тихая установка (RUS):
```sh
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -rus
```
## Зависимости
* **Пользователи карт NVIDIA**
Если у вас видеокарта от NVIDIA и установлен проприетарный драйвер, то необходимо проверить, установлена ли lib32-nvidia-utils (без нее ни одна 32-битная игра не будет работать)
* **Ubuntu / Linux Mint / Pop!_OS**
```sh
sudo dpkg --add-architecture i386
sudo add-apt-repository multiverse
sudo apt update
sudo apt upgrade
sudo apt install curl file libc6 libnss3 policykit-1 xz-utils zenity bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386 wget zenity zstd cabextract xdg-utils openssl bc libgl1-mesa-glx libgl1-mesa-glx:i386
```
* **Arch Linux / Manjaro**
Сперва проверьте включён ли **multilib** репозиторий
```sh
/etc/pacman.conf
===================================
[multilib]
Include = /etc/pacman.d/mirrorlist
====================================
```
```sh
sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl
```
Если у вас видеокарта от **NVIDIA**, обязательно проверьте, установлен ли пакет **lib32-nvidia-utils**.
```sh
sudo pacman -Syu lib32-nvidia-utils
```
* **Debian/Deepin**
```sh
sudo apt install software-properties-common -y
sudo apt-add-repository non-free
sudo dpkg --add-architecture i386
sudo apt update
sudo apt upgrade
sudo apt install bubblewrap curl gamemode icoutils tar wget zenity zstd libvulkan1 libvulkan1:i386 steam cabextract
```
* **openSUSE**
```sh
sudo zypper install curl icoutils wget zenity bubblewrap zstd cabextract tar steam zenity zenity-lang gamemoded libgamemode0 libgamemodeauto0
```
* **Fedora**
```sh
sudo dnf update
sudo dnf upgrade --refresh
sudo dnf install curl gamemode gamemode.i686 icoutils wget zenity bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick
```
* **Alt Linux**
```sh
sudo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get install bubblewrap cabextract curl gamemode icoutils i586-libvulkan1 libvulkan1 steam vulkan-tools wget zenity zstd
```
* **ROSA DESKTOP FRESH R12**
```sh
sudo dnf update
sudo dnf upgrade --refresh
sudo dnf install sysvinit-tools curl libcurl4 icoutils wget zenity bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl bc libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686
```
* **RED OS**
```sh
sudo -E dnf install curl icoutils libcurl wget zenity bubblewrap zstd cabextract tar goverlay openssl steam
```
* **Solus 4.x**
```sh
sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba
```
## Контакты
<p>
<a href="https://discord.gg/FTaheP99wE">
<img src="https://img.shields.io/discord/378683352946835456?logo=discord"
alt="chat on Discord"></a>
</p>
......@@ -5,6 +5,9 @@
The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users.</p>
</div>
# **Readme Language**
**English** - [Русский](README-RU.md)
## Attention
The **official website of the project** since September 2022: https://linux-gaming.ru. **Any other site is fake!**
......@@ -195,6 +198,6 @@ sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cab
<p>
<a href="https://discord.gg/FTaheP99wE">
<img src="https://img.shields.io/discord/308323056592486420?logo=discord"
<img src="https://img.shields.io/discord/378683352946835456?logo=discord"
alt="chat on Discord"></a>
</p>
......@@ -202,6 +202,15 @@ var_vk_istance_layers_config_update () {
return 0
}
var_ld_library_path_update() {
if [ ! -z "${LD_LIBRARY_PATH}" ]; then
export LD_LIBRARY_PATH="$1:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$1"
fi
return 0
}
unpack_tar_zst () {
set -o pipefail
unset PW_ZSTD_PORT
......@@ -818,7 +827,7 @@ pw_check_and_download_plugins () {
}
check_nvidia_rtx () {
if echo "$LSPCI_VGA" | grep -i "nvidia" ; then
if [[ $(echo "$LSPCI_VGA" | grep -i "nvidia") ]] ; then
# Turing (without nvidia 16XX)
[[ "$LSPCI_VGA" == *TU[0-9]* ]] && [[ "$LSPCI_VGA" != *TU11[6-7]* ]] && return 0
# Ampere
......@@ -830,7 +839,7 @@ check_nvidia_rtx () {
}
check_hybrid_graphicks () {
if echo "$LSPCI_VGA" | grep -i nvidia | grep -iE '(intel|amd)'
if [[ $(echo "$LSPCI_VGA" | grep -i nvidia | grep -i -E '(intel|amd)') ]]
then return 0
else return 1
fi
......
......@@ -30,6 +30,18 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_scripts_fb="Откатить версию скриптов"
export loc_gui_credits="Авторы и спасибы =)"
export loc_gui_clear_pfx="Очистить префикс"
export loc_gui_download_other_wine="Скачать другую версию wine"
export loc_gui_create_pfx_backup="Создать резервную копию префикса"
export loc_create_pfx_backup_path="РЕЗЕРВНОЕ КОПИРОВАНИЕ ПРЕФИКСА В..."
export loc_gui_wine_uninstaller="Удаление программм"
export loc_gui_wine_cfg="Настройка префикса"
export loc_gui_wine_file="Файловый менеджер"
export loc_gui_wine_cmd="Коммандная строка"
export loc_gui_wine_reg="Редактор реестра"
export loc_tray_winefile="Файловый менеджер WINE"
export loc_tray_tascmng="Диспетчер задач WINE"
export loc_tray_cangelog="История изменений"
......@@ -96,10 +108,13 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_winefile="Запустить файловый менеждер встроенный в wine"
export loc_winecmd="Запустить командную строку wine"
export loc_winereg="Запустить редактор реестра выбранного префикса"
export loc_wineuninstaller="Запустить средство удаление программ встроенное в wine"
export loc_winetricks="Запустить префикс менеджер для установки доп. библиотек в выбранный префикс"
export loc_edit_db="Изменить файл настроек для"
export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON"
export loc_clear_pfx="Очистить префикс для исправления проблем"
export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)'
export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)'
export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)'
......@@ -126,7 +141,6 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export PW_USE_D3D_EXTRAS_INFO='Включить принудительное использование сторонних библиотек DirectX'
export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)'
export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD'
export PW_USE_SHADER_CACHE_INFO='Использовать кеширование шейдеров средствами WINE (отключать только при наличии микрофризов в игре)'
export PW_WINE_FULLSCREEN_FSR_INFO='Работает во время использования любой версии ProtonGE в полноэкранном режиме при разрешении ниже стандартного для экрана'
export PW_USE_FAKE_DLSS_INFO='Включить транслятор DLSS в FSR 2 в играх DirectX 12'
......@@ -195,6 +209,10 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export PW_WAYLAND_INFO="Внимание! Вы запускаете ${portname} в сессии Wayland, некоторые функции могут быть недоступны!\nРекомендуется перезапустить сессию в X11!"
export PW_PFX_BACKUP_INFO="Внимание! Не передавайте резевную копию третьим лицам, есть риск потери аккаунтов"
export PW_PFX_BACKUP_SUCCESS="Резервная копия префикса: \"${PW_PREFIX_NAME}\" успешно создана"
export PW_PFX_BACKUP_ERROR="Во время создания резервной копии префикса: \"${PW_PREFIX_NAME}\" произошла ошибка"
export loc_find_d3dadapter9_error="не найден в системе.\nУстановите недостающий пакет: </Sb>d3dadapter9</b>"
export loc_gui_create_shortcut_for_exe="Выберите .exe файл для которого необходимо создать ярлык и нажмите ОК.\n"
......@@ -210,6 +228,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_cancel="ОТМЕНИТЬ ИЗМЕНЕНИЯ"
export loc_gui_cancel_help="Отменить текущие изменения и вернутся в предыдущее меню."
export loc_disabled="Отключено"
export loc_gui_open_db="ОТКРЫТЬ ФАЙЛ НАСТРОЕК"
export loc_gui_open_db_help="Открыть файл настроек <b>.ppdb</b> в системном текстовом редакторе для просмотра и изменений переменных вручную."
......@@ -243,6 +263,9 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_cpu_limit="Ограничить использование ядер процессора"
export loc_gui_cpu_limit_help="Ограничения количества ядер процессора полезно для игр на движке Unity (Рекомендуется выставить значение равное 8)"
export loc_gui_amd_vulkan_select="Изменить используемый драйвер vulkan для AMD"
export loc_gui_amd_vulkan_select_help="Выбор какая реализация vulkan будет использоваться для запуска игры"
export loc_gui_check_new_wine="Проверяем новые версии WINE на GitHub"
export loc_gui_check_new_wine_error="Не удается установить соединение с GitHub\nдля проверки новых версии WINE."
export loc_gui_set_new_wine="Выберите версию WINE для загрузки:"
......@@ -285,6 +308,18 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_gui_scripts_fb="SCRIPTS FROM BACKUP"
export loc_gui_credits="CREDITS"
export loc_gui_clear_pfx="Clear prefix"
export loc_gui_download_other_wine="Get other Wine"
export loc_gui_create_pfx_backup="Create prefix backup"
export loc_create_pfx_backup_path="BACKUP PREFIX TO..."
export loc_gui_wine_uninstaller="Uninstaller"
export loc_gui_wine_cfg="Prefix configuration"
export loc_gui_wine_file="File manager"
export loc_gui_wine_cmd="CMD"
export loc_gui_wine_reg="Reg edit"
export loc_tray_winefile="WINEFILE"
export loc_tray_tascmng="TASKMNR"
export loc_tray_cangelog="CHANGE LOG"
......@@ -351,10 +386,13 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_winefile="Run wine file manager"
export loc_winecmd="Run wine cmd"
export loc_winereg="Run wine regedit"
export loc_wineuninstaller="Run the program uninstaller built into wine"
export loc_winetricks="Run winetricks to install additional libraries to the selected prefix"
export loc_edit_db="Edit database file for"
export loc_download_other_wine="Open the menu to download other versions of WINE-PROTON "
export loc_clear_pfx="Clear the prefix to fix problems"
export ENABLE_VKBASALT_INFO='Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)'
export PW_NO_ESYNC_INFO='Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)'
export PW_NO_FSYNC_INFO='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)'
......@@ -381,7 +419,6 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export PW_USE_D3D_EXTRAS_INFO='Enable forced use of third-party DirectX libraries'
export PW_PRIME_RENDER_OFFLOAD_INFO='Enable NVIDIA discrete graphics card for notebooks with hybrid graphics (if supported by the installed driver in the OS)'
export PW_USE_WINDOWS_7_INFO='Change the version of WINDOWS 10 to WINDOWS 7 in the prefix'
export PW_USE_AMDVLK_DRIVER_INFO='Use AMDVLK driver instead of RADV on AMD graphics cards'
export PW_USE_SHADER_CACHE_INFO='Use WINE shader caching (disable only if there are microfreezes in the game)'
export PW_WINE_FULLSCREEN_FSR_INFO='Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen'
export PW_USE_FAKE_DLSS_INFO='Enable DLSS translator in FSR 2 in DirectX 12 games'
......@@ -450,6 +487,10 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!"
export PW_PFX_BACKUP_INFO="Attention! Do not pass the resev copy to third parties, there is a risk of losing accounts"
export PW_PFX_BACKUP_SUCCESS="Prefix backup: \"${PW_PREFIX_NAME}\" has been successfully created"
export PW_PFX_BACKUP_ERROR="An error occurred while backing up the prefix: \"${PW_PREFIX_NAME}\" error occurred"
export loc_find_d3dadapter9_error="Not found in the system.\nInstall the missing package: </Sb>d3dadapter9</b>"
export loc_gui_create_shortcut_for_exe="Choose the .exe file for which you need to create a shortcut and click OK.\n"
......@@ -465,6 +506,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_gui_cancel="CANCEL THE CHANGES"
export loc_gui_cancel_help="Cancel the current changes and return to the previous menu."
export loc_disabled="Disabled"
export loc_gui_open_db="OPEN THE SETTINGS FILE"
export loc_gui_open_db_help="Open the <b>.ppdb</b> settings file in a system text editor to view and change variables manually."
......@@ -499,6 +542,9 @@ A brief instruction:
export loc_gui_cpu_limit="Limit the use of processor cores"
export loc_gui_cpu_limit_help="Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)"
export loc_gui_amd_vulkan_select="Select needed AMD vulkan implementation"
export loc_gui_amd_vulkan_select_help="Choosing which implementation of vulkan will be used to run the game"
export loc_gui_check_new_wine="Check new version WINE from GitHub"
export loc_gui_check_new_wine_error="Error: check wine from github."
export loc_gui_set_new_wine="Select WINE for download:"
......
......@@ -391,7 +391,7 @@ pw_start_cont_xterm () {
pw_create_prefix_backup () {
cd "$HOME"
PW_PREFIX_TO_BACKUP=$("${pw_yad_v12_3}" --file --directory --borders=3 --width=650 --height=500 --auto-close \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO..." 2>/dev/null )
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$loc_create_pfx_backup_path" 2>/dev/null )
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
if [[ ! -z "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then
......@@ -419,9 +419,13 @@ pw_create_prefix_backup () {
done
if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then
mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack"
zenity_info "Backup for prefix \"${PW_PREFIX_NAME}\" successfully created."
zenity_info "$PW_PFX_BACKUP_SUCCESS"
else
zenity_error "An error occurred while creating a backup for prefix: \"${PW_PREFIX_NAME}\" !"
zenity_error "$PW_PFX_BACKUP_ERROR"
fi
if [[ ! -f "${PORT_WINE_TMP_PATH}/pfx_backup_info" ]]; then
zenity_info "$PW_PFX_BACKUP_INFO"
echo "1" > "${PORT_WINE_TMP_PATH}/pfx_backup_info"
fi
return 0
}
......@@ -438,7 +442,7 @@ pw_edit_db () {
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
# PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE PW_USE_AMDVLK_DRIVER HEAP_DELAY_FREE
# PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE HEAP_DELAY_FREE
}
pw_autoinstall_from_db () {
......@@ -725,15 +729,15 @@ else
--field=" 3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \
--field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \
--field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \
--field=" CREATE PFX BACKUP"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' \
--field=' WINETRICKS'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \
--field=" CLEAR PREFIX"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \
--field=" DOWNLOAD OTHER WINE"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \
--field=" WINE UNINSTALLER"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \
--field=' WINECFG'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \
--field=' WINEFILE'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \
--field=' WINECMD'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \
--field=' WINEREG'!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" &
--field=" $loc_gui_create_pfx_backup"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' \
--field=" WINETRICKS"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \
--field=" $loc_gui_clear_pfx"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_clear_pfx}":"FBTN" '@bash -c "button_click gui_clear_pfx"' \
--field=" $loc_gui_download_other_wine"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \
--field=" $loc_gui_wine_uninstaller"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_wineuninstaller}":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \
--field=" $loc_gui_wine_cfg"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \
--field=" $loc_gui_wine_file"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \
--field=" $loc_gui_wine_cmd"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \
--field=" $loc_gui_wine_reg"!"$PW_GUI_ICON_PATH/separator.png"!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" &
"${pw_yad_v12_3}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[1]} --form --columns=3 --align-buttons --keep-icon-size --scroll \
--field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \
......
......@@ -66,6 +66,7 @@ pw_install_dll_in_prefix ()
case $PW_PREFIX_NAME in
DEFAULT) export PW_MUST_HAVE_DLL="d3dx9 d3dcompiler_43 physx mfc42 vcrun2022 sandbox" ;;
DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 faudio dotnet48" ;;
PROGRAMS) export PW_MUST_HAVE_DLL="d3dx9 d3dcompiler_43 physx mfc42 vcrun2019 riched20 corefonts msxml3 msxml4 msxml6" ;;
*) export PW_MUST_HAVE_DLL="" ;;
esac
}
......
......@@ -142,23 +142,27 @@ pw_tray_icon () {
${loc_tray_winefile}!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/port_winefile.png"|| \
${loc_tray_tascmng}!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"|| \
${loc_tray_cangelog}!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"|| \
${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"||" 2>/dev/null &
${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"||" 2>/dev/null &
return 0
}
pw_gui_for_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM
if echo "${MANGOHUD_CONFIG}" | grep "fps_limit" ; then
FPS_LIMIT_VAR="$(echo ${MANGOHUD_CONFIG} | sed 's/.*fps_limit=//' | awk -F, '{print $1}')"
else
FPS_LIMIT_VAR="disabled"
FPS_LIMIT_VAR="$loc_disabled"
fi
if [[ ! -z "${PW_WINE_CPU_TOPOLOGY}" ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "disabled" ]] ; then
if [[ ! -z "${PW_WINE_CPU_TOPOLOGY}" ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "$loc_disabled" ]] ; then
CPU_LIMIT_VAR="`echo ${PW_WINE_CPU_TOPOLOGY%%:*}`"
else
CPU_LIMIT_VAR="disabled"
CPU_LIMIT_VAR="$loc_disabled"
fi
if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "$loc_disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
else
AMD_VULKAN_VAR="$loc_disabled"
fi
GET_REFRASH_RATE="30!45!60!75!120!144!165!240"
......@@ -184,9 +188,9 @@ pw_gui_for_edit_db () {
}
edit_db_field_add $@
old_IFS=$IFS
IFS="%"
IFS="%"
"${pw_yad_v12_3}" --plug=$KEY_EDIT_DB_GUI --tabnum="1" --form --separator=" " --columns=4 ${ADD_CHK_BOX_EDIT_DB} \
1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null &
1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null &
IFS=$old_IFS
case ${PW_WINDOWS_VER} in
......@@ -201,8 +205,9 @@ pw_gui_for_edit_db () {
--field=":LBL" "" \
--field="${loc_gui_arg_exe}!${loc_gui_arg_exe_help} :CBE" "\\${LAUNCH_PARAMETERS[@]}!-dx11 -skipintro 1" \
--field=":LBL" "" \
--field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!disabled!${GET_LOGICAL_CORE}" \
--field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!disabled!${GET_REFRASH_RATE}" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
--field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!${loc_disabled}!${GET_LOGICAL_CORE}" \
--field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!${loc_disabled}!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \
--field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!${loc_disabled}!${GET_REFRASH_RATE}" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad_v12_3}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="650" \
--text "${loc_gui_edit_db} <b>${PORTWINE_DB}</b>\n ${loc_gui_edit_db_help}" --separator=" " --borders=3 \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
......@@ -210,7 +215,7 @@ pw_gui_for_edit_db () {
--button="${loc_gui_open_db}"!!"${loc_gui_open_db_help}":150 \
--button="${loc_gui_save_changes}"!!"${loc_gui_save_changes_help}":0 2>/dev/null
YAD_STATUS="$?"
case "$YAD_STATUS" in
case "$YAD_STATUS" in
1) /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;;
150) xdg-open "${PORTWINE_DB_FILE}" & exit 0 ;;
252) exit 0 ;;
......@@ -233,24 +238,54 @@ pw_gui_for_edit_db () {
WINEDLLOVERRIDES=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'`
LAUNCH_PARAMETERS=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'`
CPU_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}'`"
FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`"
PW_AMD_VULKAN_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`"
FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $9}'`"
if [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then
if [[ "${FPS_LIMIT}" != "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "$loc_disabled" ]] ; then
export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/fps_limit=${FPS_LIMIT_VAR}/fps_limit=${FPS_LIMIT}/")"
export PW_MANGOHUD=1
elif [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" == "disabled" ]] ; then
elif [[ "${FPS_LIMIT}" != "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" == "$loc_disabled" ]] ; then
export MANGOHUD_CONFIG=${MANGOHUD_CONFIG},fps_limit=${FPS_LIMIT}
export PW_MANGOHUD=1
elif [[ "${FPS_LIMIT}" == "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then
elif [[ "${FPS_LIMIT}" == "$loc_disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "$loc_disabled" ]] ; then
export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/,fps_limit=${FPS_LIMIT_VAR}//")"
fi
if [[ "${CPU_LIMIT}" != "disabled" ]] ; then
if [[ "${CPU_LIMIT}" != "$loc_disabled" ]] ; then
export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))"
else
export PW_WINE_CPU_TOPOLOGY="disabled"
export PW_WINE_CPU_TOPOLOGY="$loc_disabled"
fi
if [[ "${PW_AMD_VULKAN_USE}" == "amdvlk" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
if [[ $(grep -i -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release") ]] ; then
export VK_ICD_FILENAMES="/opt/amdgpu/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu/etc/vulkan/icd.d/amd_icd64.json"
else
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json"
fi
elif [[ "${PW_AMD_VULKAN_USE}" == "amdgpupro" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
if [[ $(grep -i -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release") ]] ; then
export VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json"
var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32"
else
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json"
fi
elif [[ "${PW_AMD_VULKAN_USE}" == "radv" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
elif [[ "${PW_AMD_VULKAN_USE}" == "radv_aco" ]] ; then
unset RADV_PERFTEST
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
export RADV_PERFTEST=aco
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
elif [[ "${PW_AMD_VULKAN_USE}" == "radv_gpl" ]] ; then
unset RADV_PERFTEST
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
export RADV_PERFTEST=gpl
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
fi
echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_AMD_VULKAN_USE
return 0
}
......@@ -343,7 +378,7 @@ gui_proton_downloader () {
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
if [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" | awk '{print $1}'` ] ; then
......@@ -376,14 +411,14 @@ gui_proton_downloader () {
break
fi
done
if [[ ! -z "${VERSION_INSTALLED_WINE}" ]]; then
try_remove_dir "${PORT_WINE_PATH}/data/dist/${VERSION_INSTALLED_WINE}"
unset VERSION_INSTALLED_WINE
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
print_info "Download and install ${VERSION_WINE_GIT}..."
PW_WINE_ARCHIVE="$(echo ${URL_VERSION_PROTON_GIT} | awk -F'/' '{print $NF}' | awk -F'.tar' '{print $1}')"
if try_download_to_path "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/" ; then
......@@ -435,11 +470,11 @@ gui_vkBasalt () {
VKBASALT_FFX_CAS_GUI=75
fi
export old_IFS=$IFS
export IFS="%"
export IFS="%"
"${pw_yad_v12_3}" --plug=$KEY_FX_GUI --tabnum="1" --form --columns=5 --separator=" " \
--text-align=center --text="$loc_gui_vkbasalt_top" \
${ADD_GUI_FX} 1> "${PORT_WINE_TMP_PATH}/tmp_yad_basalt_set" 2>/dev/null &
export IFS="${old_IFS}"
export IFS="${old_IFS}"
"${pw_yad_v12_3}" --plug=$KEY_FX_GUI --tabnum="2" --separator=" " --form \
--field="AMD FidelityFX - Contrast Adaptive Sharpening"!"$loc_gui_ffx_cas":SCL "${VKBASALT_FFX_CAS_GUI}" \
......@@ -471,7 +506,7 @@ gui_vkBasalt () {
export INT_COUNT_FX=$(( ${INT_COUNT_FX} + 1 ))
done
GUI_FX_RESULT="${GUI_FX_RESULT}cas"
export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}"
export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}"
if [[ "$YAD_CAS_SET" == "0" ]] ; then
export PW_VKBASALT_FFX_CAS="0"
......@@ -500,7 +535,7 @@ portwine_create_shortcut () {
create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{ print $3 }')
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop}.png"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
......
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