Skip to content

Commit

Permalink
Update module: star-citizen
Browse files Browse the repository at this point in the history
* Add option gplAsync.enable (default's false).
    This option changes dxvk to use dxvk-gplasync instead

* Add option gplAsync.package
  • Loading branch information
LovingMelody committed May 7, 2024
1 parent 4b03ea6 commit 6b5b307
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 27 deletions.
45 changes: 30 additions & 15 deletions modules/nixos/star-citizen/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,41 @@ flake-self:
let
flake-packages = flake-self.packages.${pkgs.system};
cfg = config.nix-citizen.starCitizen;
smartPackage = pname:
if (builtins.hasAttr pname pkgs) then
pkgs.${pname}
else
builtins.trace
"Warning: pkgs does not include ${pname} (missing overlay?) using nix-citizen's package"
flake-packages.${pname};
in with lib; {
options.nix-citizen.starCitizen = {
enable = mkEnableOption "Enable star-citizen";
package = mkOption {
description = "Package to use for star-citizen";
type = types.package;
default = if (builtins.hasAttr "star-citizen" pkgs) then
pkgs.star-citizen
else
builtins.trace
"warning: pkgs does not include star-citizen, (missing overlay?) using nix-citizen's package"
flake-packages.star-citizen;
default = smartPackage "star-citizen";
apply = star-citizen:
star-citizen.override {
star-citizen.override (old: {
preCommands = ''
${cfg.preCommands}
${if cfg.helperScript.enable then
"${cfg.helperScript.package}/bin/star-citizen-helper"
else
""}
${if cfg.gplAsync.enable then "DXVK_ASYNC=1" else ""}
'';
inherit (cfg) postCommands location;

};
dxvk = if cfg.gplAsync.enable then cfg.gplAsync.package else old.dxvk;
});
};
gplAsync = {
enable = mkEnableOption "Enable dxvk-gplasync configs";
package = mkOption {
description = "Package for DXVK GPL Async";
default = smartPackage "dxvk-gplasync";
type = types.package;
};
};
location = mkOption {
default = "$HOME/Games/star-citizen";
Expand Down Expand Up @@ -55,12 +66,7 @@ in with lib; {
package = mkOption {
description = "Package to use for star-citizen-helper";
type = types.package;
default = if (builtins.hasAttr "star-citizen-helper" pkgs) then
pkgs.star-citizen-helper
else
builtins.trace
"warning: pkgs does not include star-citizen-helper, (missing overlay?) using nix-citizen's package"
flake-packages.star-citizen-helper;
default = smartPackage "star-citizen-helper";
};
};
setLimits = mkOption {
Expand All @@ -78,6 +84,15 @@ in with lib; {
};
};
config = mkIf cfg.enable {
assertions = [
(mkIf cfg.gplAsync.enable {

assertion = lib.strings.versionAtLeast (smartPackage "dxvk").version
(smartPackage "dxvk-gplasync").version;
message =
"The version of dxvk-gplasync is less than the current version of DXVK, needed patches are missing";
})
];
boot.kernel.sysctl = mkIf cfg.setLimits {
"vm.max_map_count" = mkOverride 999 16777216;
"fs.file-max" = mkOverride 999 524288;
Expand Down
12 changes: 11 additions & 1 deletion overlays.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,17 @@ let
nix-gaming = inputs.nix-gaming.packages.${final.system};
in {
star-citizen-helper = prev.callPackage ./pkgs/star-citizen-helper { };
dxvk-gplasync = prev.callPackage ./pkgs/dxvk-gplasync { inherit pins; };
dxvk-gplasync = let
inherit (pins) dxvk-gplasync;
inherit (dxvk-gplasync) version;
in final.dxvk.overrideAttrs (old: {
name = "dxvk-gplasync";
inherit version;
patches = [
"${dxvk-gplasync}/patches/dxvk-gplasync-${version}.patch"
"${dxvk-gplasync}/patches/global-dxvk.conf.patch"
] ++ old.patches or [ ];
});
lug-helper = prev.callPackage ./pkgs/lug-helper { inherit pins; };
inherit (nix-gaming) star-citizen;
}
11 changes: 0 additions & 11 deletions pkgs/dxvk-gplasync/default.nix

This file was deleted.

0 comments on commit 6b5b307

Please sign in to comment.