diff --git a/AGENTS.md b/AGENTS.md index 4556f40..e9319a4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -234,7 +234,7 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine new major kernel. - VRAM booster (`vram`, `lib/vram-booster.sh`, top-level, ticked by default, 2.3.0; only available when `/sys/fs/cgroup/dmem.capacity` lists a - region): CachyOS's `dmemcg-booster` (system + user service) and + VRAM region of at least 2 GB): CachyOS's `dmemcg-booster` (system + user service) and `plasma-foreground-booster`, like SteamOS 3.9's VRAM management. The latter only starts with `kcgroupsrc [Foreground Booster] autostart=true` (set with `kset`). Disable removes only the packages it installed diff --git a/CHANGELOG.md b/CHANGELOG.md index 2eeb285..d44d7fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ one per merged pull request. ## 2.3.0 - 2026-09-27 -- **feat: VRAM booster for every supported GPU, not only the Steam Machine** +- **feat: VRAM booster only for GPUs with at least 2 GB of their own VRAM** +- `3f97c85` **feat: VRAM booster for every supported GPU, not only the Steam Machine** - `fd162c1` **feat: New badge for default sub-options added in this version** - `54ebddf` **feat: VRAM booster for the Steam Machine** diff --git a/TECHNICAL.md b/TECHNICAL.md index ca5b3c6..b24155c 100644 --- a/TECHNICAL.md +++ b/TECHNICAL.md @@ -244,7 +244,8 @@ most of the VRAM (8 GB on the Steam Machine) can be pushed into system RAM by the desktop and other apps, and stutter. The kernel side is the `dmem` cgroup controller (7.2); amdgpu and Intel's xe register their VRAM with it, NVIDIA's driver doesn't. The **VRAM booster** option is only shown when -`/sys/fs/cgroup/dmem.capacity` lists a region (or it's already on), and is +`/sys/fs/cgroup/dmem.capacity` lists a VRAM region of at least 2 GB (a +dedicated GPU; an integrated one registers a small carve-out) or it's already on, and is ticked by default; new in 2.3.0, so setups with the SteamOS conversion on get it ticked. CachyOS packages the userspace side, which it installs: diff --git a/lib/vram-booster.sh b/lib/vram-booster.sh index 3a5619a..f0a37c2 100644 --- a/lib/vram-booster.sh +++ b/lib/vram-booster.sh @@ -4,7 +4,7 @@ # are evicted first, so a game that needs most of it doesn't spill into # system RAM and stutter. The kernel side is the dmem cgroup controller # (7.2; amdgpu and xe register their VRAM, NVIDIA's driver doesn't), so it's -# only offered when the kernel lists a region. CachyOS packages the userspace +# only offered when the kernel lists a VRAM region of at least 2 GB. CachyOS packages the userspace # side: dmemcg-booster (a system service that enables the controller and # sets the limits, plus a user service) and plasma-foreground-booster, which # tells it which window is in front on the desktop. The latter only starts @@ -12,10 +12,13 @@ # Sourced by steamify.sh; not meant to be run on its own. VRAM_PKGS=(dmemcg-booster plasma-foreground-booster) +VRAM_MIN_BYTES=$((2 * 1024 * 1024 * 1024)) vram_available() { - # cgroupfs files have size 0, so read it. - grep -q . /sys/fs/cgroup/dmem.capacity 2>/dev/null || vram_status + # Only for a GPU with its own VRAM: an integrated GPU registers a small + # carve-out too, but mostly uses system RAM, so there's little to boost. + awk -v min="$VRAM_MIN_BYTES" '$1 ~ /\/vram$/ && $2 >= min { found = 1 } END { exit !found }' \ + /sys/fs/cgroup/dmem.capacity 2>/dev/null || vram_status } vram_status() {