Forums - Adreno 320 (Nexus 4) unsing OGLES 2 multisampling freez the phone

8 posts / 0 new
Last post
Adreno 320 (Nexus 4) unsing OGLES 2 multisampling freez the phone
Timo apps-on-air
Join Date: 17 Apr 13
Posts: 4
Posted: Wed, 2013-04-17 16:19

When enabling multisampling with the egl config chooser on an Nexus 4 device there is a high probability that the OpenGL context freezes when you destroy the EGL context or even when the orientation of the device is changed without context loss sometimes the eglSwapBuffer command leads to an freez of the GPU driver.

Best way to reproduce the error is starting any OpenGL ES 2.0 code and using a egl config with multisampling enabled. Start the app and change the orientation several times. After 1-5 orientation changes the freez will happen. You can use this app to verify the problem: http://code.google.com/p/gdc2011-android-opengl/ (After downloading the code open the GDC11Activity.java file and set kUseMultisampling = true. Start the app on a Nexus 4 device and change the orientation several times.

Best regards

Timo

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Thu, 2013-04-18 08:43

Thanks very much for reporting this.  By chance, do you have the built apk we can take a look at?

 

 

  • Up0
  • Down0
Timo apps-on-air
Join Date: 17 Apr 13
Posts: 4
Posted: Fri, 2013-04-19 03:57

Yes of course. I uploaded the APK file to this location: http://apps-on-air.de/private/GDC11Activity.apk

As i mentioned above to reproduce the error just switch several times between portrait and landscape orientation.

This issue only occures on the Nexus 4 from my available test devices but i do not have an other device with adreno 320 GPU so may be there is the same problem too.

Best regards

Timo

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Fri, 2013-04-19 07:45

Hi TImo - Many thanks for the apk and bringing this to our attention.  Was able to confirm that there is a problem as well - it's a good use case, no doubt related to the EGL content,  I'll make sure this gets address by either our driver or display team(s).

 

  • Up0
  • Down0
Timo apps-on-air
Join Date: 17 Apr 13
Posts: 4
Posted: Mon, 2013-04-22 01:02

Thank you for investigating this issue. Actually for me this issue means i have to disable MSAA for all devices. It would be nice to know how many devices are affected so i could only disable MSAA on this devices. Maybe only the Nexus 4 or all devices with Adreno 320 GPU.

Please take into consideration that this crashes do not only occure during orientation change. Switching the orientation is just a good way to reproduce the issue.

Regards

Timo

  • Up0
  • Down0
Join Date: 5 Nov 12
Posts: 2
Posted: Wed, 2014-01-22 23:39

I have the same issue as described.

Nexus 4, Android 4.2.2.

Using GLSurfaceView + EGLConfigChooser.

EGL:

MSAA - Config (crashing after 1-4 orientation change):

{EGL10.EGL_RENDERABLE_TYPE, EGL10.EGL_WINDOW_BIT , EGL10.EGL_RED_SIZE, 4, EGL10.EGL_GREEN_SIZE, 4, EGL10.EGL_BLUE_SIZE, 4, EGL10.EGL_DEPTH_SIZE, 16,  EGL10.EGL_SAMPLES, 4, EGL10.EGL_NONE};

Default - Config (working):

{EGL10.EGL_RENDERABLE_TYPE, EGL10.EGL_WINDOW_BIT , EGL10.EGL_RED_SIZE, 4, EGL10.EGL_GREEN_SIZE, 4, EGL10.EGL_BLUE_SIZE, 4, EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE};

Other details:

onSurfaceCreated will not get called, at all.

The crash also occurs when I enable "force MSAA" in developer options.

Any work around ?

 

  • Up0
  • Down0
Timo apps-on-air
Join Date: 17 Apr 13
Posts: 4
Posted: Sat, 2014-01-25 03:52

Unfortunately i did not found any workaround neither i was able to reliable detect devices with this issue.

So i decided to turn off MSAA

  • Up0
  • Down0
RelativeGames
Profile picture
Join Date: 16 Apr 13
Posts: 56
Posted: Sat, 2014-01-25 21:01

Did you try making an FBO with MSAA and rendering it's (resolved) contents to the backbuffer ?

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.