Crash glBlitFramebuffer() on PowerVR GE8320

Hello.

We are currently developing using Unreal Engine 5.5.4.
During playing, we encountered a crash that occurs only on devices with PowerVR GE8320 when change screen orientation.
The crash happens in glBlitFramebuffer() during screen rotation.

The occurred devices :

  • Realme C2 (RMX1941) – Android 9, OpenGL ES 3.2 build 1.10@5130912
  • Oppo A78 (CPH2483) – Android 12, OpenGL ES 3.2 build 1.10@5130912

Below is the crash backtrace that occurred when playing the engine template project with the OpenGL renderer on the Realme C2.

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Realme/RMX1941/RMX1941:9/PPR1.180610.011/1616400576:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 29871, tid: 30200, name: Thread-4  >>> com.YourCompany.MyProject <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4f0
Cause: null pointer dereference
    x0  0000000000000001  x1  000000000000302a  x2  0000000000000001  x3  00000070b4115600
    x4  0000000000000000  x5  00000070b4115420  x6  0000000000000010  x7  00000000ffffffff
    x8  0000000000000000  x9  0000000000000002  x10 0000000000000000  x11 000000000000302a
    x12 00000000000002d0  x13 0000000000000001  x14 0000000000000001  x15 aaaaaaaaaaaaaaab
    x16 000000710d69ecf8  x17 000000710d6dfba4  x18 00000071a15bb000  x19 00000070fc191780
    x20 00000070fc1997e8  x21 00000070fc11dc00  x22 00000070fc195c80  x23 0000000000000000
    x24 0000000000000000  x25 00000070b4115c08  x26 0000000000000000  x27 0000000000000000
    x28 00000070b4115c18  x29 00000070b4115af0
    sp  00000070b4115660  lr  000000710c91ed48  pc  000000710c91ed54

backtrace:
    #00 pc 0000000000015d54  /vendor/lib64/egl/libGLESv2_mtk.so
    #01 pc 0000000000015950  /vendor/lib64/egl/libGLESv2_mtk.so (glBlitFramebuffer+5320)
    #02 pc 00000000121b2cd0  /data/app/com.YourCompany.MyProject-Di88srMiG05wSnVmTvF9xw==/lib/arm64/libUnreal.so (offset 0xaa5f000)
    #03 pc 0000000012209524  /data/app/com.YourCompany.MyProject-Di88srMiG05wSnVmTvF9xw==/lib/arm64/libUnreal.so (offset 0xaa5f000) (FOpenGLDynamicRHI::UnlockTexture2DArray_RenderThread(FRHICommandListImmediate&, FRHITexture*, unsigned int, unsigned int, bool)+1200)
    #04 pc 000000000c8e0e54  /data/app/com.YourCompany.MyProject-Di88srMiG05wSnVmTvF9xw==/lib/arm64/libUnreal.so (offset 0xaa5f000)
    #05 pc 000000000c8ad5f0  /data/app/com.YourCompany.MyProject-Di88srMiG05wSnVmTvF9xw==/lib/arm64/libUnreal.so (offset 0xaa5f000) (GetTypeHash(FSamplerStateInitializerRHI const&)+40)

Hi liiyuu,

Thanks for your message, and welcome to the PowerVR Developer Forum!

The GPU driver version reported (1.10@5130912) is really old and there might be a possible driver issue. Unfortunately Imagination Technologies does not decide what GPU driver version runs on retail devices, but the SoC manufacturer does.

You might want to reach the SoC manufacturer in this regard, in case they are considering to update the GPU driver for those devices.

Best regards,
Alejandro

Hi AlejandroC, thanks for your reply.

First of all, our game targets support for a variety of devices with PowerVR GPUs. So we’re looking to properly address the issue.

Before contacting SoC manufacturer, we’d like to get a clearer understanding of the root cause of the driver issue. Could you help us investigate this further?
Also, if this is a known issue limited to specific driver versions, we’d appreciate any insights on potential workarounds.

One more thing we found is that the issue does not occur on this device.

  • Galaxy A12 (GE8320) - Android 11, OpenGL ES 3.2 build 1.13@5776728

Hi SeongbeomJeong,

Thanks for your message.

If the issue does not happen on a device with GPU driver version 1.13@5776728, I advice you consider this as the minimal version to allow your game to run. It is an old driver version as well. Many retail PowerVR devices will still have that version or a more recent one.

Best regards,
Alejandro