Skip to content

Overwatch 2 shader pre-cache: Fossilize processing reaches 22–23 GB RAM and triggers kernel OOM on AMD RADV #312

Description

@OscarNE

Your system information

  • Steam client version (build number or date): 1785799196 (updater built Aug 3 2026 19:41:02)
  • Distribution (e.g. Ubuntu): Fedora 44 x86_64
  • Opted into Steam client beta?: [No/Yes — fill in whichever applies]
  • Have you checked for system updates?: Yes
  • Steam Logs: Attached steam-logs.tar.gz
  • GPU: AMD Radeon 8060S Graphics (RADV STRIX_HALO)
  • Mesa/RADV version: 26.1.5
  • RAM: 32 GB
  • Swap: 8 GB
  • Steam package: steam-1.0.0.87-1.fc44.x86_64
  • Steam installation: native RPM, not Flatpak

Please describe your issue in as much detail as possible:

Steam's Vulkan shader pre-cache processing for Overwatch 2 (AppID 2357570) consumes enough memory to trigger the Linux kernel OOM killer.

This happens after Steam downloads a very large shader pre-cache update for Overwatch, typically around 7.7–7.8 GB. The shader cache for the game is currently around 20 GB.

When launching Overwatch after one of these updates, Steam starts "Processing Vulkan shaders". During this step, Fossilize processing causes memory usage to increase rapidly until the Steam systemd scope reaches approximately 22–23 GB of RAM plus 5.6–6.9 GB of swap.

The kernel then invokes the OOM killer.

I reproduced this twice.

Example from the kernel journal:

fossilize_repla invoked oom-killer
oom-kill:constraint=CONSTRAINT_NONE,...task=steamwebhelper,...
Out of memory: Killed process ... (steamwebhelper)

The Steam systemd scope reported:

22G memory peak, 6.9G memory swap peak

On a second reproduction:

23G memory peak, 5.6G memory swap peak

Although steamwebhelper is selected as the OOM victim, the OOM event is invoked while fossilize_replay is processing shaders.

The large shader downloads themselves also appear unusual.

For example, on Aug 7 Steam fetched this Overwatch shader depot manifest:

depot 2357570
manifest 6609622657499593884

and reported:

AppID 2357570 update started :
download 0/8358791040,
store 0/0,
reuse 0/0,
delta 0/0,
stage 0/8654737796

Downloading 8262 chunks for depot 2357570 (6609622657499593884)

The update is therefore approximately 8.36 GB, with no reuse of the existing shader depot.

This is not caused by the shader cache disappearing locally. I tested the following:

The Overwatch shader cache persists across Steam restarts.
The shader cache persists unchanged across system reboots.
Restarting Steam alone does not trigger the large shader download.
Rebooting alone does not consistently trigger it.
The same AMD RADV GPU and Mesa driver version are detected across restarts.
Playing Overwatch normally only added approximately 41 MB of locally generated shader/pipeline data during one controlled test.
Previous shader updates completed successfully and Steam logged No Error.
The large downloads correspond to different shader depot manifests being fetched over time.

Examples of Overwatch shader manifests seen in content_log.txt include:

Aug 1: 3982154249147922408
Aug 1: 4522040602233616070
Aug 2: 4410828186603408475
Aug 3: 8417511099525765166
Aug 3: 3989655507765154361
Aug 4: 5671954022025020705
Aug 4: 664729108608036419
Aug 7: 6609622657499593884

The current large Fossilize cache includes a pipeline cache approximately 8.6 GB in size:

steamapps/shadercache/2357570/
fozpipelinesv6/
steamapprun_pipeline_cache.f8e37139bec012fd/
steam_pipeline_cache.foz

Expected behavior:

Shader pre-cache processing should not consume enough RAM and swap to trigger the system OOM killer on a machine with 32 GB of RAM.

Ideally, frequently updated shader depots should also reuse existing content where possible instead of requiring another multi-gigabyte download with reuse 0/0.

Disabling Steam Shader Pre-Caching avoids the problematic Fossilize processing, but also disables the feature globally.

Possibly related issues:

ValveSoftware/steam-for-linux#10285 — repeated multi-gigabyte Steam downloads
ValveSoftware/steam-for-linux#8076 — repeated shader cache downloads/compilation

My case differs from ValveSoftware/steam-for-linux#8076 because the problem is not reliably triggered by every reboot. This report is mainly about the reproducible OOM during Fossilize processing of the large Overwatch shader cache.

Steps for reproducing this issue:

  1. Enable Steam Shader Pre-Caching.
  2. Install Overwatch 2 (AppID 2357570) and run it through Proton on AMD RADV.
  3. Allow Steam to download the current large Overwatch shader pre-cache update (~8 GB).
  4. Launch Overwatch.
  5. Steam starts "Processing Vulkan shaders".
  6. Observe RAM and swap usage increasing rapidly while Fossilize processes the shader cache.
  7. On this 32 GB RAM / 8 GB swap system, the kernel eventually invokes the OOM killer and Steam terminates.

Relevant log files:
steam-fossilize-oom.txt
steam-logs.tar.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions