Commit 938b1197 authored by Vladislav's avatar Vladislav

added gamescope settings

parent ff36fa13
...@@ -1748,29 +1748,6 @@ start_portwine () { ...@@ -1748,29 +1748,6 @@ start_portwine () {
var_vkd3d_config_update single_queue var_vkd3d_config_update single_queue
fi fi
if [[ "${PW_USE_GAMESCOPE}" == 1 ]] \
&& command -v gamescope &>/dev/null \
&& ! check_gamescope_session
then
# Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/6029
if [[ -d "/sys/module/i915" ]] ; then
export INTEL_DEBUG="norbc"
fi
if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
PW_vendorID="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
PW_deviceID="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -B3 "${PW_GPU_USE}" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
else
unset PW_ID_VIDEO
fi
export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${GAMESCOPE_ARGS} --"
export PW_WINE_FULLSCREEN_FSR="0"
export vk_xwayland_wait_ready="false"
else
export PW_USE_GAMESCOPE="0"
export PW_RUN_GAMESCOPE=""
fi
enabled_fake_nvidia_videocard () enabled_fake_nvidia_videocard ()
{ {
if [[ "${1}" == old ]] ; then if [[ "${1}" == old ]] ; then
...@@ -2041,7 +2018,7 @@ start_portwine () { ...@@ -2041,7 +2018,7 @@ start_portwine () {
&& ! check_wayland_session && ! check_wayland_session
then then
if check_gamescope_session \ if check_gamescope_session \
|| [[ "${PW_USE_GAMESCOPE}" = "1" ]] || [[ "${PW_GAMESCOPE}" = "1" ]]
then then
export AMD_DEBUG="nodcc" export AMD_DEBUG="nodcc"
fi fi
...@@ -2060,7 +2037,7 @@ start_portwine () { ...@@ -2060,7 +2037,7 @@ start_portwine () {
export MESA_LOADER_DRIVER_OVERRIDE="zink" export MESA_LOADER_DRIVER_OVERRIDE="zink"
if ! check_wayland_session \ if ! check_wayland_session \
&& ! check_gamescope_session \ && ! check_gamescope_session \
&& [[ "${PW_USE_GAMESCOPE}" != "1" ]] && [[ "${PW_GAMESCOPE}" != "1" ]]
then then
export LIBGL_KOPPER_DRI2="1" export LIBGL_KOPPER_DRI2="1"
fi fi
...@@ -2157,6 +2134,159 @@ start_portwine () { ...@@ -2157,6 +2134,159 @@ start_portwine () {
done done
fi fi
# GAMESCOPE enable:
if [[ "${PW_GAMESCOPE}" == 1 ]] \
&& command -v gamescope &>/dev/null \
&& ! check_gamescope_session
then
if [[ "${PW_GAMESCOPE_ARGS_LEGACY}" != "disabled" ]] ; then
# Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/6029
if [[ -d "/sys/module/i915" ]] ; then
export INTEL_DEBUG="norbc"
fi
if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
PW_vendorID="$(echo "${PW_VULKANINFO_PORTABLE}" | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
PW_deviceID="$(echo "${PW_VULKANINFO_PORTABLE}" | grep -B3 "${PW_GPU_USE}" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
else
unset PW_ID_VIDEO
fi
export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${PW_GAMESCOPE_ARGS_LEGACY} --"
export PW_WINE_FULLSCREEN_FSR="0"
export vk_xwayland_wait_ready="false"
else
unset PW_GAMESCOPE_ARGS_NEW
#checkbox
if [ "${PW_GS_BORDERESS_WINDOW}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -b"
fi
if [ "${PW_GS_FULLSCREEN}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -f"
fi
if [ "${PW_GS_FORCE_FULLSCREEN}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-windows-fullscreen"
fi
if [ "${PW_GS_FORCE_GRAB_KEYBOARD}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -g"
fi
if [ "${PW_GS_FORCE_GRAB_CURSOR}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-grab-cursor"
fi
if [ "${PW_GS_DISPLAY_INDEX}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --display-index"
fi
if [ "${PW_GS_ENABLE_HDR}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-enabled"
export DXVK_HDR="1"
fi
if [ "${PW_GS_SDR_GAMMUT_WIDENESS}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --sdr-gamut-wideness"
fi
if [ "${PW_GS_ENABLE_HDR_INVERSE}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable"
fi
if [ "${PW_GS_IMMEDIATE_FLIPS}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --immediate-flips"
fi
if [ "${PW_GS_ADAPTIVE_SYNC}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --adaptive-sync"
fi
if [ "${PW_GS_FORCE_COMPOSITION}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-composition"
fi
if [ "${PW_GS_DEBUG_HUD}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --debug-hud"
fi
if [ "${PW_GS_FORCE_HDR_SUPPORT}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-debug-force-support"
fi
if [ "${PW_GS_FORCE_HDR_ENABLE}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-debug-force-output"
fi
if [ "${PW_GS_PREFER_VULKAN_DEVICE}" == "1" ] ; then
if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
PW_vendorID="$(echo "${PW_VULKANINFO_PORTABLE}" | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
PW_deviceID="$(echo "${PW_VULKANINFO_PORTABLE}" | grep -B3 "${PW_GPU_USE}" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
fi
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} ${PW_ID_VIDEO}"
fi
if [ "${PW_GS_EXPOSE_WAYLAND}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --expose-wayland"
fi
if [ "${PW_GS_REALTIME_SCHUDULING}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --rt"
fi
if [ "${PW_GS_HEADLESS}" == "1" ] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --headless"
fi
if [ "${PW_GS_ENABLE_GAMESCOPE_WSI}" == "1" ] ; then
export ENABLE_GAMESCOPE_WSI=1
fi
#combobox
if [[ "${PW_GS_INTERNAL_RESOLUTION}" != "disabled" ]] ; then
PWGSRESIW1="${PW_GS_INTERNAL_RESOLUTION%x*}"
PWGSRESIW="${PWGSRESIW1%%-*}"
PWGSRESIH1="${PW_GS_INTERNAL_RESOLUTION#*x}"
PWGSRESIH="${PWGSRESIH1%%-*}"
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -w ${PWGSRESIW} -h ${PWGSRESIH}"
fi
if [[ "${PW_GS_SHOW_RESOLUTION}" != "disabled" ]] ; then
PWGSRESSW1="${PW_GS_SHOW_RESOLUTION%x*}"
PWGSRESSW="${PWGSRESSW1%%-*}"
PWGSRESSH1="${PW_GS_SHOW_RESOLUTION#*x}"
PWGSRESSH="${PWGSRESSH1%%-*}"
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -W ${PWGSRESSW} -H ${PWGSRESSH}"
fi
if [[ "${PW_GS_FRAME_LIMIT}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -r ${PW_GS_FRAME_LIMIT}"
fi
if [[ "${PW_GS_FRAME_LIMIT_UNFOCUSED}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -o ${PW_GS_FRAME_LIMIT_UNFOCUSED}"
fi
if [[ "${PW_GS_FORCE_ORIENTATION}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-orientation ${PW_GS_FORCE_ORIENTATION}"
fi
if [[ "${PW_GS_DRM_MODE}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --generate-drm-mode ${PW_GS_DRM_MODE}"
fi
if [[ "${PW_GS_FILTER_MODE}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -F ${PW_GS_FILTER_MODE}"
fi
if [[ "${PW_GS_SCALE_MODE}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -S ${PW_GS_SCALE_MODE}"
fi
if [[ "${PW_GS_DEFAULT_TOUCH}" != "disabled" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --default-touch-mode ${PW_GS_DEFAULT_TOUCH}"
fi
if [[ "${PW_GS_MOUSE_SENSITIVITY}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -s ${PW_GS_MOUSE_SENSITIVITY}"
fi
if [[ "${PW_GS_UPSCALE_SHARPNESS}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --sharpness ${PW_GS_UPSCALE_SHARPNESS}"
fi
if [[ "${PW_GS_MAX_SCALE_FACTOR}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -m ${PW_GS_MAX_SCALE_FACTOR}"
fi
if [[ "${PW_GS_HDR_SDR_NITS}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-sdr-content-nits ${PW_GS_HDR_SDR_NITS}"
fi
if [[ "${PW_GS_INVERSE_SDR}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable --hdr-itm-sdr-nits ${PW_GS_INVERSE_SDR}"
fi
if [[ "${PW_GS_INVERSE_TARGET}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable --hdr-itm-target-nits ${PW_GS_INVERSE_TARGET}"
fi
if [[ "${PW_GS_HIDE_CURSOR_DELAY}" != "0" ]] ; then
export PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -C ${PW_GS_HIDE_CURSOR_DELAY}"
fi
export PW_RUN_GAMESCOPE="gamescope${PW_GAMESCOPE_ARGS_NEW}"
fi
fi
# force use dxgi.dll from wine # force use dxgi.dll from wine
if [[ "${PW_USE_WINE_DXGI}" == "1" ]] ; then if [[ "${PW_USE_WINE_DXGI}" == "1" ]] ; then
rm_from_var CP_DXVK_FILES "dxgi" rm_from_var CP_DXVK_FILES "dxgi"
...@@ -2171,7 +2301,6 @@ start_portwine () { ...@@ -2171,7 +2301,6 @@ start_portwine () {
if [[ ! -z "$CP_DXVK_FILES" ]] ; then if [[ ! -z "$CP_DXVK_FILES" ]] ; then
print_info "Try create symlink DXVK files..." print_info "Try create symlink DXVK files..."
check_variables DXVK_HDR "0"
for wine_dxvk_dll in $CP_DXVK_FILES ; do for wine_dxvk_dll in $CP_DXVK_FILES ; do
if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" ]] ; then if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" ]] ; then
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll" try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
...@@ -3101,7 +3230,7 @@ export -f gui_proton_downloader ...@@ -3101,7 +3230,7 @@ export -f gui_proton_downloader
# GUI EDIT_DB # GUI EDIT_DB
gui_edit_db () { gui_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM KEY_EDIT_DB_GUI=$RANDOM
PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_USE_GAMESCOPE 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_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING 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_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME 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_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
...@@ -3156,7 +3285,7 @@ if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != 1 ]] ; then ...@@ -3156,7 +3285,7 @@ if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != 1 ]] ; then
export PW_USE_SYSTEM_VK_LAYERS_INFO=$(gettext 'Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers') export PW_USE_SYSTEM_VK_LAYERS_INFO=$(gettext 'Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers')
export PW_USE_OBS_VKCAPTURE_INFO=$(gettext 'Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)') export PW_USE_OBS_VKCAPTURE_INFO=$(gettext 'Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)')
export PW_DISABLE_COMPOSITING_INFO=$(gettext 'Disable desktop compositing (effects). It often improves performance.') export PW_DISABLE_COMPOSITING_INFO=$(gettext 'Disable desktop compositing (effects). It often improves performance.')
export PW_USE_GAMESCOPE_INFO=$(gettext '<b>Super + F :</b> Toggle fullscreen export PW_GAMESCOPE_INFO=$(gettext '<b>Super + F :</b> Toggle fullscreen
<b>Super + N :</b> Toggle nearest neighbour filtering <b>Super + N :</b> Toggle nearest neighbour filtering
<b>Super + U :</b> Toggle FSR upscaling <b>Super + U :</b> Toggle FSR upscaling
<b>Super + Y :</b> Toggle NIS upscaling <b>Super + Y :</b> Toggle NIS upscaling
...@@ -3262,6 +3391,16 @@ A brief instruction: ...@@ -3262,6 +3391,16 @@ A brief instruction:
--field="$(gettext "Forcibly select the OpenGL version for the game")!$(gettext "You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)") :CB" "${PW_MESA_GL_VERSION_OVERRIDE}!disabled!4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3" \ --field="$(gettext "Forcibly select the OpenGL version for the game")!$(gettext "You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)") :CB" "${PW_MESA_GL_VERSION_OVERRIDE}!disabled!4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3" \
--field="$(gettext "Forcibly select the VKD3D feature level")!$(gettext "You can set a forced feature level VKD3D for games on DirectX12") :${VKD3D_CB}" "${PW_VKD3D_FEATURE_LEVEL}!disabled!12_2!12_1!12_0!11_1!11_0" \ --field="$(gettext "Forcibly select the VKD3D feature level")!$(gettext "You can set a forced feature level VKD3D for games on DirectX12") :${VKD3D_CB}" "${PW_VKD3D_FEATURE_LEVEL}!disabled!12_2!12_1!12_0!11_1!11_0" \
--field="$(gettext "Force certain locale for an app:")!$(gettext "Fixes encoding issues in legacy software") :CB" "${PW_LOCALE_SELECT}!disabled!$LOCALE_LIST" \ --field="$(gettext "Force certain locale for an app:")!$(gettext "Fixes encoding issues in legacy software") :CB" "${PW_LOCALE_SELECT}!disabled!$LOCALE_LIST" \
--field="$(gettext "Add arguments for GAMESCOPE:")!$(gettext "<b>-W, -H:</b> set the resolution used by gamescope. Resizing the gamescope window will update these settings. Ignored in embedded mode. If -H is specified but -W isn't, a 16:9 aspect ratio is assumed. Defaults to 1280×720.
<b>-w, -h:</b> set the resolution used by the game. If -h is specified but -w isn't, a 16:9 aspect ratio is assumed. Defaults to the values specified in -W and -H.
<b>-r:</b> set a frame-rate limit for the game. Specified in frames per second. Defaults to unlimited.
<b>-o:</b> set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited.
<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.
<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.
<b>-S integer:</b> use integer scaling.
<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e.g. 4:3 to 16:9).
<b>-b:</b> create a border-less window.
<b>-f:</b> create a full-screen window.") :CBE" "\\${PW_GAMESCOPE_ARGS_LEGACY}!disabled!-r 60 -F fsr!" \
1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null & 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "$(gettext "EDIT DB")" --text-align=center \ "${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "$(gettext "EDIT DB")" --text-align=center \
...@@ -3312,6 +3451,7 @@ A brief instruction: ...@@ -3312,6 +3451,7 @@ A brief instruction:
PW_MESA_GL_VERSION_OVERRIDE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $9}')" PW_MESA_GL_VERSION_OVERRIDE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $9}')"
PW_VKD3D_FEATURE_LEVEL="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $10}')" PW_VKD3D_FEATURE_LEVEL="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $10}')"
PW_LOCALE_SELECT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $11}')" PW_LOCALE_SELECT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $11}')"
PW_GAMESCOPE_ARGS_LEGACY="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $12}')"
if [[ "${CPU_LIMIT}" != "disabled" ]] ; then if [[ "${CPU_LIMIT}" != "disabled" ]] ; then
export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))" export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))"
...@@ -3319,7 +3459,7 @@ A brief instruction: ...@@ -3319,7 +3459,7 @@ A brief instruction:
export PW_WINE_CPU_TOPOLOGY="disabled" export PW_WINE_CPU_TOPOLOGY="disabled"
fi fi
edit_db_from_gui ${PW_EDIT_DB_LIST} LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY GAMESCOPE_ARGS \ edit_db_from_gui ${PW_EDIT_DB_LIST} LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_GAMESCOPE_ARGS_LEGACY \
PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT
if [[ -z "$MANGOHUD_CONFIG" ]] ; then if [[ -z "$MANGOHUD_CONFIG" ]] ; then
...@@ -3621,6 +3761,7 @@ fi ...@@ -3621,6 +3761,7 @@ fi
--button="$(gettext "DISABLE") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable MangoHud and go to the previous menu")":182 \ --button="$(gettext "DISABLE") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable MangoHud and go to the previous menu")":182 \
--button="$(gettext "PREVIEW CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Start vkcube for preview changes")":184 \ --button="$(gettext "PREVIEW CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Start vkcube for preview changes")":184 \
--button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":186 2>/dev/null --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":186 2>/dev/null
YAD_MANGOHUD_STATUS="$?" YAD_MANGOHUD_STATUS="$?"
case "${YAD_MANGOHUD_STATUS}" in case "${YAD_MANGOHUD_STATUS}" in
1|252) 1|252)
...@@ -3814,61 +3955,142 @@ fi ...@@ -3814,61 +3955,142 @@ fi
# GUI GAMESCOPE # GUI GAMESCOPE
gui_gamescope () { gui_gamescope () {
unset ADD_CHK_BOX_GAMESCOPE KEY_GS_GUI=$RANDOM
PW_GS_LIST="PW_GS_FULLSCREEN PW_GS_FORCE_FULLSCREEN PW_GS_BORDERESS_WINDOW PW_GS_FORCE_GRAB_CURSOR
PW_GS_FORCE_GRAB_KEYBOARD PW_GS_DISPLAY_INDEX PW_GS_ENABLE_HDR PW_GS_SDR_GAMMUT_WIDENESS PW_GS_ENABLE_HDR_INVERSE
PW_GS_IMMEDIATE_FLIPS PW_GS_ADAPTIVE_SYNC PW_GS_FORCE_COMPOSITION PW_GS_DEBUG_HUD PW_GS_FORCE_HDR_SUPPORT
PW_GS_FORCE_HDR_ENABLE PW_GS_PREFER_VULKAN_DEVICE PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHUDULING
PW_GS_HEADLESS PW_GS_ENABLE_GAMESCOPE_WSI
"
if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != 1 ]] ; then if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != 1 ]] ; then
export PW_GS_FULLSCREEN_INFO=$(gettext 'Make the window fullscreen')
export PW_GS_FORCE_FULLSCREEN_INFO=$(gettext 'Force windows inside of gamescope to be the size of the nested display (fullscreen)')
export PW_GS_BORDERESS_WINDOW_INFO=$(gettext 'Make the window borderless')
export PW_GS_FORCE_GRAB_KEYBOARD_INFO=$(gettext 'Grab the keyboard')
export PW_GS_FORCE_GRAB_CURSOR_INFO=$(gettext 'Always use relative mouse mode instead of flipping dependent on cursor visibility.')
export PW_GS_DISPLAY_INDEX_INFO=$(gettext 'Forces gamescope to use a specific display in nested mode.')
export PW_GS_ENABLE_HDR_INFO=$(gettext 'Enable HDR output (needs Gamescope WSI layer enabled for support from clients). If this is not set, and there is a HDR client, it will be tonemapped SDR'.)
export PW_GS_SDR_GAMMUT_WIDENESS_INFO=$(gettext "Set the 'wideness' of the gamut for SDR comment. 0 - 1.")
export PW_GS_ENABLE_HDR_INVERSE_INFO=$(gettext 'Enable SDR to HDE inverse tone mapping - Only works for SDR input')
export PW_GS_IMMEDIATE_FLIPS_INFO=$(gettext 'Enable immediate flips, equivalent to the Steam Decks "Allow Tearing" option')
export PW_GS_ADAPTIVE_SYNC_INFO=$(gettext 'Enable Adaptive Sync, or "Variable Refresh Rate", if available, e.g. FreeSync')
export PW_GS_FORCE_COMPOSITION_INFO=$(gettext 'Disables direct scan-out')
export PW_GS_DEBUG_HUD_INFO=$(gettext 'Enables a HUD with some GameScope debug information')
export PW_GS_FORCE_HDR_SUPPORT_INFO=$(gettext 'Forces support for HDR and associated opptions even if the current display does not support it')
export PW_GS_FORCE_HDR_ENABLE_INFO=$(gettext 'Force support and output for HDR10 PQ even if the current display does not support it. This will look very wrong on non-HDR displays')
export PW_GS_PREFER_VULKAN_DEVICE_INFO=$(gettext 'Prefer Vulkan device for compositing')
export PW_GS_EXPOSE_WAYLAND_INFO=$(gettext 'Expose Wayland clients using xdg-shell')
export PW_GS_REALTIME_SCHUDULING_INFO=$(gettext 'Enable GameScope realtime scheduling')
export PW_GS_HEADLESS_INFO=$(gettext 'Run application with headless GameScope (windowless)')
export PW_GS_ENABLE_GAMESCOPE_WSI_INFO=$(gettext 'This can be useful for some HDR options and for some DXVK v2.3 vsync optimisations')
export SKIP_GAMESCOPE_TEXT_INFO=1 export SKIP_GAMESCOPE_TEXT_INFO=1
fi fi
unset ADD_CHK_BOX_GS
for int_to_boole in ${PW_GS_LIST} ; do
if [ "${!int_to_boole}" == "1" ]
then export ${int_to_boole}="TRUE"
else export ${int_to_boole}="FALSE"
fi
TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
int_to_boole_non_pw="$(echo ${int_to_boole//PW_GS/} | sed 's/_/ /g' )"
ADD_CHK_BOX_GS+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%"
done
old_IFS=$IFS old_IFS=$IFS
IFS="%" IFS="%"
"${pw_yad}" --plug=$KEY_GAMESCOP_GUI --form --separator=" " --columns=3 ${ADD_CHK_BOX_GAMESCOPE} \ "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="1" --form --columns=4 --separator=" " --text-align=center ${ADD_CHK_BOX_GS} \
1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null & --text="$(gettext "Change settings gamescope for") <b>${PORTWINE_DB}</b>\n $(gettext "<b>NOTE:</b> To display help for each item, simply hover your mouse over the text")" \
--gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_UP} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_UP} \
1> "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set" 2>/dev/null &
IFS=$old_IFS IFS=$old_IFS
output_yad_gamescope="$("${pw_yad}" --title "GAMESCOPE" --text-align=center --height="350" \ GAMESCOPE_XRANDR="$(echo "${PW_XRANDR}" | grep "[0-9]x" | awk '{print $1}' | grep "^[0-9]" | tr '\n' '!')"
--text "$(gettext "Change settings gamescope for") <b>${PORTWINE_DB}</b>\n $(gettext "<b>NOTE:</b> To display help for each item, simply hover your mouse over the text")" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --separator=" " --expand --center --form \ "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="2" --form --columns=3 --separator="%" \
--field="$(gettext "Add arguments for GAMESCOPE:")!$(gettext " --gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_DOWN} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_DOWN} \
<b>-W, -H:</b> set the resolution used by gamescope. Resizing the gamescope window will update these settings. Ignored in embedded mode. If -H is specified but -W isn't, a 16:9 aspect ratio is assumed. Defaults to 1280×720. --field="${CHKBOX_SPACE}$(gettext "Internal resolution")!$(gettext "Set the resolution used") :CBE" "${PW_GS_INTERNAL_RESOLUTION}!disabled!${GAMESCOPE_XRANDR}" \
<b>-w, -h:</b> set the resolution used by the game. If -h is specified but -w isn't, a 16:9 aspect ratio is assumed. Defaults to the values specified in -W and -H. --field="${CHKBOX_SPACE}$(gettext "Show resolution")!$(gettext "Set the resolution used by gamescope. Resizing the gamescope window will update these settings. Defaults to 1280x720.") :CBE" "${PW_GS_SHOW_RESOLUTION}!disabled!${GAMESCOPE_XRANDR}" \
<b>-r:</b> set a frame-rate limit for the game. Specified in frames per second. Defaults to unlimited. --field="${CHKBOX_SPACE}$(gettext "Frame limit")!$(gettext "Set a framerate limit. Specified in frames per second") :CBE" "${PW_GS_FRAME_LIMIT}!disabled!30!60!90!120!144" \
<b>-o:</b> set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited. --field="${CHKBOX_SPACE}$(gettext "Frame limit unfocused")!$(gettext "Set a framerate limit for the game when unfocused. Specified in frames per second.") :CBE" "${PW_GS_FRAME_LIMIT_UNFOCUSED}!disabled!30!60!90!120!144" \
<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling. --field="${CHKBOX_SPACE}$(gettext "Force orientation")!$(gettext "Rotate the internal GameScope display") :CB" "${PW_GS_FORCE_ORIENTATION}!disabled!left!right!normal!upsidedown" \
<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling. --field="${CHKBOX_SPACE}$(gettext "DRM mode algorithm")!$(gettext "DRM Mode Generation Algorithm to use") :CB" "${PW_GS_DRM_MODE}!disabled!cvt!fixed" \
<b>-S integer:</b> use integer scaling. --field="${CHKBOX_SPACE}$(gettext "Filter mode")!$(gettext "Use a filter such as AMD FidelityFX SuperResolution 1.0 (FSR) or NVIDIA Image Scaling v1.0.3 (NIS)") :CB" "${PW_GS_FILTER_MODE}!disabled!linear!nearest!fsr!nis!pixel" \
<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e.g. 4:3 to 16:9). --field="${CHKBOX_SPACE}$(gettext "Scale mode")!$(gettext "Specify how to scale the GameScope window content") :CB" "${PW_GS_SCALE_MODE}!disabled!auto!integer!fit!fill!stretch" \
<b>-b:</b> create a border-less window. --field="${CHKBOX_SPACE}$(gettext "Default touch mode")!$(gettext "Default action on touch (disabled will ignore flag)") :CB" "${PW_GS_DEFAULT_TOUCH}!disabled!auto!integer!fit!fill!stretch" \
<b>-f:</b> create a full-screen window.") :CBE" "\\${GAMESCOPE_ARGS}!-r 60 -F fsr!" \ --field="${CHKBOX_SPACE}$(gettext "Mouse sensitivity")!$(gettext "Configurable mouse sensitivity, multiply mouse movement by specified decimal number amount") :NUM" "${PW_GS_MOUSE_SENSITIVITY}" \
--field="${CHKBOX_SPACE}$(gettext "Upscale sharpness")!$(gettext "Sharpening value for FidelityFX SuperResolution 1.0 (FSR) and NVIDIA Image Scaling v1.0.3 (NIS). 0 is max sharpening, 20 is min sharpening.") :NUM" "${PW_GS_UPSCALE_SHARPNESS}" \
--field="${CHKBOX_SPACE}$(gettext "Max scale factor")!$(gettext "Maximum Scale Factor (0 is unused)") :NUM" "${PW_GS_MAX_SCALE_FACTOR}" \
--field="${CHKBOX_SPACE}$(gettext "HDR SDR nits")!$(gettext "Set the luminance of SDR content in nits - Default is 400") :NUM" "${PW_GS_HDR_SDR_NITS}" \
--field="${CHKBOX_SPACE}$(gettext "HDR inverse SDR")!$(gettext "Set the luminance of SDR content in nets used as the input for the inverse tone mapping process - Maximum is 1000 nits") :NUM" "${PW_GS_INVERSE_SDR}" \
--field="${CHKBOX_SPACE}$(gettext "HDR inverse target")!$(gettext "Set the target luninance of the inverse tone mapping process - Max is 10000 nits") :NUM" "${PW_GS_INVERSE_TARGET}" \
--field="${CHKBOX_SPACE}$(gettext "Hide cursor delay")!$(gettext "Amount of time in milliseconds to wait before hiding the cursor") :NUM" "${PW_GS_HIDE_CURSOR_DELAY}" \
1> "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set_cb" 2>/dev/null &
"${pw_yad}" --paned --key="$KEY_GS_GUI" --title="GameScope" --center \
--separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--gui-type=settings-paned \
--button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \ --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \
--button="$(gettext "DISABLE") GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable GameScope and go to the previous menu")":162 \ --button="$(gettext "DISABLE") GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable GameScope and go to the previous menu")":162 \
--button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 2>/dev/null)" --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 \
YAD_STATUS="$?" 2>/dev/null
export SKIP_CHECK_UPDATES=1
GAMESCOPE_ARGS="$(echo "$output_yad_gamescope" | awk -F"%" '{print $1}')"
edit_db_from_gui
case "${YAD_STATUS}" in YAD_GAMESCOPE_STATUS="$?"
case "${YAD_GAMESCOPE_STATUS}" in
1|252) 1|252)
export SKIP_CHECK_UPDATES=1 export SKIP_CHECK_UPDATES=1
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
;; ;;
162) 162)
export PW_USE_GAMESCOPE=0 export PW_GAMESCOPE=0
edit_db_from_gui PW_USE_GAMESCOPE edit_db_from_gui PW_GAMESCOPE
export SKIP_CHECK_UPDATES=1 export SKIP_CHECK_UPDATES=1
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0 exit 0
;; ;;
166) 166)
export PW_USE_GAMESCOPE=1 export PW_GAMESCOPE=1
;; ;;
esac esac
edit_db_from_gui PW_USE_GAMESCOPE GAMESCOPE_ARGS output_yad_gs=($(<"${PORT_WINE_TMP_PATH}/tmp_yad_gs_set"))
bool_from_yad=0
for boole_to_int in ${PW_GS_LIST} ; do
export ${boole_to_int}=${output_yad_gs[$bool_from_yad]}
if [ "${!boole_to_int}" == "TRUE" ]
then export ${boole_to_int}="1"
else export ${boole_to_int}="0"
fi
export bool_from_yad=$(( ${bool_from_yad} + 1 ))
done
PW_ADD_SETTINGS_GS=$(head -n 1 "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set_cb")
PW_GS_INTERNAL_RESOLUTION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $1}')"
PW_GS_SHOW_RESOLUTION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $2}')"
PW_GS_FRAME_LIMIT="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $3}')"
PW_GS_FRAME_LIMIT_UNFOCUSED="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $4}')"
PW_GS_FORCE_ORIENTATION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $5}')"
PW_GS_DRM_MODE="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $6}')"
PW_GS_FILTER_MODE="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $7}')"
PW_GS_SCALE_MODE="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $8}')"
PW_GS_DEFAULT_TOUCH="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $9}')"
PW_GS_MOUSE_SENSITIVITY="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $10}')"
PW_GS_UPSCALE_SHARPNESS="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $11}')"
PW_GS_MAX_SCALE_FACTOR="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $12}')"
PW_GS_HDR_SDR_NITS="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $13}')"
PW_GS_INVERSE_SDR="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $14}')"
PW_GS_INVERSE_TARGET="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $15}')"
PW_GS_HIDE_CURSOR_DELAY="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $16}')"
edit_db_from_gui ${PW_GS_LIST} PW_GAMESCOPE PW_GS_INTERNAL_RESOLUTION PW_GS_SHOW_RESOLUTION \
PW_GS_FRAME_LIMIT PW_GS_FRAME_LIMIT_UNFOCUSED PW_GS_FORCE_ORIENTATION PW_GS_DRM_MODE PW_GS_FILTER_MODE \
PW_GS_SCALE_MODE PW_GS_DEFAULT_TOUCH PW_GS_MOUSE_SENSITIVITY PW_GS_UPSCALE_SHARPNESS \
PW_GS_MAX_SCALE_FACTOR PW_GS_HDR_SDR_NITS PW_GS_INVERSE_SDR PW_GS_INVERSE_TARGET \
PW_GS_HIDE_CURSOR_DELAY
export SKIP_CHECK_UPDATES=1 export SKIP_CHECK_UPDATES=1
/usr/bin/env bash -c ${pw_full_command_line[*]} & /usr/bin/env bash -c ${pw_full_command_line[*]} &
...@@ -4250,7 +4472,7 @@ portwine_start_debug () { ...@@ -4250,7 +4472,7 @@ portwine_start_debug () {
echo "PW_SCREEN_PRIMARY=$PW_SCREEN_PRIMARY" >> "${PORT_WINE_PATH}/PortProton.log" echo "PW_SCREEN_PRIMARY=$PW_SCREEN_PRIMARY" >> "${PORT_WINE_PATH}/PortProton.log"
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "----------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/PortProton.log" echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/PortProton.log" echo "${PW_VULKANINFO_PORTABLE}" | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/PortProton.log"
"${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50 "${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/PortProton.log" echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/PortProton.log"
......
...@@ -197,15 +197,15 @@ then ...@@ -197,15 +197,15 @@ then
else else
PW_VULKANINFO_PORTABLE="$($PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo 2>/dev/null)" PW_VULKANINFO_PORTABLE="$($PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo 2>/dev/null)"
fi fi
VULKAN_DRIVER_NAME="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep driverName | awk '{print$3}' | head -1)" VULKAN_DRIVER_NAME="$(echo "${PW_VULKANINFO_PORTABLE}" | grep driverName | awk '{print$3}' | head -1)"
GET_GPU_NAMES=$(echo "${PW_VULKANINFO_PORTABLE[@]}" | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!') GET_GPU_NAMES=$(echo "${PW_VULKANINFO_PORTABLE}" | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
LSPCI_VGA="$(lspci -k 2>/dev/null | grep -E 'VGA|3D' | tr -d '\n')" LSPCI_VGA="$(lspci -k 2>/dev/null | grep -E 'VGA|3D' | tr -d '\n')"
export PW_VULKANINFO_PORTABLE VULKAN_DRIVER_NAME GET_GPU_NAMES LSPCI_VGA export PW_VULKANINFO_PORTABLE VULKAN_DRIVER_NAME GET_GPU_NAMES LSPCI_VGA
if command -v xrandr &>/dev/null ; then if command -v xrandr &>/dev/null ; then
PW_XRANDR="$(xrandr)" PW_XRANDR="$(xrandr --current 2>/dev/null)"
PW_SCREEN_RESOLUTION="$(echo "${PW_XRANDR[@]}" | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')" PW_SCREEN_RESOLUTION="$(echo "${PW_XRANDR}" | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
PW_SCREEN_PRIMARY="$(echo "${PW_XRANDR[@]}" | grep "primary" | awk '{print $1}')" PW_SCREEN_PRIMARY="$(echo "${PW_XRANDR}" | grep "primary" | awk '{print $1}')"
export PW_XRANDR PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION export PW_XRANDR PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION
echo "" echo ""
print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY
...@@ -224,12 +224,12 @@ then ...@@ -224,12 +224,12 @@ then
GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf" GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf"
unset LOCALE_LIST unset LOCALE_LIST
PW_LOCALE_ALL="$(locale -a)" PW_LOCALE_ALL="$(locale -a 2>/dev/null)"
for LOCALE in $GET_LOCALE_LIST ; do for LOCALE in $GET_LOCALE_LIST ; do
if locale -a | grep -i "$LOCALE" &>/dev/null ; then if locale -a | grep -i "$LOCALE" &>/dev/null ; then
if [[ ! -z "$LOCALE_LIST" ]] if [[ ! -z "$LOCALE_LIST" ]]
then LOCALE_LIST+="!$(echo "${PW_LOCALE_ALL[@]}" | grep -i "$LOCALE")" then LOCALE_LIST+="!$(echo "${PW_LOCALE_ALL}" | grep -i "$LOCALE")"
else LOCALE_LIST="$(echo "${PW_LOCALE_ALL[@]}" | grep -i "$LOCALE")" else LOCALE_LIST="$(echo "${PW_LOCALE_ALL}" | grep -i "$LOCALE")"
fi fi
fi fi
done done
......
...@@ -3,12 +3,10 @@ ...@@ -3,12 +3,10 @@
#SCRIPTS_NEXT_VERSION=2311 #SCRIPTS_NEXT_VERSION=2311
######################################################################## ########################################################################
export LANGUAGES_LIST="ru es" export LANGUAGES_LIST="ru es"
export PW_MANGOHUD="0"
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 PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.66"
export PW_VKBASALT="0" export PW_VKBASALT="0"
export GAMESCOPE_ARGS="-F fsr" export PW_MANGOHUD="0"
export PW_DGVOODOO2="0"
export PW_GAMESCOPE="0"
export PW_USE_RUNTIME="1" export PW_USE_RUNTIME="1"
export PW_RT_MOUNT_RO=("") export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}") export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
...@@ -30,12 +28,12 @@ export PW_WINE_CPU_TOPOLOGY="disabled" ...@@ -30,12 +28,12 @@ export PW_WINE_CPU_TOPOLOGY="disabled"
export STAGING_SHARED_MEMORY="1" export STAGING_SHARED_MEMORY="1"
export PW_MESA_GL_VERSION_OVERRIDE="disabled" export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled" export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_GAMESCOPE_ARGS_LEGACY="disabled"
export PW_FORCE_LARGE_ADDRESS_AWARE="1" export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_EAC_AND_BE="1" export PW_USE_EAC_AND_BE="1"
export PW_USE_US_LAYOUT="0" export PW_USE_US_LAYOUT="0"
export PW_GPU_USE="disabled" export PW_GPU_USE="disabled"
export PW_LOCALE_SELECT="disabled" export PW_LOCALE_SELECT="disabled"
export PW_USE_GAMESCOPE="0"
export PW_DINPUT_PROTOCOL="0" export PW_DINPUT_PROTOCOL="0"
###GTK_CONFIG### ###GTK_CONFIG###
# export GTK_DATA_PREFIX= # export GTK_DATA_PREFIX=
...@@ -60,6 +58,11 @@ export DXVK_STABLE_VER="1.10.3-28" ...@@ -60,6 +58,11 @@ export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.3.1-72" export DXVK_GIT_VER="2.3.1-72"
export VKD3D_STABLE_VER="1.1-2602" export VKD3D_STABLE_VER="1.1-2602"
export VKD3D_GIT_VER="1.1-4051" export VKD3D_GIT_VER="1.1-4051"
###VKBASALT###
export PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.66"
###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"
###DGVOODOO2### ###DGVOODOO2###
export DGV2_VER="2.81.3" export DGV2_VER="2.81.3"
export VKD3D_DGV2_VER="1.1-3622" export VKD3D_DGV2_VER="1.1-3622"
...@@ -71,6 +74,42 @@ export PW_DGV2_USE_DX12="0" ...@@ -71,6 +74,42 @@ export PW_DGV2_USE_DX12="0"
export PW_DGV2_FASTMEMORY="0" export PW_DGV2_FASTMEMORY="0"
export PW_DGV2_VRAM_INCREASE="0" export PW_DGV2_VRAM_INCREASE="0"
export PW_DGV2_FULLSCREEN="0" export PW_DGV2_FULLSCREEN="0"
###GAMESCOPE###
export PW_GS_INTERNAL_RESOLUTION="disabled"
export PW_GS_SHOW_RESOLUTION="disabled"
export PW_GS_FRAME_LIMIT="disabled"
export PW_GS_FRAME_LIMIT_UNFOCUSED="disabled"
export PW_GS_FORCE_ORIENTATION="disabled"
export PW_GS_DRM_MODE="disabled"
export PW_GS_FILTER_MODE="disabled"
export PW_GS_SCALE_MODE="disabled"
export PW_GS_DEFAULT_TOUCH="disabled"
export PW_GS_MOUSE_SENSITIVITY="0"
export PW_GS_UPSCALE_SHARPNESS="0"
export PW_GS_MAX_SCALE_FACTOR="0"
export PW_GS_HDR_SDR_NITS="0"
export PW_GS_INVERSE_SDR="0"
export PW_GS_INVERSE_TARGET="0"
export PW_GS_HIDE_CURSOR_DELAY="0"
export PW_GS_FULLSCREEN="0"
export PW_GS_BORDERESS_WINDOW="0"
export PW_GS_FORCE_FULLSCREEN="0"
export PW_GS_FORCE_GRAB_CURSOR="0"
export PW_GS_FORCE_GRAB_KEYBOARD="0"
export PW_GS_ENABLE_HDR="0"
export PW_GS_ENABLE_WIDE_GAMMUT="0"
export PW_GS_ENABLE_HDR_INVERSE="0"
export PW_GS_IMMEDIATE_FLIPS="0"
export PW_GS_ADAPTIVE_SYNC="0"
export PW_GS_FORCE_COMPOSITION="0"
export PW_GS_DEBUG_HUD="0"
export PW_GS_FORCE_HDR_SUPPORT="0"
export PW_GS_FORCE_HDR_ENABLE="0"
export PW_GS_PREFER_VULKAN_DEVICE="0"
export PW_GS_EXPOSE_WAYLAND="0"
export PW_GS_REALTIME_SCHUDULING="0"
export PW_GS_HEADLESS="0"
export PW_GS_ENABLE_GAMESCOPE_WSI="0"
###PREFIX_VERSION### ###PREFIX_VERSION###
export DOTPFX_VER="48v7" export DOTPFX_VER="48v7"
export DEFPFX_VER="v1" export DEFPFX_VER="v1"
......
...@@ -57,6 +57,11 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5 ...@@ -57,6 +57,11 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
export DGVOODOO2_GUI_TYPE_TEXT_UP=0 export DGVOODOO2_GUI_TYPE_TEXT_UP=0
export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
export GAMESCOPE_GUI_TYPE_TEXT_UP=0
export GAMESCOPE_GUI_TYPE_TEXT_DOWN=0
export SETTINGS_BASE_GUI_TYPE_LAYOUT=0 export SETTINGS_BASE_GUI_TYPE_LAYOUT=0
export SETTINGS_BASE_GUI_TYPE_TEXT=0 export SETTINGS_BASE_GUI_TYPE_TEXT=0
......
...@@ -39,54 +39,48 @@ export START_GUI_TYPE="--gui-type=start \ ...@@ -39,54 +39,48 @@ export START_GUI_TYPE="--gui-type=start \
--homogeneous-row \ --homogeneous-row \
" "
# для окна запуска приложения export START_GUI_TYPE_BOX=5
export START_GUI_TYPE_BOX=5 # значение для box export START_GUI_TYPE_LAYOUT_UP=3
export START_GUI_TYPE_LAYOUT_UP=3 # значение для layout вверху (для notebook 1 вкладка) export START_GUI_TYPE_LAYOUT_PANED=0
export START_GUI_TYPE_LAYOUT_PANED=0 # значение для layout внизу для paned export START_GUI_TYPE_LAYOUT_NOTEBOOK=0
export START_GUI_TYPE_LAYOUT_NOTEBOOK=0 # значение для layout в notebook 2 вкладка export START_GUI_TYPE_TEXT=2
export START_GUI_TYPE_TEXT=2 # значение для text export START_GUI_TYPE_IMAGE=5
export START_GUI_TYPE_IMAGE=5 # значение для images
# для основного меню
export MAIN_MENU_GUI_TYPE_LAYOUT=0 export MAIN_MENU_GUI_TYPE_LAYOUT=0
# для vkbasalt
export VKBASALT_GUI_TYPE_LAYOUT_UP=5 export VKBASALT_GUI_TYPE_LAYOUT_UP=5
export VKBASALT_GUI_TYPE_LAYOUT_DOWN=5 export VKBASALT_GUI_TYPE_LAYOUT_DOWN=5
export VKBASALT_GUI_TYPE_TEXT_UP=5 export VKBASALT_GUI_TYPE_TEXT_UP=5
# для mangohud
export MANGOHUD_GUI_TYPE_LAYOUT_UP=5 export MANGOHUD_GUI_TYPE_LAYOUT_UP=5
export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=5 export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=5
export MANGOHUD_GUI_TYPE_TEXT_UP=5 export MANGOHUD_GUI_TYPE_TEXT_UP=5
export MANGOHUD_GUI_TYPE_TEXT_DOWN=5 export MANGOHUD_GUI_TYPE_TEXT_DOWN=5
# для dgvoodoo2
export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5 export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
export DGVOODOO2_GUI_TYPE_TEXT_UP=5 export DGVOODOO2_GUI_TYPE_TEXT_UP=5
# для основных настроек export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
export GAMESCOPE_GUI_TYPE_TEXT_UP=5
export GAMESCOPE_GUI_TYPE_TEXT_DOWN=5
export SETTINGS_BASE_GUI_TYPE_LAYOUT=2 export SETTINGS_BASE_GUI_TYPE_LAYOUT=2
export SETTINGS_BASE_GUI_TYPE_TEXT=0 export SETTINGS_BASE_GUI_TYPE_TEXT=0
# для окна winetricks
export WINETRICKS_GUI_TYPE_LAYOUT=7 export WINETRICKS_GUI_TYPE_LAYOUT=7
export WINETRICKS_GUI_TYPE_TEXT=2 export WINETRICKS_GUI_TYPE_TEXT=2
# для окна скачивания версий wine
export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=7 export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=7
export WINE_DOWNLOAD_GUI_TYPE_TEXT=2 export WINE_DOWNLOAD_GUI_TYPE_TEXT=2
# для создания ярлыков
export SETTINGS_SHORTCUT_GUI_TYPE_BOX=5 export SETTINGS_SHORTCUT_GUI_TYPE_BOX=5
export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5 export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5
export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=5 export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=5
export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=5 export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=5
# для всплывающих окон по типу error, info, question
export YAD_INFO_GUI_TYPE_LAYOUT=2 export YAD_INFO_GUI_TYPE_LAYOUT=2
# настройки индикатора прогресса
export PROGRESS_BAR_BORDERS_SIZE=20 export PROGRESS_BAR_BORDERS_SIZE=20
export PROGRESS_BAR_WIDTH_SIZE=500 export PROGRESS_BAR_WIDTH_SIZE=500
...@@ -77,6 +77,12 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5 ...@@ -77,6 +77,12 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
export DGVOODOO2_GUI_TYPE_TEXT_UP=5 export DGVOODOO2_GUI_TYPE_TEXT_UP=5
# для gamescope
export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
export GAMESCOPE_GUI_TYPE_TEXT_UP=5
export GAMESCOPE_GUI_TYPE_TEXT_DOWN=5
# для основных настроек # для основных настроек
export SETTINGS_BASE_GUI_TYPE_LAYOUT=2 export SETTINGS_BASE_GUI_TYPE_LAYOUT=2
export SETTINGS_BASE_GUI_TYPE_TEXT=0 export SETTINGS_BASE_GUI_TYPE_TEXT=0
......
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