refactor(gpu): fix vaapi conflict, centralize package conditions
This commit is contained in:
parent
891d967b3b
commit
826ad1b467
1 changed files with 13 additions and 6 deletions
|
@ -3,6 +3,7 @@ with lib;
|
||||||
with lib.hlissner;
|
with lib.hlissner;
|
||||||
let
|
let
|
||||||
cfg = config.modules.hardware.gpu;
|
cfg = config.modules.hardware.gpu;
|
||||||
|
any' = any (v: v);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.hardware.gpu = {
|
options.modules.hardware.gpu = {
|
||||||
|
@ -12,15 +13,23 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf (any (v: v) (with cfg; [ amdgpu nvidia intel ])) {
|
(mkIf (any' (with cfg; [ amdgpu nvidia intel ])) {
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; flatten [
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
|
|
||||||
|
(optionals (any' (with cfg; [ amdgpu intel ])) [
|
||||||
|
vaapiVdpau
|
||||||
|
])
|
||||||
|
|
||||||
|
(optionals cfg.intel [
|
||||||
|
intel-media-driver
|
||||||
|
vaapiIntel
|
||||||
|
])
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -41,8 +50,6 @@ in
|
||||||
virtualisation.docker.enableNvidia = true;
|
virtualisation.docker.enableNvidia = true;
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.intel {
|
(mkIf cfg.intel { })
|
||||||
hardware.opengl.extraPackages = with pkgs; [ intel-media-driver vaapiIntel ];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue