libretro / libretro/RetroArch

Feature request: Implement scale_type "original" / scale_type "passX" for shader presets

Open
#14,440 0 comments 0 reactions 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

When developing shaders, it's often faster to have pre-processing passes that output a certain resolution (the resolution of your LUT, for example). There's the scale_type "absolute" for this purpose.

However, for passes that follow the pre-processing passes, there is no adequate way to control output size.
Scale_type "source" is clearly not what is wanted: The LUT size is often completely independent of actual content being rendered.
Scale_type "viewport" will only allow the passes rendering at exactly the output resolution to use pre-processed passes sensibly, as they can have output sizes tied to the viewport.
Scale_type "absolute" is not flexible enough to solve this use case.

Expected behavior

I would like to have more control over output sizes, namely one of the following:

  • Implement scale_type "original", which refers to the input size. This allows all N pre-processing passes to happen at the very top, with the N+1th pass to use scale_type "original". This gives complete freedom but enforces a certain structure.
  • Implement scale_type "passN" (or "alias ") which would scale relatively to either that pass index, or the aliased pass with that name. This would give complete freedom, and pre-processing shaders could be woven into the pipeline at arbitrary stages.
Version/Commit

Feature not yet implemented as of tag v1.10.3

Environment information

Irrelevant as this is a feature request.

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

The issue identifies no source files, tests, or entry points; first locate the shader preset scale-type handling and existing absolute, source, and viewport behavior. Before coding, clarify whether completion means supporting original, passN, or a named alias, then verify that the selected form controls downstream pass output sizes as described.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.