Hardware shader produces severe graphic bug, disabling it drops the FPS way down

Just like I described in the title, I try to play Ocarina of Time 3D in my TCL T Pro and this is what happens with Hardware Shader enabled (I already tried enabling accurate shader multiplication and disabling disk shader cache, since I read enabling the latter causes bugs related to RAM usage):

As it can be seen, with Hardware Shader enabled the FPS and speed are just fine (well, at least it looks like the N64 version of the game), but all the 3D models (backgrounds are unaffected) have their textures all “unfolded”, covering almost all of the screen. When I disable the Hardware Shader, this is what happens:

The textures now display correctly, but there are 4 to 6 FPS outdoors and 11 to 13 FPS indoors. What could I do to improve both bugs-free graphics and speed at the same time? And please, don’t insist in telling me to buy a better phone, I bought this one I’m using in mid-september this year, so if it doesn’t meet some requirements, just say so and then I’ll give up (I spent already a full day of research trying to solve the problem on my own).

System Information

  • Operating System: Android 10
  • CPU: I think it’s a Spreadtrum SC9863A, if I remember correctly
  • GPU:
  • Citra Version (found in title bar): bed6a4f12
  • Game: The Legend of Zelda - Ocarina of Time 3D
  • Screenshot of Issue (include the full Citra window including titlebar):

Diagnostic Log
This is the log for the first screenshot:
citra_log.txt (42.6 KB)

And this one, for the second screenshot (it’s labeled “old” because I took a look at a setting in Citra and a new log was created):
citra_log.txt.old.txt (49.2 KB)

In order for us to provide better support, we need to see the log generated by Citra. This guide will walk you through how you can obtain the log file: How to Upload the Log File.

Whilst I cannot say this with absolute certainty, I’m pretty confident that the issue stems from your SoC’s GPU, the PowerVR Rogue GE8322. PowerVR is known for having absolute dog crap OpenGL drivers, so having them run at any decent speed is a good indication of them cutting corners in the rendering. Which would explain why hardware shaders is bugging out. I’m afraid there isn’t anything you can do about this.