No description
Find a file
2026-07-27 23:23:42 -04:00
dev Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
docs Mon Jul 27 11:23:42 PM EDT 2026 2026-07-27 23:23:42 -04:00
dual-gpu-fg Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
gamescope-framegen Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
scripts Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
yolkooboost Mon Jul 27 11:10:33 PM EDT 2026 2026-07-27 23:10:33 -04:00
ARCHITECTURE.txt Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
Makefile Mon Jul 27 10:45:53 PM EDT 2026 2026-07-27 22:45:53 -04:00
README.md Mon Jul 27 11:10:33 PM EDT 2026 2026-07-27 23:10:33 -04:00

YolkooBoost

Dual-GPU frame generation and upscaling for Linux games. Render a game at a lower resolution and framerate on one GPU, then let a second GPU (the one driving your display) upscale it with FSR and generate in-between frames with MCFI (motion-compensated frame interpolation) for a smoother picture. The goal is to help older or slower PCs put out a steady 60 fps.

It works by running games inside a patched build of gamescope, so it needs no per-game mods and no changes inside the game. A small Qt app, YolkooBoost, sets everything up for your Steam games.

The YolkooBoost interface

What you get

  • YolkooBoost (yolkooboost): a GUI that detects your GPUs, lists your installed Steam games, and turns the effect on or off per game by writing the right Steam launch options for you.
  • A patched gamescope (gamescope): the compositor that does the compositing, FSR upscaling, and frame generation on the display GPU.

Requirements

  • Linux with two GPUs, where one drives your display. The display GPU becomes the compositor; the other renders the game. (A single-GPU machine can still run it, but the point is the split.)
  • Steam (games are launched through it).
  • An X11 or Wayland desktop session.
  • For make deps: a Debian-based distribution (Debian, Ubuntu, Mint, Pop!_OS). On other distributions, install the equivalent packages by hand; make deps prints the list.

Build and install

make deps       # check for, and offer to install, the build dependencies
make            # build the patched gamescope and the launcher
sudo make install

make builds two things. The launcher is quick. The compositor is a patched gamescope built from source: the first build clones a fixed, verified release of gamescope (3.16.25, pinned by commit) with its submodules from GitHub, so it needs a network connection and takes a while.

The patched compositor installs under its own name, yolkooboost-gamescope, so it never conflicts with a gamescope your distribution may already provide. Install goes to /usr/local by default. To install elsewhere:

sudo make install PREFIX=/opt/yolkooboost

To remove everything:

sudo make uninstall

Using it

  1. Launch YolkooBoost (from your application menu, or run yolkooboost).
  2. The top shows your compositing GPU. This is fixed: it is whichever GPU drives your display, and it is where upscaling and frame generation happen. Its PCIe link is shown for reference. Pick your rendering GPU (the one the game renders on) from the dropdown.
  3. Tick a game in the list to enable YolkooBoost for it. Settings appear on the right: FSR upscaling with a render and output resolution, frame generation, and a hold-back setting. The defaults (upscaling on at 1280x720 to 1920x1080, frame generation on, hold-back 1) are a good starting point. Everything is per game.
  4. Click Apply. Steam stores launch options in a file it only rewrites when it closes, so YolkooBoost offers to close Steam, makes the changes, and offers to restart it. Your original launch options, if any, are saved and restored if you later turn a game off.
  5. Launch the game from Steam as normal.

Installed a new game while YolkooBoost is open? Click Refresh to pick it up without restarting. Refresh keeps any changes you have not applied yet.

Settings, briefly

  • Upscaling (FSR): the game renders at the render resolution and is scaled to the output resolution on the display GPU. Rendering fewer pixels is where most of the speedup comes from.
  • Render / output resolution: the game sees the render resolution as its screen size, so it renders there natively. No in-game setting needed.
  • Frame generation (MCFI): generates in-between frames on the display GPU to reach your display's refresh rate.
  • Hold-back: 1 frame is lowest latency. 2 frames is smoother if a game dips well below 30 fps, at the cost of one extra frame of input latency.

Notes

  • No conflict with system gamescope: the patched compositor installs as yolkooboost-gamescope, a separate binary, so an existing distribution gamescope is left untouched. It only needs PREFIX/bin (by default /usr/local/bin) to be on your PATH, which is the norm.
  • Pinned version: the compositor is built from gamescope 3.16.25 at a fixed commit, verified after cloning. If upstream ever moves the tag, the build stops rather than build something unverified. To try a different release, override GAMESCOPE_TAG and GAMESCOPE_COMMIT when building the compositor.
  • Older distributions: if your distribution's Wayland or pixman libraries are too old to build gamescope 3.16.25 against, you may need to build those libraries into a local prefix. In that case, point YolkooBoost at the prefix so the launched gamescope can find them, either with the YOLKOOBOOST_GAMESCOPE_PREFIX environment variable (set to the lib directory) or by writing that path into ~/.config/yolkooboost/gamescope-prefix. On current distributions this is not needed.
  • Real-time frame pacing: install grants cap_sys_nice to gamescope so the frame pacer can use real-time scheduling. It still runs without it, just without that scheduling priority.

More detail

ARCHITECTURE.txt documents how the whole thing works, why it is built on gamescope rather than a Vulkan layer, and every non-obvious constraint that shaped it. dev/ holds maintainer-only scripts and is not part of the build.