[nvidia] Attempts to fix flicker
Switch to nouveau
This commit is contained in:
		
							parent
							
								
									e810827331
								
							
						
					
					
						commit
						15e00efe3e
					
				
					 4 changed files with 50 additions and 11 deletions
				
			
		|  | @ -45,6 +45,7 @@ | ||||||
|         "spotify" |         "spotify" | ||||||
|         "steam" "steam-original" "steam-run" |         "steam" "steam-original" "steam-run" | ||||||
|         "vista-fonts" |         "vista-fonts" | ||||||
|  |         "nvidia-persistenced" # Docker | ||||||
|       ]; |       ]; | ||||||
|     in |     in | ||||||
|     utils.lib.mkFlake { |     utils.lib.mkFlake { | ||||||
|  |  | ||||||
|  | @ -6,6 +6,8 @@ | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   sisyphus = { |   sisyphus = { | ||||||
|  |     desktop.sway.enable = true; | ||||||
|  | 
 | ||||||
|     hardware.nvidia = { |     hardware.nvidia = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       model = "Quadro T2000"; |       model = "Quadro T2000"; | ||||||
|  |  | ||||||
|  | @ -38,6 +38,26 @@ let | ||||||
|       export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS |       export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS | ||||||
|       gnome_schema=org.gnome.desktop.interface |       gnome_schema=org.gnome.desktop.interface | ||||||
|       # gsettings set $gnome_schema gtk-theme 'Dracula' |       # gsettings set $gnome_schema gtk-theme 'Dracula' | ||||||
|  | 
 | ||||||
|  |       # https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh | ||||||
|  |       # Hardware cursors not yet working on wlroots | ||||||
|  |       export WLR_NO_HARDWARE_CURSORS=1 | ||||||
|  |       # Set wlroots renderer to Vulkan to avoid flickering | ||||||
|  |       export WLR_RENDERER=vulkan | ||||||
|  |       # General wayland environment variables | ||||||
|  |       export XDG_SESSION_TYPE=wayland | ||||||
|  |       export QT_QPA_PLATFORM=wayland | ||||||
|  |       export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 | ||||||
|  |       # Firefox wayland environment variable | ||||||
|  |       export MOZ_ENABLE_WAYLAND=1 | ||||||
|  |       export MOZ_USE_XINPUT2=1 | ||||||
|  |       # OpenGL Variables | ||||||
|  |       export GBM_BACKEND=nvidia-drm | ||||||
|  |       export __GL_GSYNC_ALLOWED=0 | ||||||
|  |       export __GL_VRR_ALLOWED=0 | ||||||
|  |       export __GLX_VENDOR_LIBRARY_NAME=nvidia | ||||||
|  |       # Xwayland compatibility | ||||||
|  |       export XWAYLAND_NO_GLAMOR=1 | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| in { | in { | ||||||
|  | @ -100,14 +120,17 @@ in { | ||||||
| 
 | 
 | ||||||
|       power-profiles-daemon.enable = true; |       power-profiles-daemon.enable = true; | ||||||
| 
 | 
 | ||||||
|       xserver.displayManager.session = [{ |       xserver = { | ||||||
|         manage = "window"; |         displayManager.session = [{ | ||||||
|         name = "Sway"; |           manage = "window"; | ||||||
|         start = '' |           name = "Sway"; | ||||||
|           ${pkgs.sway}/bin/sway --unsupported-gpu & |           start = '' | ||||||
|           waitPID=$! |             ${pkgs.sway}/bin/sway --unsupported-gpu & | ||||||
|         ''; |             waitPID=$! | ||||||
|       }];     |           ''; | ||||||
|  |         }]; | ||||||
|  |         videoDrivers = [ "nouveau" ]; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
|      |      | ||||||
|     xdg.portal = { |     xdg.portal = { | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| let | let | ||||||
|   cfg = config.sisyphus.hardware.nvidia; |   cfg = config.sisyphus.hardware.nvidia; | ||||||
| 
 | 
 | ||||||
|  |   # The graphics cards for which to do offloading | ||||||
|   do-offloading = builtins.elem cfg.model [ "Quadro T2000" ]; |   do-offloading = builtins.elem cfg.model [ "Quadro T2000" ]; | ||||||
|   nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' |   nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' | ||||||
|     export __NV_PRIME_RENDER_OFFLOAD=1 |     export __NV_PRIME_RENDER_OFFLOAD=1 | ||||||
|  | @ -24,7 +25,16 @@ in { | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     services.xserver.videoDrivers = [ "nvidia" ]; | #    boot = { | ||||||
|  | #      extraModprobeConfig = "options nvidia-drm modeset=1"; | ||||||
|  | # | ||||||
|  | #      initrd.kernelModules = [ | ||||||
|  | #        "nvidia" | ||||||
|  | #        "nvidia_modeset" | ||||||
|  | #        "nvidia_uvm" | ||||||
|  | #        "nvidia_drm" | ||||||
|  | #      ]; | ||||||
|  | #    }; | ||||||
| 
 | 
 | ||||||
|     hardware = { |     hardware = { | ||||||
|       opengl = { |       opengl = { | ||||||
|  | @ -33,7 +43,7 @@ in { | ||||||
|         driSupport32Bit = true; |         driSupport32Bit = true; | ||||||
|       }; |       }; | ||||||
|       nvidia = { |       nvidia = { | ||||||
|         open = true; |         open = false; | ||||||
|         package = config.boot.kernelPackages.nvidiaPackages.stable; |         package = config.boot.kernelPackages.nvidiaPackages.stable; | ||||||
|         modesetting.enable = true; |         modesetting.enable = true; | ||||||
|         nvidiaSettings = cfg.gui-settings; |         nvidiaSettings = cfg.gui-settings; | ||||||
|  | @ -42,6 +52,9 @@ in { | ||||||
|           finegrained = do-offloading; |           finegrained = do-offloading; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  |         # Avoid flickering | ||||||
|  |         forceFullCompositionPipeline = true; | ||||||
|  | 
 | ||||||
|         prime = lib.mkMerge [ |         prime = lib.mkMerge [ | ||||||
|           (lib.mkIf do-offloading { |           (lib.mkIf do-offloading { | ||||||
|             offload = { |             offload = { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue