ValveSoftware / ValveSoftware/Proton
Leverage deduplication for prefixes to reduce wasted storage space
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 32.8k
- Forks
- 1.6k
- PR merge metrics
- PR metrics pending
Description
Feature Request
I confirm:
- that I have checked whether there are updates for my system available that contain this feature already.
- that I haven't found another request for this feature.
Suggestion
Instead of creating a prefix from scratch for each game, create a basic master prefix for each Proton version which you then only (sym-, hard-, ref-) link to for each game.
Justification [optional]
I've run rmlint -g on my currently ~30GB sized compatdata folder (68 prefixes) and it turned out that ~20GB of space are taken up by duplicate files. It would probably also speed up the first launch game setup.
Risks [optional]
Depending on which type of link you use to copy the files, certain risks present themselves. You might not want changes to the files in the master prefix to automatically propagate to all the linked game prefixes as it would with symlinks. So the most fitting link type would probably be reflinks, which only few file systems support (BTRFS). But you can just do cp --ref‐link=auto and it would already fall back on a plain copy, if the file system doesn't support reflinks.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by locating the Proton code that creates and initializes per-game prefixes, then review the discussion around reflinks, fallback copies, and isolation between games. Done means prefixes can reuse a per-Proton-version master without unsafe propagation and retain a workable fallback on unsupported filesystems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100