Beetle PSX HW - Android 64bit - SnapDragon 845 performance

Hi there

I just bough a Xiaomi Pocophone. It has a SD845 which I thought it would be enough for PSX emulation with Beetle PSX HW in RetroArch64 Android. I also have a Shield TV with which I can go up until 4X resolution (PGXP out of the quesiton, of course) and be full speed. With the Pocophone I can only get full speed at 1x. Both the Shield and the phone have the same core version : Beetle PSX 0.9.44.1 5359198

As core options, I am using Hardware rendering and everything else default. I tried both Vulkan and OpenGL. I tried frame duping, no real difference. I have tried Sustained Performance mode in RA and the different game booster modes of the phone… no difference, only full speed at 1X resolution. This is what I don’t get so good also, if I’m able to reach 1x and I am using Hardware rendering, reaching 2X at full speed should not be such an issue, right? Am I doing something wrong here or did I overestimate the performance of these Android devices? Anyone experience running Beetle PSX HW in any of the latest SnapDragon chipsets?

OK, I have a suspicion the Hardware Rendering option is not taken into account.

I have tried Crash Bandicoot, in title screen:

Beetle PSX HW (Hardware rendering): 1x: Full Speed 4x: 35fps

Beetle PSX HW (Software rendering): 1x: Full Speed 4x: 35fps

I also downloaded Beetle PSX (the no HW version) just in case: Beetle PSX: 1x: Full Speed 4x: 35fps

All versions and options are full speed at 1x in game also (at least first stage). Results are pretty much identical with software/hardware rendering option. Again, NVIDIA Shield TV is happy at 4X with Beetle PSX HW and Vulkan. Any idea or should I just log a bug?

I’ve noticed that these devices don’t have same specifications exactly. I’m not sure about that but NVidia Shield has a NVIDIA Tegra X1 as GPU where Xiaomi Pocophone has an Adreno 630.

Maybe there are a big difference in performance when using hardware acceleration.

Have you tried PCSX reARMed? This core is optimized for ARM architecture based devices…

arm (32 bits) is not aarch64 (64 bits)

1 Like

Indeed, i could use Pcsxrearmed with 32bit Retroarch. I have a lot of respect for that emulator but honestly I thought with this device i should be able to use Beetle HW with Retroarch 64 and still benefit of features like 4X resolution and increased accuracy. What bothers me is not being able to do it in the Pocophone while I can do it on the Shield… Yes, they are very different devices but the Adreno 630 is supposedly faster than the X1… I have seen benchmarks of Dolphin for instance comparing both SoCs and showing the 630 was leading over the X1…

The differences might be in gpu drivers polishing, i would expect the nvidia gpu drivers to be a lot more polished overall, while qualcomm gpu drivers might be good on all the vulkan/opengl instructions used by dolphin but not on all those in use by other emulators.

Actually, from what i saw in dolphin code, there is code targeted specifically at qualcomm gpu, so it might have undergone specific optimizations for qualcomm gpu drivers.

I guess drivers could be indeed the reason… Do you know if these optimisation in Dolphin are specific or more generic (could be somehow reused)?

I’m no GL/VK expert so i won’t be able to go in depth. I just now as a fact that some rendering code will work better with specific gpu vendors, and that’s generally something poorly documented at best (in most case, you just won’t know without contacting someone directly involved with the gpu vendor driver).