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

Reply via email to