RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.37k stars 1.91k forks source link

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

Open MercuryAmalgam opened 1 month ago

MercuryAmalgam commented 1 month ago

Quick summary

A less blurry implementation of bilinear output scaling

Details

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

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

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

Please consider implementing this feature

MercuryAmalgam commented 3 weeks ago

Got a new PS3 - so made a comparison between integer, bilinear on RPCS3 at 720p and an actual PS3 As you can see at native res RPCS3 on bilinear is more blurry, on integer it's way pixelated - no mode matches the PS3's output Increasing internal res improves things, but requires more resources and can have glitches Scaling