Hello SebDoe,[color="#444444"] Do you have a reproducer app that we could test on our end?[/color]This will help us identify what the problem is, what the solution may be, and any workarounds that may be of use. Thanks in advance, McGeagh
Some initial thoughts ...I assume each thread has it's own GLES context, and you are trying to get some kind of streaming load working?Exchange of surface and buffer data across contexts in GLES is not automatically synchronized; each context gets its own command stream and it will only be synchronized if you force it to be so. Do you have any synchronization in your application to ensure the glCopyTex call has actually run before you use the image in the other thread? As a simple test if you insert a glFinish after the call to glCopyTex, and only use the EGL image in the other thread after that call, does it work correctly? You can build something as a non-blocking equivalent using EGL fences. As a footnote - if you could cut down your application into a standalone test case it does make it much easier for us to help - the devil in most cases is in the detail, and if we can't see exactly what you are doing it is often very hard to reproduce, especially in cases with multiple contexts or threads!HTH, Iso
Is the glFlush();glFinish() an acceptable fix or is it preferable to use other mechanism ?
Is that behaviour specific to Mali-T604 as that was not needed on Mali-400 or even other GPU ?