Hi guys,
I use RetroArch on GNU/Linux only, framebuffer only, mainly in ARM-based SBCs. On the Raspberry Pi, there’s very good GLES support, but other boards lack half decent open-source GLES libraries, such as the ones based on Allwinner A20 (Banana Pi, Cubieboard 1, 2 and Cubietruck, etc) and the ones based on Samsung Exynos where the framebuffer GLES libs perform poorly and show artifacts. However, I went and added some RA native 2D API drivers for the A20 boards, and LiquidAcid did the same with the Exynos boards, thus gaining great performance and smooth screen updates with advanced multiple buffering, etc. The problem is that this rendering route leaves the fragment shaders out of reach, so we’re restricted to software filters in machines with not much CPU power to “waste”. At least a simple scanlines filter would be very useful, as it greatly improves how these games look, in my opinion. The available soft filters in gfx/video_filters are too demanding and there isn’t a simple scanlines filter there either, so I’m trying to modify one to create my own scanlines filter. I chose the darken.c one, and simply applied the darkening in odd lines, for example. The result was an image with thick scanlines, because these filters are applied to the image before the hardware does the scaling, I believe, so it’s not what’s needed. My opinion now is that it’s impossible to implement a good scanlines soft filter without processing the final scaled image, because a correct scanline implementation should depend on the physical screen resolution to avoid “patterns”. Any thoughts? Is that possible at all for a software filter like the ones in gfx/video_filters?