eglGetDisplay(EGL_DEFAULT_DISPLAY) Fails on Android 15, Causes SurfaceFlinger Crash (Works on Android 14)

I’m migrating a platform from Android 14 to Android 15 using the same kernel (5.10) and GPU vendor driver stack (libEGL.so, libGLESv2.so, etc.). This stack worked without issues on Android 14.

However, on Android 15, the following EGL initialization fails:

EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);

This call returns EGL_NO_DISPLAY, and shortly after, SurfaceFlinger crashes, preventing the UI from coming up. Logs show an EGL driver error related to context creation:

IMGSRV: PVRSRVTimelineCreate[TA]() failed (PVRSRV_ERROR_INVALID_DEVICE) in RGXCreateRender

Driver: PowerVR GX6650

Observations:

  • The GPU driver (pvrsrvkm) is loaded successfully (lsmod shows the module).

  • RenderEngine is using SkiaGL (Ganesh backend) in Android.

  • AOSP points to the correct driver (powervr).

  • The same configuration worked without issue on Android 14.

Has anyone successfully reused an Android 14 GPU driver stack on Android 15? If so, were any changes needed in the graphics pipeline (SkiaGL, EGL, RenderEngine, etc.) to get EGL initialization working?

Any insights or suggestions would be highly appreciated. Thank you!

Thanks.

Hi JRanj,

Thanks for your email and welcome to the PowerVR Developer Forum!

One possible test you could do is test our PowerVR SDK OpenGL ES samples under Native_SDK/examples/OpenGLES at master · powervr-graphics/Native_SDK · GitHub

Specially the OpenGL ES sample HelloAPI Native_SDK/examples/OpenGLES/01_HelloAPI at master · powervr-graphics/Native_SDK · GitHub

Best regards,
Alejandro

Hi @AlejandroC, Thanks for the quick reply.

I’ll try running the HelloAPI sample from the PowerVR SDK to see how it behaves on our Android 15 port. However, since the board isn’t fully booting due to the EGL-related crash, I’m unsure how far I’ll be able to proceed with the test.

Thanks and regards,

JRanj