ata4 / angrylion-rdp-plus

A low-level N64 video emulation plugin, based on the pixel-perfect angrylion RDP plugin with some improvements.
158 stars 25 forks source link

feature request / performance enhancement -hardware VI? #38

Closed fallaha56 closed 3 years ago

fallaha56 commented 6 years ago

we're all always chasing faster performance ;) so a quick question

based on the assumption that traffic is always one way (RDP pipelines ->VI ?valid) would it be possible to use OpenGL hardware to do the grunt work of the VI?

possibly even port in code from GLideN64 or ParaLLEl to do it?

ata4 commented 6 years ago

I had that thought as well, which is one of the reasons why I chose OpenGL 3.3 instead of 1.x or 2.x.

The problem is to implement it correctly. As far as I know, GLideN64 and ParaLLEl only have pseudo VI shaders, which add even more blur than Angrylion, although I have my doubts that even Angrylion's implementation is 100% correct on both PAL and NTSC.

But yeah, once the frame buffer is on the GPU, it doesn't need to be returned back to the CPU, except for taking screenshots. So in theory, all VI processing could be done efficiently on hardware.

fallaha56 commented 6 years ago

thanks for the info -i'd say 'great minds' re: OGL3 vs 1 but i'm too much of a programming amateur(!)

re: GLideN64, you might already know it but this might be useful? seems to have had major FBE / VI code refactoring recently: http://gliden64.blogspot.co.uk/2017/04/major-modification-of-frame-buffer-and.html

ata4 commented 6 years ago

Yeah, I've seen that article before. It's definitely an interesting read, but it's mostly about finding the correct frame buffer size for HLE, which isn't really an issue for LLE plugins. However, the VI does a few more things, such as anti-aliasing, gamma correction, interpolation and upscaling, which produces the characteristic "blurry" N64 look.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.