mv chaotic to graphics.amd

This commit is contained in:
cnst
2024-10-24 17:25:38 +02:00
parent 7654790609
commit 67ab059b11
6 changed files with 106 additions and 40 deletions

View File

@@ -51,6 +51,11 @@
graphics = { graphics = {
amd = { amd = {
enable = true; enable = true;
extraPackages = false;
chaotic = {
enable = true;
extraPackages = true;
};
}; };
nvidia = { nvidia = {
enable = false; enable = false;
@@ -182,12 +187,6 @@
anyrun = { anyrun = {
enable = false; enable = false;
}; };
chaotic = {
enable = true;
amd = {
enable = true;
};
};
corectrl = { corectrl = {
enable = true; enable = true;
}; };

View File

@@ -34,6 +34,11 @@
graphics = { graphics = {
amd = { amd = {
enable = true; enable = true;
extraPackages = true;
chaotic = {
enable = false;
extraPackages = false;
};
}; };
nvidia = { nvidia = {
enable = false; enable = false;
@@ -160,12 +165,6 @@
brightnessctl = { brightnessctl = {
enable = true; enable = true;
}; };
chaotic = {
enable = false;
amd = {
enable = false;
};
};
corectrl = { corectrl = {
enable = false; enable = false;
}; };

View File

@@ -182,12 +182,6 @@
corectrl = { corectrl = {
enable = false; enable = false;
}; };
chaotic = {
enable = false;
amd = {
enable = false;
};
};
microfetch = { microfetch = {
enable = true; enable = true;
}; };

View File

@@ -107,7 +107,6 @@
./nixos/utils/android ./nixos/utils/android
./nixos/utils/anyrun ./nixos/utils/anyrun
./nixos/utils/brightnessctl ./nixos/utils/brightnessctl
./nixos/utils/chaotic
./nixos/utils/corectrl ./nixos/utils/corectrl
./nixos/utils/microfetch ./nixos/utils/microfetch
./nixos/utils/misc ./nixos/utils/misc

View File

@@ -4,7 +4,7 @@
config, config,
... ...
}: let }: let
inherit (lib) mkOption; inherit (lib) mkOption mkIf;
cfg = config.nixos.boot.kernel; cfg = config.nixos.boot.kernel;
in { in {
options = { options = {
@@ -70,5 +70,9 @@ in {
) )
++ cfg.extraBlacklistedModules; ++ cfg.extraBlacklistedModules;
}; };
chaotic = mkIf (cfg.variant == "cachyos") {
scx.enable = true;
};
}; };
} }

View File

@@ -1,32 +1,103 @@
{ {
# pkgs, pkgs,
config, config,
lib, lib,
... ...
}: let }: let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption mkOption mkMerge optional;
cfg = config.nixos.hardware.graphics.amd; cfg = config.nixos.hardware.graphics.amd;
in { in {
options = { options = {
nixos.hardware.graphics.amd.enable = mkEnableOption "Enables AMD graphics"; nixos.hardware.graphics.amd = {
enable = mkEnableOption "Enables AMD graphics";
extraPackages = mkOption {
type = lib.types.bool;
default = false;
description = "Whether to install AMD-specific extra packages.";
}; };
config = mkIf cfg.enable {
hardware = { chaotic = {
graphics = { enable = mkEnableOption "Enables chaotic mesa version";
extraPackages = mkOption {
type = lib.types.bool;
default = false;
description = "Whether to install AMD-specific chaotic extra packages.";
};
};
};
};
config = mkIf cfg.enable (mkMerge [
{
assertions = [
{
assertion = !(cfg.extraPackages && cfg.chaotic.extraPackages);
message = ''
Only one type of extraPackages can be set to true at the same time.
'';
}
];
hardware.graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
# extraPackages = with pkgs; [
# libva extraPackages = optional cfg.extraPackages (with pkgs; [
# vaapiVdpau libva
# libvdpau-va-gl vaapiVdpau
# amdvlk libvdpau-va-gl
# vulkan-tools amdvlk
# ]; vulkan-tools
# extraPackages32 = with pkgs.pkgsi686Linux; [ ]);
# vaapiVdpau
# libvdpau-va-gl extraPackages32 = optional cfg.extraPackages (with pkgs.pkgsi686Linux; [
# ]; vaapiVdpau
}; libvdpau-va-gl
]);
};
}
(mkIf cfg.chaotic.enable (mkMerge [
{
chaotic.scx.enable = true;
}
(mkIf cfg.chaotic.extraPackages {
chaotic = {
scx.scheduler = "scx_lavd";
mesa-git = {
enable = true;
extraPackages = with pkgs; [
libva
libvdpau-va-gl
vaapiVdpau
libdrm_git
latencyflex-vulkan
mesa_git
mesa_git.opencl
vulkanPackages_latest.gfxreconstruct
vulkanPackages_latest.spirv-cross
vulkanPackages_latest.spirv-headers
vulkanPackages_latest.spirv-tools
vulkanPackages_latest.vulkan-extension-layer
vulkanPackages_latest.vulkan-headers
vulkanPackages_latest.vulkan-loader
vulkanPackages_latest.vulkan-tools
vulkanPackages_latest.vulkan-tools-lunarg
vulkanPackages_latest.vulkan-utility-libraries
vulkanPackages_latest.vulkan-validation-layers
vulkanPackages_latest.vulkan-volk
];
extraPackages32 = with pkgs.pkgsi686Linux; [
pkgs.mesa32_git
pkgs.mesa32_git.opencl
libdrm32_git
libva
libvdpau-va-gl
vaapiVdpau
];
}; };
}; };
})
]))
]);
} }