libretro / libretro/RetroArch

[Feature Request] Super Resolution

Open
#12,705 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

Hello,

Any chance you'd implement a super resolution option in RetroArch?

Basically, allowing to use a bigger framebuffer than the native display resolution, for instance 2x ect. that would be then downscaled to native using a simple bilinear filter.

This would greatly improve the CRT shaders quality. For instance on a 4K TV the CRT Royale shader looks great for sources around 320x240, but for sources around 640x480 you'd need a 8K TV - or super resolution 2x on a 4K TV.

I've done testing of super resolution and found that the shaders actually looks way better: Streaming my 4K PC to a 1080p screen result in a image quality way superior than native 1080p using CRT Royale for 320x240 content. I only imagine it would work for 8K to 4K too - for 640x480 content.

This would also allow for better integer scaling as it will result in sharp pixels yet using less borders.

I think it would be very simple to implement: Just adding an option for a scaling factor (1x = off, 2x etc.), initializing the framebuffer taking into account this factor, and finally displaying the framebuffer fullscreen with a bilinear downscale.

I'm aware that you could do the same system wide with NVidia DSR, but for many users it's completely broken - including on my setup: DSR 4x = 8192x4320 instead of 7680x4320 and results in a cropped image - no fix found and I've tried many options.

Thanks!

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 or tests are named. Start by tracing RetroArch's framebuffer allocation and fullscreen presentation paths, then determine where a scaling factor and bilinear downscale would fit. Done means supporting a larger framebuffer that is downscaled to the native display resolution while preserving the requested shader and integer-scaling benefits.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
computer-graphics
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.