Okay, once more: eglCreateContext() returns WITH NO ERRORS and returns a value != EGL_NO_CONTEXT.
On Fri, Aug 3, 2012 at 7:06 PM, RichardC <[email protected]> wrote: > P44 > If the OpenGL or OpenGL ES server context state for share context exists in > an address space that cannot be shared with the newly created context, if > share - > context was created on a different display than the one referenced by > config, or if > the contexts are otherwise incompatible (for example, one context being > associated > with a hardware device driver and the other with a software renderer), then > an > EGL_BAD_MATCH error is generated. If the server does not have enough > resources > to allocate the new context, then an EGL_BAD_ALLOC error is generated. > > On Friday, August 3, 2012 5:52:56 PM UTC+1, Latimerius wrote: >> >> Hm, where did you get that from? I don't see anything optional about >> the share_context param of the eglCreateContext() call in EGL spec. >> >> Certainly I don't see anything in the spec that allowed for >> eglCreateContext() with share_context!=EGL_NO_CONTEXT to return a new >> context with no error, but subsequent eglMakeCurrent() on that context >> to fail with BAD_MATCH. >> >> The resources argument does not make much sense either - at least not >> in my case if you take into account that a procedure that is identical >> except that it does *NOT* attempt to share resources runs just fine, >> with no errors (but is slow obviously as it has to re-upload all the >> resources that should have been shared). >> >> On Fri, Aug 3, 2012 at 3:41 PM, RichardC <[email protected]> >> wrote: >> > Just a comment on "buggy" drivers. The EGL spec does not REQUIRE a >> > driver >> > to support any form of context sharing. It does ALLOW a driver to >> > support >> > context sharing if it has the resources (both hardware and software) to >> > do >> > so. The driver is REQUIRED to return specific error codes if fails to >> > do >> > what was requested. >> > >> > The implications of this are: >> > >> > that a driver may choose not to allow context sharing at all. If the >> > correct errors are returned, the driver is a conforming implementation. >> > on a particular device, calls to share contexts may succeed or fail >> > depending on the resources that have already been consumed by other >> > programs. >> > >> > >> > >> > On Friday, August 3, 2012 1:49:52 PM UTC+1, Latimerius wrote: >> >> >> >> On Fri, Aug 3, 2012 at 12:38 AM, Romain Guy <[email protected]> >> >> wrote: >> >> >> Well, keep in mind that you can't issue GL calls from a thread >> >> >> different than the rendering thread (well unless you play games with >> >> >> multiple EGL contexts sharing resources which doesn't even seem to >> >> >> work on the incomplete/buggy EGL implementation on Android). >> >> > >> >> > It works, WebView is (or used to) rely on this feature. You might be >> >> > running into a driver specific bug though. >> >> >> >> That's definitely good to hear, although very few people seem to know >> >> how to achieve it. I asked about it a few weeks ago, with no reply: >> >> >> >> >> >> >> >> https://groups.google.com/forum/?fromgroups#!searchin/android-developers/egl/android-developers/BHH08ak8MRA/mXaHFPNKMl8J >> >> >> >> It came up again a couple of days ago on android-ndk in this thread: >> >> >> >> >> >> >> >> https://groups.google.com/forum/?fromgroups#!searchin/android-ndk/egl/android-ndk/V3VpH65tpqA/blOrbldg7j0J >> >> >> >> The consensus seems to be it doesn't work. Note also a link there to >> >> a Mozilla dev blog post, he also comes to the conclusion context >> >> sharing doesn't work on Android. >> >> >> >> As far as a buggy driver goes - could be. One thing I know is that >> >> the failing behaviour was consistent across a bunch of Adreno >> >> 200/SGX540 devices with Android 2.1 or 2.2. I'm not sure anymore if I >> >> specifically tested it on Xoom/Honeycomb but if I did, it did not work >> >> there either. >> >> >> >> Is there a specific incantation to make it work? From my reading of >> >> the EGL spec, it should be as simple as passing the existing context >> >> to eglMakeContext() as the shared context argument... >> >> >> >> Thanks! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

