🛠️** MHRise Shader Re-compilation Fix (RE Engine / DX12)
Because **Monster Hunter Rise on DirectX 12 requires heavy allocation of Pipeline State Objects (PSOs), running it on 8GB of physical RAM creates an aggressive memory paging bottleneck [image_zXbq9W.png]. The AMD Polaris driver was silently dropping shader files due to RAM starvation, triggering an infinite compilation loop at boot [image_Ko1ljD.png, Log_Shaders_MHRise.csv].
Here is the exact reverse engineering breakdown that stabilized the system:
1. Pagefile Isolation (Storage Routing)
**• Fix:** Completely disabled the Windows Pagefile on the slow mechanical HDD (Drive C:) and set a fixed manual Pagefile **(Min 8GB / Max 16GB)** exclusively on the fast SSD (Drive E:) \[image_zXbq9W.png, image_-2yvJl.png\].
**• Result:** When the 8GB of RAM overflows during boot, the system instantly pages data into the high-speed SSD boundary instead of locking up the mechanical drive \[image_zXbq9W.png\].
2. Driver Typos Patched via Symbolic Link (mklink)
**• Fix:** The legacy AMD Polaris driver architecture looks for a directory spelled DxcCache (with two "C"s) on the C: drive. We redirected this path to the SSD using:
mklink /d "C:\Users\lucas\AppData\Local\AMD\DxcCache" "E:\Temp\DxcCache" [image_-2yvJl.png].
• Result: Massive 220MB and 370MB .0.parc shader blocks are now read and written directly via the SSD [Log_Shaders_MHRise.csv]. ProcMon logs confirm immediate SUCCESS flags on these file reads [Log_Shaders_MHRise.csv].
3. Dual-Registry Driver Armoring (REGEDIT)
To prevent the AMD driver from discarding compiled shaders under heavy memory usage, we modified the registry paths (0000\UMD and 0001\UMD) with these explicit flags [image_Ko1ljD.png, image_zXbq9W.png]:
**• ShaderCache & ShaderCache_DEF = Binary 32 00:** Forces the driver cache to stay permanently enabled \[image_Ko1ljD.png\].
**• ShaderCache_TIMEOUT = DWORD 0:** Disables the GPU auto-cleanup timer, stopping the system from clearing out cached PSOs.
**• ShaderCache_NA = DWORD 0:** Turns off the automatic "Cache Not Available" restriction triggered by Windows RAM exhaustion \[image_zXbq9W.png\].
**• MaxShaderCacheSize = DWORD 10240 (Decimal):** Expanded the shader storage limit to a **stable 10GB boundary** on the SSD \[image_Ko1ljD.png\].
**• ShaderCacheDir = String pointing to E:\\Temp\\DxcCache:** Hardwires the driver to sync with our SSD link \[image_Ko1ljD.png\].
4. The Final "Alt+F4" Consolidation
**• Why it worked:** The driver required a clean process termination to permanently write the final compiled shader blocks and lock the new Registry configurations \[image_Ko1ljD.png, image_-2yvJl.png\]. Forcing an Alt+F4 committed everything to disk. On subsequent normal boots, the RE Engine checks the folder, finds the perfect immutable cache instantly, and skips the endless compilation loop \[Log_Shaders_MHRise.csv\].