Add: 'Graphics Setup' stage > Nvidia Proprietary drivers:

The installer now supports enabling a feature that allows low latency display interrupts
to be serviced even when the system is under heavy contention.
This is especially useful for reducing stutter when using virtual reality.

This feature is experimental and disabled by default.
This commit is contained in:
Jane Doe
2025-03-08 15:45:35 +02:00
parent 9926f74007
commit a435df9080
+38 -4
View File
@@ -2,7 +2,7 @@
# Amelia Installer # Amelia Installer
# Source: https://gitlab.com/prism7/archery # Source: https://gitlab.com/prism7/archery
# Version: 8.9.2 # Version: 8.10.0
set -euo pipefail set -euo pipefail
################################################################################################### ###################################################################################################
@@ -555,12 +555,12 @@ ${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}M
if [[ -e /usr/bin/pv ]]; then if [[ -e /usr/bin/pv ]]; then
CYAN " CYAN "
(*) ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}'Guided Navigation' ${nc}& ${yellowl}'Smart Partitioning' ${nc}functions (*) ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}'Guided Navigation' ${nc}& ${yellowl}'Smart Partitioning' ${nc}features
" | pv -qL 70 " | pv -qL 70
else else
CYAN " CYAN "
(*) ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}'Guided Navigation' ${nc}& ${yellowl}'Smart Partitioning' ${nc}functions (*) ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}'Guided Navigation' ${nc}& ${yellowl}'Smart Partitioning' ${nc}features
" "
fi fi
NC " NC "
@@ -1812,6 +1812,32 @@ Enter [y/n]: "
invalid invalid
return 1 ;; return 1 ;;
esac esac
local prompt="Low Latency Display Interrupts enabled"
sleep 0.2
YELLOW "
> Enable (experimental) Low Latency Display Interrupts ? [Y/n] "
BLUE "
Enter [Y/n]: "
read -r -p "
==> " lowlat
lowlat="${lowlat:-y}"
lowlat="${lowlat,,}"
if [[ "${lowlat}" == "n" ]]; then
skip
echo
elif [[ "${lowlat}" == "y" ]]; then
ok
echo
else
y_n
return 1
fi
fi fi
sleep 0.2 sleep 0.2
YELLOW " YELLOW "
@@ -5997,6 +6023,10 @@ set_vars() {
if [[ "${nogsp}" == "y" ]]; then if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi fi
# Enable (Experimental) Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi
# Amd # Amd
elif [[ "${vendor}" == "AMD" ]]; then elif [[ "${vendor}" == "AMD" ]]; then
# Mkinitcpio Hooks (Encryption) # Mkinitcpio Hooks (Encryption)
@@ -6080,6 +6110,10 @@ set_vars() {
if [[ "${nogsp}" == "y" ]]; then if [[ "${nogsp}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0)
fi fi
# Enable (Experimental) Low Latency Interrupts
if [[ "${lowlat}" == "y" ]]; then
vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1)
fi
# Amd # Amd
elif [[ "${vendor}" == "AMD" ]]; then elif [[ "${vendor}" == "AMD" ]]; then
# Mkinitcpio Hooks # Mkinitcpio Hooks
@@ -6462,7 +6496,7 @@ OPTIMIZED
tty="$(tty)" tty="$(tty)"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
trg="" trg=""
vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgapkgs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="") vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgapkgs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="")
export "${vars[@]}" export "${vars[@]}"
clear clear
first_check first_check