Hi everyone! Got my Pi 5 a week ago and have been testing RetroArch on it. Running it via 64-bit RetroPie (installed manually on RPi OS Lite Bookworm via the RetroPie-Setup script). Things are working fine, but I did run into a peculiar thing when testing shaders. zfast-crt shader runs very quickly, which is to be expected. My tests seem to indicate that it executes in around 1 ms. Since I like crt-aperture, I decided to give it a go, even though it’s much more demanding. To my disappointment, it ran awfully, despite the Pi 5’s ~200% faster GPU (compared to the Pi 4). By coincidence, I was playing around with the scaling/aspect ratio settings while crt-aperture was active and suddenly noticed that it was running at 60 FPS.
Testing around with the scaling settings, it turns out that enabling integer scaling and 6:5 aspect ratio (not “Custom” + 6x and 5x, but the actual 6:5 setting in the list) did the trick. With some additional tests done, it seems as if some of the aspect ratio settings provide marked performance increases over others. Here’s a bunch of tests run with lr-snes9x on the title screen of Yoshi’s Island:
- Integer scale=off, Aspect ratio: Core provided, no shader: 442 FPS
- Integer scale=off, Aspect ratio: Core provided, crt-aperture: 47 FPS
- Integer scale=on, Aspect ratio: Core provided, crt-aperture: 67 FPS
- Integer scale=on, Aspect ratio: 4:3, crt-aperture: 67 FPS
- Integer scale=on, Aspect ratio: 6:5, crt-aperture: 74 FPS
- Integer scale=on, Aspect ratio: 1:1 PAR, crt-aperture: 77 FPS
- Integer scale=on, Aspect ratio: Custom, 6x, 5x, crt-aperture: 44 FPS
[As a bonus, I tried crt-easymode as well. It seems to execute at around twice the speed of crt-aperture, making it quite reasonable to use on the Pi 5, atleast for some emulators.]
While I expect that there might not be much to do about this, it would be great if anyone in the know would comment. Is it expected behavior? I am guessing it could be memory bandwidth related. In my initial testing, it seems the performance is only affected if shaders are also active. Without shaders, I couldn’t see any difference with the different scaling settings.
All testing carried out with the glcore driver, slang shaders and 1920x1080 resolution.