Feature: Optionale Verlegung des Mesa/DXVK-Shader-Caches

Neue Variable SHADER_CACHE_DIR in config/setup.conf erlaubt es, den
Mesa- (RADV/OpenGL) und DXVK-Shader-Cache (Wine/Proton) auf einen
separaten Speicherort zu verlegen, um Nachcompilierungs-Ruckler nach
Neustarts zu vermeiden. Standardmäßig leer, damit kein hartkodierter
Pfad (z. B. /mnt/Data) vorausgesetzt wird - ohne Angabe bleiben Mesa
und DXVK bei ihren eigenen, überall vorhandenen Cache-Pfaden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017WMUd2fGsPCtTCVQkSS5TA
This commit is contained in:
2026-09-06 22:53:36 +02:00
co-authored by Claude Sonnet 5
parent 7932bb2482
commit 7296489c11
4 changed files with 31 additions and 2 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ Dieses Repository ist ein modulares, automatisiertes Setup- und Konfigurations-F
├── stages/ # Sequenziell und modular ausführbare Phasen (00 bis 11)
│ ├── 00-preflight.sh # Systemvoraussetzungen, Root/User-Erkennung, Internetverbindung
│ ├── 01-apt-unstable.sh # Deb822-Quellen, Keyrings, Pinning, apt-listbugs, dist-upgrade
│ ├── 02-kernel-hardware.sh # XanMod-Kernel, CPU P-State, Microcode, auto-cpufreq
│ ├── 02-kernel-hardware.sh # XanMod-Kernel, CPU P-State, Microcode, auto-cpufreq, Shader-Cache-Pfad
│ ├── 03-bootloader.sh # GRUB Kernel-Parameter, Vimix-Theme, Plymouth Solar
│ ├── 04-packages.sh # Installation der thematischen Paketlisten
│ ├── 05-fonts.sh # Download & Installation von Coding- & Nerd-Fonts
+4 -1
View File
@@ -109,7 +109,7 @@ Installiere nur bestimmte Phasen (z. B. nur Paketlisten und Schriften):
│ ├── sources.list.d/ # debian-unstable.sources, xanmod.sources
│ └── preferences.d/ # Pinning-Konfigurationen (unstable, xanmod)
├── etc/
│ ├── environment.d/ # 99-raytracing.conf, 99-upscaling.conf
│ ├── environment.d/ # 99-raytracing.conf, 99-upscaling.conf (99-shader-cache.conf wird optional zur Laufzeit generiert)
│ ├── gamemode.ini # GameMode Performance-Daemon Defaults
│ ├── polkit-1/rules.d/ # 90-corectrl.rules (passwortlose CoreCtrl-Freigabe für sudo-Gruppe)
│ └── profile.d/ # Bereinigte System-Profile-Skripte
@@ -160,6 +160,9 @@ Installiere nur bestimmte Phasen (z. B. nur Paketlisten und Schriften):
### vkBasalt (Vulkan-Postprocessing)
- ReShade-ähnliche Vulkan-Postprocessing-Shader (Contrast Adaptive Sharpening als Standard) mit vorkonfigurierter `~/.config/vkBasalt/vkBasalt.conf`. Aktivierung pro Spiel über die Steam-Launch-Option `ENABLE_VKBASALT=1 %command%`; Status wird von MangoHud mit angezeigt.
### Persistenter Shader-Cache (optional)
- Standardmäßig bleiben Mesa (RADV/OpenGL) und DXVK (Wine/Proton) bei ihren eigenen Cache-Pfaden (`~/.cache/mesa_shader_cache`, `~/.cache/dxvk`). Wird `SHADER_CACHE_DIR` in `config/setup.conf` gesetzt (z. B. auf eine separate/schnelle Festplatte), verlegt `stages/02-kernel-hardware.sh` beide Caches dorthin, um Nachcompilierungs-Ruckler nach Neustarts zu vermeiden.
### CPU P-State & Kernel-Parameter
In `stages/03-bootloader.sh` wird der CPU-Hersteller automatisch ermittelt und in `/etc/default/grub` eingetragen:
- **AMD CPUs**: `amd_pstate=active`
+8
View File
@@ -23,6 +23,14 @@ GRUB_TIMEOUT_STYLE="menu"
# Shell & Userland
DEFAULT_SHELL="zsh"
# Gaming: Persistent Shader Cache (Mesa & DXVK)
# Optional relocation of the shader/pipeline cache onto separate/bulk storage.
# Leave empty to keep Mesa's and DXVK's own default cache locations
# (~/.cache/mesa_shader_cache, ~/.cache/dxvk) - recommended unless you have a
# specific reason (small root disk, dedicated fast scratch drive, ...).
# Example: SHADER_CACHE_DIR="/mnt/Data/Software/mesa_shader_cache"
SHADER_CACHE_DIR=""
# Ollama AI Configuration
# Suggested custom models path, pre-filled only if the user declines
# Ollama's own default storage location (/usr/share/ollama/.ollama/models).
+18
View File
@@ -120,6 +120,24 @@ if compgen -G "$SCRIPT_DIR/data/etc/environment.d/*.conf" > /dev/null; then
done
fi
# 6. Persistent Shader Cache Location (Mesa & DXVK) - optional relocation
if [[ -n "${SHADER_CACHE_DIR:-}" ]]; then
log_substep "Configuring custom Mesa/DXVK shader cache location..."
TARGET_USER="${TARGET_USER:-$(prompt_target_user)}"
mkdir -p "$SHADER_CACHE_DIR"
chown -R "$TARGET_USER:$TARGET_USER" "$SHADER_CACHE_DIR"
cat <<EOF > /etc/environment.d/99-shader-cache.conf
# Persistent Mesa (RADV/OpenGL) & DXVK (Wine/Proton) shader/pipeline cache,
# relocated off the system disk to avoid re-compilation stutter after reboots.
MESA_SHADER_CACHE_DIR=$SHADER_CACHE_DIR
DXVK_STATE_CACHE_PATH=$SHADER_CACHE_DIR
EOF
chmod 0644 /etc/environment.d/99-shader-cache.conf
log_success "Shader cache directory set to $SHADER_CACHE_DIR"
else
log_info "SHADER_CACHE_DIR not set - keeping Mesa's and DXVK's own default shader cache locations."
fi
create_timeshift_snapshot "Stage 02: Post-kernel and hardware tuning" "O"
log_success "Stage 02: Kernel and Hardware Tuning completed successfully!"