Forums - EGL_Sync_KHR crash

3 posts / 0 new
Last post
EGL_Sync_KHR crash
rory.yin
Join Date: 18 Oct 13
Posts: 3
Posted: Fri, 2013-10-18 02:10

i am designed an APP used openGLES2.0 at android. it crashed when running for several minutes. the dump file shows that it is crashed at 

eglClientWaitSyncKHR --> rb_test_fence. this APP runs quite well on other GPU like powerVR and mali.

further look it shows that the returned GLSync number keep increased even though it does have a eglDestroySync been called to recycle the GLSync in the APP.

it there anything wrong about the SYNC entention implemention at adreno driver?

ps:

GL renderer: Adreno(TM) 320

GL Version = openGLES2.0 [email protected] AU@ (CL@3090659)

 

APP program sequence:

thread1:

        do some rendering

        glCreateFenceKHR()

        glFlush()

 

thread2:

    glClientWaitSync()

    glDestroySync

 

thread3:

    glClientWaitSync()

 

 

  

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Fri, 2013-10-18 15:16

Hi..

A few questions about the problem with glCreateFence, so that we can better answer..

1) What device are you seeing the crash on?  Can you provide the logcat, and specifically the line which mentions the build number:

(e.g.)

<qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_3.2.04.03.00.112.154_msm8974_JB_3.2__release_AU ()

2) Is there an apk that you could provide us that duplicates the crash?

3) Are you calling glFenceSync, and/or how is the sync object being created?

4) Could you provide any more details on some of the flags/tokens that are being used in the calls?

4) Is glClientWaitSync equivalent to eglClientWaitSyncKHR, and glDestroySync equivalent to eglDestroySyncKHR?

 

thanks,

mark

  • Up0
  • Down0
rory.yin
Join Date: 18 Oct 13
Posts: 3
Posted: Sun, 2013-10-20 19:21

hi, 

thanks for your kindly help.

the content i provied in the PS has some errors. since gles2.0 doesn't support gl_sync_arb,  all function i used about sync is EGL_sync extension.

APP program sequence:

thread1:

        do some rendering

        eglCreateFenceKHR(display, EGL_SYNC_FENCE_KHR, NULL)

        glFlush()

 

thread2:

    eglClientWaitSync(display, sync, EGL_SYNC_FLUSH_COMMANDS_BIT_KHR, 10*1000*1000*1000)

    eglDestroySync

 

thread3:

      eglClientWaitSync(display, sync, EGL_SYNC_FLUSH_COMMANDS_BIT_KHR, 10*1000*1000*1000)

 

i might have found out the root cuase. when i move my eglDestroySync to the same thread as eglCreateSync, no issue happened again. seems that the driver has some restriction that createSync and destroySync should be put at the same thread.

any way, thanks for you kindly reply!

 

 

 

 
  • 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.