libretro / libretro/RetroArch

[Feature Request] "Performance Mode" for Shaders (Static Parameter Optimization)

Open
#18,625 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

I would like to request a "Performance Mode" for the shader system, similar to the feature found in ReShade.

The Concept

In ReShade, "Performance Mode" takes all currently set shader parameters and "bakes" them into the shader code as constants rather than uniforms. This allows the GPU driver to optimize the shader pipeline more aggressively during compilation.

Proposed Implementation

  1. Toggle: A toggle in the "Shaders" menu labeled "Shader Performance Mode."
  2. UI Behavior: Parameter sliders are hidden or locked, as they require a re-compile to change.

Benefit

This would provide significant performance gains on hardware-constrained devices (Android, low-end PCs, handhelds) when using complex, multi-pass shaders like CRT-Royale or HSM Mega Bezel.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the shader system and the Shaders menu, then determine how parameters are represented and how shader recompilation is triggered. Done means a toggle can bake current parameters as constants, prevents edits that require recompilation, and benefits shader-heavy configurations such as CRT-Royale or HSM Mega Bezel.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
computer-graphics, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.