OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      d94b9e8a6032
DATE      2025-02-27
SUBJECT   amd: lact module init
FILES     4 CHANGED
HASH      d94b9e8a6032
DATE      2025-02-27
SUBJECT   amd: lact module init
FILES     4 CHANGED
 

diff --git a/.gitignore b/.gitignore
index a40c183..55738f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 repodump.xml
+CLAUDE.md

diff --git a/.gitignore b/.gitignore
index a40c183..55738f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 repodump.xml
+CLAUDE.md
 

diff --git a/hosts/ooksdesk/hardware.nix b/hosts/ooksdesk/hardware.nix
index 94e6c27..64fa886 100644
--- a/hosts/ooksdesk/hardware.nix
+++ b/hosts/ooksdesk/hardware.nix
@@ -5,7 +5,10 @@
       amd.pstate.enable = true;
       cores = 16;
     };
-    gpu.type = "amd";
+    gpu = {
+      type = "amd";
+      lact.enable = true;
+    };
     features = ["printing" "ssd" "audio" "video"];
     monitors = [
       {

diff --git a/hosts/ooksdesk/hardware.nix b/h
osts/ooksdesk/hardware.nix
index 94e6c27..64fa886 100644
--- a/hosts/ooksdesk/hardware.nix
+++ b/hosts/ooksdesk/hardware.nix
@@ -5,7 +5,10 @@
       amd.pstate.enable = true;
       cores = 16;
     };
-    gpu.type = "amd";
+    gpu = {
+      type = "amd";
+      lact.enable = true;
+    };
     features = ["printing" "ssd" "audio" "v
ideo"];
     monitors = [
       {
 

diff --git a/modules/nixos/hardware/gpu/amd.nix b/modules/nixos/hardware/gpu/amd.n
ix
index 6a29c21..619cddc 100644
--- a/modules/nixos/hardware/gpu/amd.nix
+++ b/modules/nixos/hardware/gpu/amd.nix
@@ -5,35 +5,59 @@
   ...
 }: let
   inherit (config.ooknet.hardware) gpu;
-  inherit (lib) mkIf mkDefault;
+  inherit (lib) getExe mkMerge mkIf mkDefault;
   inherit (builtins) attrValues;
 in {
-  config = mkIf (gpu.type == "amd") {
-    hardware.amdgpu = {
-      amdvlk = {
-        enable = false;
-        support32Bit.enable = true;
+  config = mkIf (gpu.type == "amd") (mkMerge [
+    {
+      hardware.amdgpu = {
+        amdvlk = {
+          enable = false;
+          support32Bit.enable = true;
+        };
+        opencl.enable = false;
       };
-      opencl.enable = false;
-    };
-    hardware.graphics = {
-      extraPackages = attrValues {
+      hardware.graphics = {
+        extraPackages = attrValues {
+          inherit
+            (pkgs)
+            vulkan-tools
+            vulkan-loader
+            vulkan-extension-layer
+            vulkan-validation-layers
+            mesa
+            ;
+        };
+        extraPackages32 = [pkgs.driversi686Linux.amdvlk];
+      };
+      boot = {
+        initrd.kernelModules = ["amdgpu"];
+        kernelModules = ["amdgpu"];
+      };
+      environment.systemPackages = [pkgs.nvtopPackages.amd];
+      services.xserver.videoDrivers = mkDefault ["modesetting" "amdgpu"];
+    }
+    (mkIf gpu.lact.enable {
+      boot.kernelParams = ["amdgpu.ppfeaturemask=0xfffd7fff"];
+      environment.systemPackages = attrValues {
         inherit
           (pkgs)
-          vulkan-tools
-          vulkan-loader
-          vulkan-extension-layer
-          vulkan-validation-layers
-          mesa
+          lact
+          unigine-heaven
+          unigine-superposition
           ;
       };
-      extraPackages32 = [pkgs.driversi686Linux.amdvlk];
-    };
-    boot = {
-      initrd.kernelModules = ["amdgpu"];
-      kernelModules = ["amdgpu"];
-    };
-    environment.systemPackages = [pkgs.nvtopPackages.amd];
-    services.xserver.videoDrivers = mkDefault ["modesetting" "amdgpu"];
-  };
+
+      systemd = {
+        packages = [pkgs.lact];
+        services.lactd = {
+          wantedBy = ["multi-user.target"];
+          unitConfig = {
+            Description = "GPU Control Daemon";
+            After = ["multi-user.target"];
+          };
+        };
+      };
+    })
+  ]);
 }

diff --git a/modules/nixos/hardware/gpu/amd.
nix b/modules/nixos/hardware/gpu/amd.nix
index 6a29c21..619cddc 100644
--- a/modules/nixos/hardware/gpu/amd.nix
+++ b/modules/nixos/hardware/gpu/amd.nix
@@ -5,35 +5,59 @@
   ...
 }: let
   inherit (config.ooknet.hardware) gpu;
-  inherit (lib) mkIf mkDefault;
+  inherit (lib) getExe mkMerge mkIf mkDefau
lt;
   inherit (builtins) attrValues;
 in {
-  config = mkIf (gpu.type == "amd") {
-    hardware.amdgpu = {
-      amdvlk = {
-        enable = false;
-        support32Bit.enable = true;
+  config = mkIf (gpu.type == "amd") (mkMerg
e [
+    {
+      hardware.amdgpu = {
+        amdvlk = {
+          enable = false;
+          support32Bit.enable = true;
+        };
+        opencl.enable = false;
       };
-      opencl.enable = false;
-    };
-    hardware.graphics = {
-      extraPackages = attrValues {
+      hardware.graphics = {
+        extraPackages = attrValues {
+          inherit
+            (pkgs)
+            vulkan-tools
+            vulkan-loader
+            vulkan-extension-layer
+            vulkan-validation-layers
+            mesa
+            ;
+        };
+        extraPackages32 = [pkgs.driversi686
Linux.amdvlk];
+      };
+      boot = {
+        initrd.kernelModules = ["amdgpu"];
+        kernelModules = ["amdgpu"];
+      };
+      environment.systemPackages = [pkgs.nv
topPackages.amd];
+      services.xserver.videoDrivers = mkDef
ault ["modesetting" "amdgpu"];
+    }
+    (mkIf gpu.lact.enable {
+      boot.kernelParams = ["amdgpu.ppfeatur
emask=0xfffd7fff"];
+      environment.systemPackages = attrValu
es {
         inherit
           (pkgs)
-          vulkan-tools
-          vulkan-loader
-          vulkan-extension-layer
-          vulkan-validation-layers
-          mesa
+          lact
+          unigine-heaven
+          unigine-superposition
           ;
       };
-      extraPackages32 = [pkgs.driversi686Li
nux.amdvlk];
-    };
-    boot = {
-      initrd.kernelModules = ["amdgpu"];
-      kernelModules = ["amdgpu"];
-    };
-    environment.systemPackages = [pkgs.nvto
pPackages.amd];
-    services.xserver.videoDrivers = mkDefau
lt ["modesetting" "amdgpu"];
-  };
+
+      systemd = {
+        packages = [pkgs.lact];
+        services.lactd = {
+          wantedBy = ["multi-user.target"];
+          unitConfig = {
+            Description = "GPU Control Daem
on";
+            After = ["multi-user.target"];
+          };
+        };
+      };
+    })
+  ]);
 }
 

diff --git a/modules/nixos/hardware/options.nix b/modules/nixos/hardware/options.n
ix
index 864eba3..1e85597 100644
--- a/modules/nixos/hardware/options.nix
+++ b/modules/nixos/hardware/options.nix
@@ -18,6 +18,7 @@ in {
         type = nullOr (enum ["intel" "amd" "nvidia"]);
         default = null;
       };
+      lact.enable = mkEnableOption "Enable amd tuning software lact";
     };
 
     cpu = {

diff --git a/modules/nixos/hardware/options.
nix b/modules/nixos/hardware/options.nix
index 864eba3..1e85597 100644
--- a/modules/nixos/hardware/options.nix
+++ b/modules/nixos/hardware/options.nix
@@ -18,6 +18,7 @@ in {
         type = nullOr (enum ["intel" "amd" 
"nvidia"]);
         default = null;
       };
+      lact.enable = mkEnableOption "Enable 
amd tuning software lact";
     };
 
     cpu = {
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET