gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
754 stars 174 forks source link

Anisotropic Filtering not working #2751

Open Marcelo20XX opened 1 year ago

Marcelo20XX commented 1 year ago

Seems exactly the same problem as #505 ...

Tested on latest nightly version: GLideN64-cb6e6cb-Windows-Mupen64Plus-CLI-x64

gonetz commented 1 year ago

Yes, anisotropic filtering support was broken many years ago. I found the commit, which broke it completely: adc2b547e88 I added shader-based implementation for bilinear filtering in that commit. Before that commit, shader-based bilinear filtering was used only for N64 3-point filtering. "Standard" filtering mode used standard hardware linear texture interpolation. Anisotropic filtering worked with standard bilinear filtering, but never worked with N64 3-point one. I'm not sure, why shader-based texture filtering breaks anisotropic filtering. My guess is that it causes "non-uniform flow control", see https://www.khronos.org/opengl/wiki/Sampler_(GLSL)

blackhand1001 commented 1 year ago

Is there anything that can be done to fix this. Like an option or something to use the old standard filtering. Cause the current texture handling is quite ugly, especially on tiled floors like in goldeneye when compared to the old Glide64 plugin which handles the filtering correctly.

gonetz commented 1 year ago

Like an option or something to use the old standard filtering.

It would be very hard and ugly to do. The code evolved greatly since that moment.