From a435df908013db04b4ce4401302fe90af7c0bd0b Mon Sep 17 00:00:00 2001 From: Jane Doe Date: Sat, 8 Mar 2025 15:45:35 +0200 Subject: [PATCH] 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. --- Amelia.sh | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/Amelia.sh b/Amelia.sh index b1c8761..93fe3d3 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # Source: https://gitlab.com/prism7/archery -# Version: 8.9.2 +# Version: 8.10.0 set -euo pipefail ################################################################################################### @@ -555,12 +555,12 @@ ${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}M if [[ -e /usr/bin/pv ]]; then 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 else 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 NC " @@ -1812,6 +1812,32 @@ Enter [y/n]: " invalid return 1 ;; 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 sleep 0.2 YELLOW " @@ -5997,6 +6023,10 @@ set_vars() { if [[ "${nogsp}" == "y" ]]; then vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) fi + # Enable (Experimental) Low Latency Interrupts + if [[ "${lowlat}" == "y" ]]; then + vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1) + fi # Amd elif [[ "${vendor}" == "AMD" ]]; then # Mkinitcpio Hooks (Encryption) @@ -6080,6 +6110,10 @@ set_vars() { if [[ "${nogsp}" == "y" ]]; then vga_bootopts+=(nvidia.NVreg_EnableGpuFirmware=0) fi + # Enable (Experimental) Low Latency Interrupts + if [[ "${lowlat}" == "y" ]]; then + vga_bootopts+=(nvidia.NVreg_RegistryDwords=RMIntrLockingMode=1) + fi # Amd elif [[ "${vendor}" == "AMD" ]]; then # Mkinitcpio Hooks @@ -6462,7 +6496,7 @@ OPTIMIZED tty="$(tty)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" 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[@]}" clear first_check