Skip to content

[Feature Request] Sharp bilinear filtering implementation for output scaling #16001

Open
@MercuryAmalgam

Description

@MercuryAmalgam

Quick summary

A less blurry implementation of bilinear output scaling

Details

There are 3 output scaling options present in RPCS3 at the moment:

  • Nearest - only really works if your display matches or has 2x the resolution of the output resolution
  • Bilinear - blurrier than the 720p output of a real PS3 displayed on a TV
  • FSR1 - rounds off sharp corners on all sharpness settings

For users who can't or prefer not to use increased resolution scaling (due to performance, visual glitches etc.) - there is no output mode setting that could present a nicely scaled picture without excessive blurring (bilinear), shimmer (nearest) or scaling artifacts (FSR1) on 1080p displays in most games

Other emulators such as Duckstation, PCSX2, Dolphin and others - have a "sharp bilinear" output filtering implementation
It works by maintaining the sharpness of an integer scaling while performing some blending to reduce shimmering artifacts

  • What part of RPCS3 would be affected by your feature? (Gameplay, Debugging, UI, Patches, Installation, CI etc.)
    Game visuals, output scaling method implementation + UI option

  • Why your feature is important to RPCS3.
    It would allow users with displays that don't match the output resolution (usually 720p) or can't use resolution scaling to enjoy a sharp image without apparent scaling artifacts

  • If the feature is implemented in other projects, attach screenshots.
    The feature can be found at the very least in the Duckstation, PCSX2 and Dolphin emulators:
    Dolphin
    Duckstation
    PCSX2

Here is an example implementation for another project, with source code:
https://github.com/rsn8887/Sharp-Bilinear-Shaders

Please consider implementing this feature

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions