Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Horizontal Downsampling #17

Open
Finatra opened this issue Nov 20, 2020 · 10 comments
Open

Horizontal Downsampling #17

Finatra opened this issue Nov 20, 2020 · 10 comments

Comments

@Finatra
Copy link

Finatra commented Nov 20, 2020

Hello, amazing work you’ve done here; thank you so much.

I noticed that downsampling only functions vertically. Horizontal resolution is always maintained, resulting in non-square pixels.

This is a great feature and I’m happy to have it, but I’m surprised that that Downsampling on both axes is not the default.

Is there any hope of adding this?

Thank you for all your work.
Regards

@Themaister
Copy link
Owner

Downsampling is in both dimensions. By default, N64 output is 640x240 after VI scanout

@Finatra
Copy link
Author

Finatra commented Jan 25, 2021

If that’s the case, then why do I see increasing horizontal resolution moving down this list of settings, while vertical resolution stays constant:

  • 1x Supersampling with 1/1 Downsampling
  • 2x Supersampling with 1/2 Downsampling
  • 4x Supersampling with 1/4 Downsampling
  • 8x Supersampling with 1/8 Downsampling

@Themaister
Copy link
Owner

That sounds weird, how are you observing this increasing horizontal resolution?

@Finatra
Copy link
Author

Finatra commented Jan 25, 2021

I don’t have access to my computer right now, otherwise I would upload a screenshot.

The horizontal resolution increases because the aspect ratio of each pixel decreases.

The Pixel Aspect Ratio (PAR) decreases with each of the settings above like this:

  • 1:1 PAR, 320x240 Observable Resolution
  • 1:2 PAR, 640x240 Observable Resolution
  • 1:4 PAR, 1280x240 Observable Resolution
  • 1:8 PAR, 2560x240 Observable Resolution

This is using a GTX 980 Ti.

*edited since aspect ratio is usually expressed as x:y

@Finatra
Copy link
Author

Finatra commented Jan 25, 2021

I should add that I play with the VI Bilinear filter disabled

@Themaister
Copy link
Owner

Did you restart core after changing the scaling factor?

@Finatra
Copy link
Author

Finatra commented Jan 26, 2021

Yes, I fully restart RetroArch

@Themaister
Copy link
Owner

Well, it does the right thing for me.

Screenshot from 2021-01-26 20-59-15

With 4x upscale -> 1/4 downscale. 2390x896 is scaled down to 597x224 as expected. The odd horizonal resolution is cropping.

@Finatra
Copy link
Author

Finatra commented Jan 26, 2021

I will take some screenshots and upload my config.
It might be a day or two until I can.

@Finatra
Copy link
Author

Finatra commented Jan 31, 2021

So, I was partly mistaken about what I was seeing.

You can see that 1x with no downscaling retroarch shows square pixels.
2x, 4x, and 8x using 1/2, 1/4, and 1/8 downscaling respectively show rectangular pixels.

This doesn't make sense to me since I would expect that downscaling an image by the same factor that it was upscaled by would return you to the same number of pixels you started with, represented by 1x.

But clearly there are twice as many pixels horizontally after downscaling than if you never upscaled to begin with, which is why it looks like the x and y axes are not scaled the same.

1x
1x
2x
2x
4x
4x
8x
8x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants