[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"
|
||||
"steam" "steam-original" "steam-run"
|
||||
"vista-fonts"
|
||||
"nvidia-persistenced" # Docker
|
||||
];
|
||||
in
|
||||
utils.lib.mkFlake {
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.sway.enable = true;
|
||||
|
||||
hardware.nvidia = {
|
||||
enable = true;
|
||||
model = "Quadro T2000";
|
||||
|
|
|
@ -38,6 +38,26 @@ let
|
|||
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
||||
gnome_schema=org.gnome.desktop.interface
|
||||
# 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 {
|
||||
|
@ -100,7 +120,8 @@ in {
|
|||
|
||||
power-profiles-daemon.enable = true;
|
||||
|
||||
xserver.displayManager.session = [{
|
||||
xserver = {
|
||||
displayManager.session = [{
|
||||
manage = "window";
|
||||
name = "Sway";
|
||||
start = ''
|
||||
|
@ -108,6 +129,8 @@ in {
|
|||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
videoDrivers = [ "nouveau" ];
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
let
|
||||
cfg = config.sisyphus.hardware.nvidia;
|
||||
|
||||
# The graphics cards for which to do offloading
|
||||
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
|
||||
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
|
@ -24,7 +25,16 @@ in {
|
|||
};
|
||||
|
||||
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 = {
|
||||
opengl = {
|
||||
|
@ -33,7 +43,7 @@ in {
|
|||
driSupport32Bit = true;
|
||||
};
|
||||
nvidia = {
|
||||
open = true;
|
||||
open = false;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
modesetting.enable = true;
|
||||
nvidiaSettings = cfg.gui-settings;
|
||||
|
@ -42,6 +52,9 @@ in {
|
|||
finegrained = do-offloading;
|
||||
};
|
||||
|
||||
# Avoid flickering
|
||||
forceFullCompositionPipeline = true;
|
||||
|
||||
prime = lib.mkMerge [
|
||||
(lib.mkIf do-offloading {
|
||||
offload = {
|
||||
|
|
Loading…
Reference in a new issue