feat(nix): add ROCm runtime patches for gfx1151

- Added two patches to the ROCm runtime: `rocr-runtime-gfx1151-vgpr.patch` and `rocr-runtime-kernel-stack-size.patch`.
- Fixes compatibility issues, ensures better kernel support, and mitigates potential crashes on older kernels.
This commit is contained in:
Harald Hoyer 2026-02-17 10:40:15 +01:00
parent 00f66d7fd8
commit b85719077d

View file

@ -96,6 +96,39 @@
allowUnfree = true; allowUnfree = true;
}; };
channels.unstable.overlays = [
(final: prev: {
rocm-runtime = prev.rocm-runtime.overrideAttrs (prevAttrs: {
patches = (prevAttrs.patches or [ ]) ++ [
(final.fetchpatch {
# [PATCH] hsakmt: bump vgpr count for gfx1151 (#1807) (#1986)
# We apply only the change that adds a GFX_VERSION_GFX1151 define but
# *not* the default vgpr change which causes crashes on old kernels
# This was later partially reverted in # [PATCH] Revert "hsakmt: bump vgpr count for gfx1151 (#1807) (#1986)"
name = "rocr-runtime-gfx1151-vgpr.patch";
url = "https://github.com/ROCm/rocm-systems/commit/09ba45b3f43ec333a84a0ca178fcd1e3ea9400a9.patch";
relative = "projects/rocr-runtime";
includes = [ "libhsakmt/src/libhsakmt.h" ];
hash = "sha256-/V5i+sr88n7fK4yNjR/FpY0ZpiEG5xAD6Oq+9ZOikd4=";
})
(final.fetchpatch {
# [PATCH] hsakmt: Expose and use CWSR and Control stack sizes (#2200)
# Fixes potential mismatches between stack sizes configured in amdgpu kernel module
# and userspace by relying on kernel value when available
# Falls back to hardcoded size based on ISA if kernel is too old. For gfx1151, also prints:
# WARNING: KFD ABI 1.20+ is recommended … This may result in faults, crashes and other application instability
# This allows new kernels to work with this runtime detection mechanism
# Only gfx1151 warns loudly because only it has had the size updated in kernel…
name = "rocr-runtime-kernel-stack-size.patch";
url = "https://github.com/ROCm/rocm-systems/commit/7037a71f311c021974fafd13727dfefd8a1cc79d.patch";
relative = "projects/rocr-runtime";
hash = "sha256-EbDxuEvNu0fyQJZmqq0fbcCdNtaEWUbmyPLvcfqDPjc=";
})
];
});
})
];
homes.modules = with inputs; [ neovim-flake.homeManagerModules.default ]; homes.modules = with inputs; [ neovim-flake.homeManagerModules.default ];
systems.modules.nixos = with inputs; [ systems.modules.nixos = with inputs; [