I forgot i had git setup
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
older-packages
|
||||
*.pkg.*
|
||||
src
|
||||
@@ -0,0 +1,23 @@
|
||||
# Maintainer: Marc barbier
|
||||
pkgname=game-runner
|
||||
pkgver=2.2
|
||||
pkgrel=1
|
||||
pkgdesc="Simple wrapper around envycontrol and optimus manager"
|
||||
arch=('any')
|
||||
url=''
|
||||
license=('GPL2')
|
||||
source=( 'gamerunner.sh' 'gamerunner.cfg' )
|
||||
backup=( 'etc/gamerunner.cfg' )
|
||||
optdepends=('optimus-manager: optimus-manager support'
|
||||
'envycontrol: envycontrol support'
|
||||
'supergfxctl: supergfxctl support' )
|
||||
|
||||
sha512sums=(
|
||||
'b073f717f83942dbb90a98e557b4e32a9e8d0ac1ebb94e753698278afa40333ec8168d0f0ffde7d60a4ac75e66f41c98ba0a56becb691712cd76e39886691fbc'
|
||||
'227fcebb72a73ff634278a61f07ef82e367bb9dc6f8bdd00a0fe774882b6c234421d1ef8639475e301820eb05ac9a4a3dc047c13875cc6f69d313f63c9e27c91'
|
||||
)
|
||||
|
||||
package() {
|
||||
install -Dm 755 "$srcdir/gamerunner.sh" "$pkgdir/usr/bin/gamerunner"
|
||||
install -Dm 644 "$srcdir/gamerunner.cfg" "$pkgdir/etc/gamerunner.cfg"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
# 0=off(default safe) 1=on(might not load or cause crashes) 2=forced(might cause crashes)
|
||||
MANGOHUD=0
|
||||
USE_GAMEMODE=1
|
||||
USE_DLSYM=1
|
||||
#Un comment for RTX support on older proton
|
||||
#VKD3D_CONFIG=dxr,dxr11
|
||||
PROTON_ENABLE_NVAPI=1
|
||||
PROTON_HIDE_NVIDIA_GPU=0
|
||||
PROTON_ENABLE_NGX_UPDATER=1
|
||||
#Obs-vk capture
|
||||
OBSCAP=1
|
||||
# small amd vulkan perf boost
|
||||
RADV_PERFTEST=nggc
|
||||
|
||||
# Increase performance in most cases
|
||||
__GL_THREADED_OPTIMIZATIONS=1
|
||||
mesa_glthread=true
|
||||
|
||||
# Reduce lantency on nvidia systems
|
||||
__GL_MaxFramesAllowed=1
|
||||
|
||||
# Large BAR(Smart access memory) on any AMD hardware ( please use it only on suported hardware )
|
||||
RADV_PERFTEST=sam
|
||||
|
||||
# Put here the icd of your igpu (radv / amdvlk / intel ). full path required !
|
||||
|
||||
# RADV
|
||||
# MESA_ICD="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
|
||||
|
||||
# AMDVLK
|
||||
# MESA_ICD="/usr/share/vulkan/icd.d/amd_icd64.json:/usr/share/vulkan/icd.d/amd_icd32.json"
|
||||
|
||||
# INTEL (useless to specify leave it commented out)
|
||||
# MESA_ICD="/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/intel_icd.i686.json"
|
||||
|
||||
#Unreliable in most cases
|
||||
GAMESCOPE=0
|
||||
Executable
+181
@@ -0,0 +1,181 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Gamerunner a hook for gamemode and nvidia prime render offload to avoid crashed with optimus-manager
|
||||
|
||||
function preload() {
|
||||
export LD_PRELOAD="${LD_PRELOAD}${LD_PRELOAD:+:}$1"
|
||||
}
|
||||
|
||||
|
||||
MAIN_VENDOR=$(glxinfo | grep "OpenGL vendor string")
|
||||
VULKAN_VENDOR=$(vulkaninfo --summary | grep "driverName" | grep -v llvm)
|
||||
NVK_ICD="/usr/share/vulkan/icd.d/nouveau_icd.i686.json:/usr/share/vulkan/icd.d/nouveau_icd.x86_64.json"
|
||||
NVKTEST=$(VK_ICD_FILENAMES=$NVK_ICD vulkaninfo --summary)
|
||||
|
||||
if [ "$MAIN_VENDOR" == "OpenGL vendor string: MESA" ]
|
||||
then
|
||||
MODE="nvk"
|
||||
else
|
||||
if [ "$MAIN_VENDOR" == "OpenGL vendor string: NVIDIA Corporation" ]
|
||||
then
|
||||
MODE="nvidia"
|
||||
export GAMESCOPE=0
|
||||
else
|
||||
if [[ "$VULKAN_VENDOR" =~ "NVIDIA" ]]
|
||||
then
|
||||
MODE="hybrid"
|
||||
else
|
||||
if [[ ! -z "$NVKTEST" ]]
|
||||
then
|
||||
MODE="hybridnvk"
|
||||
else
|
||||
MODE="integrated"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "${GR_SWITCH_ONLY}" ] && (( $GR_SWITCH_ONLY == 1 ))
|
||||
then
|
||||
echo "Skipping env variables"
|
||||
else
|
||||
USE_GAMEMODE=0
|
||||
MANGOHUD=0
|
||||
GAMESCOPE=0
|
||||
|
||||
#if the config doesn't exist load /etc/gamerunner.cfg instead of ~/.config/gamerunner.cfg
|
||||
if [ -f "$HOME/.config/gamerunner.cfg" ]
|
||||
then
|
||||
echo "Loading user config"
|
||||
source ~/.config/gamerunner.cfg
|
||||
else
|
||||
echo "Loading system config"
|
||||
if [ -f "/app/etc/gamerunner.cfg" ]
|
||||
then
|
||||
source /app/etc/gamerunner.cfg
|
||||
else
|
||||
source /etc/gamerunner.cfg
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
#Export the config
|
||||
export VKD3D_CONFIG
|
||||
export PROTON_ENABLE_NVAPI
|
||||
export __GL_THREADED_OPTIMIZATIONS
|
||||
export mesa_glthread
|
||||
export RADV_PERFTEST
|
||||
export __GL_MaxFramesAllowed
|
||||
export PROTON_HIDE_NVIDIA_GPU
|
||||
export PROTON_ENABLE_NGX_UPDATER
|
||||
export MANGOHUD
|
||||
|
||||
if [ "$#" -eq 0 ]; then
|
||||
programname=`basename "$0"`
|
||||
echo "ERROR: No program supplied"
|
||||
echo
|
||||
echo "Usage: $programname <program>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$GR_SAFE" == "1" ]
|
||||
then
|
||||
echo "Safe mode"
|
||||
GAMESCOPE=0
|
||||
export MANGOHUD=0
|
||||
fi
|
||||
|
||||
|
||||
if (( $USE_GAMEMODE == 1 ))
|
||||
then
|
||||
preload "libgamemodeauto.so.0"
|
||||
fi
|
||||
|
||||
if [ "$MODE" = "nvidia" ] || [ "$MODE" = "hybrid" ]
|
||||
then
|
||||
echo "Disabling gamescope"
|
||||
GAMESCOPE=0
|
||||
fi
|
||||
|
||||
if (( $GAMESCOPE == 1 ))
|
||||
then
|
||||
echo "Disabling mangohud for safety with gamescope"
|
||||
export MANGOHUD=0
|
||||
fi
|
||||
|
||||
if (( $MANGOHUD == 2 ))
|
||||
then
|
||||
echo force loading mangohud
|
||||
#on load la lib mango
|
||||
preload "libMangoHud.so"
|
||||
if (( "$USE_DLSYM" == 1 ))
|
||||
then
|
||||
export MANGOHUD_DLSYM=1
|
||||
preload "libMangoHud_dlsym.so"
|
||||
fi
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/\$LIB:/usr/\$LIB/mangohud"
|
||||
export MANGOHUD=1
|
||||
fi
|
||||
|
||||
if (( $OBSCAP == 1 ))
|
||||
then
|
||||
echo loading obs vulkan capture
|
||||
preload "/usr/\$LIB/obs_glcapture/libobs_glcapture.so"
|
||||
export OBS_VKCAPTURE=1
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MODE" == "nvidia" ]
|
||||
then
|
||||
# Do nothing
|
||||
echo "nvidia"
|
||||
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
else
|
||||
if [ "$MODE" == "hybridnvk" ]
|
||||
then
|
||||
export DRI_PRIME=1
|
||||
#All nvk specific should by compatible with hybrid
|
||||
MODE="nvk"
|
||||
echo "Hybrid-nvk"
|
||||
fi
|
||||
|
||||
if [ "$MODE" == "nvk" ]
|
||||
then
|
||||
echo "NVK"
|
||||
export VK_DRIVER_FILES=$NVK_ICD
|
||||
else
|
||||
if [ "$MODE" == "hybrid" ]
|
||||
then
|
||||
echo "hybrid"
|
||||
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"
|
||||
if [ "$XDG_SESSION_TYPE" == 1 ]
|
||||
then
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
fi
|
||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
else
|
||||
if [ -n "$MESA_ICD" ]
|
||||
then
|
||||
export VK_DRIVER_FILES=$MESA_ICD
|
||||
fi
|
||||
echo "integrated"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# if gamescope is not present this will return an empty string
|
||||
GAMESCOPE_PATH=$(command -v gamescope)
|
||||
if [ "$GAMESCOPE" == "1" ] && [ ! "GAMESCOPE_PATH" == "" ]
|
||||
then
|
||||
export AMD_VULKAN_ICD=RADV
|
||||
echo hud $MANGOHUD
|
||||
echo "Warning: this is still experimental"
|
||||
echo "$GAMESCOPE_PATH" -f -b "$@"
|
||||
"$GAMESCOPE_PATH" -f -b "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user