Opened 6 months ago

Closed 13 days ago

#15144 closed feature request (worksforme)

FSR/DLSS/XeSS Upscaling

Reported by: Haravikk Owned by: sev-
Priority: normal Component: Graphics: Scalers
Version: Keywords:
Cc: Game:

Description

I would love to see the ability for ScummVM to apply newer upscaling methods to games, so we can improve how some of them will look on larger displays.

My understanding is that FSR, DLSS and XeSS are all implemented as shaders that can be applied to the final frames, so no support is needed within a game's own engine, which should make it possible to enable at least the basic versions of these upscaling methods as a generic user-configurable feature for any supported game.

AMD's FSR is the most widely supported of the three, as DLSS is NVidia specific, and I believe XeSS is Intel specific, so it would be the most obvious one to attempt first. However all three work in essentially the same way (to the extent that many games that only support one can support the others via a simple DLL swap).

The basic version of all three simply focuses on upscaling individual frames, while the later versions (FSR 2 etc.) are able to give better results if they can be provided with accurate motion vectors indicating how individual pixels are expected to move between frames. This would likely be more complex however since I doubt it would be easy to do in a generic way, so I would suggest focusing on FSR 1 as a starting point.

When it was released, Baldur's Gate 3 only supported basic FSR, but the results were still extremely good, allowing the game to be run on a 4k display while rendering at 1080p on modest hardware, giving a much crisper result than rendering at 1080p and letting the display apply basic upscaling. While some displays do have fancier upscaling built in, most don't, so an option in ScummVM would still be a useful improvement.

Many ScummVM compatible games like Zork Nemesis suffer from low resolutions, and basic scaling (bicubic etc.) does them no favours, but with modern scalers it may be possible to get them looking a bit better on larger/higher resolution displays.

Change History (1)

comment:1 by sev-, 13 days ago

Owner: set to sev-
Resolution: worksforme
Status: newclosed

We already support GLSL shaders, so you may implement any of the mentioned shaders in this format and then it will work. There could be differences in video card support, but in general, this is already possible to do without code changes to ScummVM.

Note: See TracTickets for help on using tickets.