Thanks for the replies. It is good to know I'm not the only one that
pulled out some hair recently.

I almost stumbled upon the answer, but happened to not pick a working
EGLConfig several times when testing late Sunday. I got things working
rather well now and have an interface similar to Google's
GLSurfaceView for choosing configs with a default implementation that
will match exact parameters provided. It also allows multiple
attribute parameter sets to cascade in order. I found that for
performance it's necessary to select an EGLConfig with EGL_DEPTH_SIZE
of 24 as this is the only setting that renders at 60 FPS on the Droid
from my current observations. For note the EGLConfig selected (R:5, G:
6, B:5, A:0, D:24, S:8) does not have EGL_NATIVE_RENDERABLE set to
true.

I also took the time to bolster the Typhon / GL configuration / setup
procedure with a bunch of error checking. I also worked things out so
that I can pop up a dialog before all (almost all?) crashes with very
specific GL error information and prevent the generic forced closed
dialog from showing. This allows users to put this data in an email
and send it to the given developer. I also added extension checking
and validating other requirements such as searching the vendor string,
and min/max GL versions searching the version string. Any failures
pops up an informative dialog box rather than a blank screen or
generic forced closed dialog. See some screen shots here:
http://typhon.egrsoftware.com/errata/android-developers-11.09.09-droid-gl-config-issues.zip

In a future release "beta 1" of Typhon I'll probably make it possible
for the dev to register the app name, dev name, dev email contacts,
dev phone number, and such and provide facilities to directly email
the debug information or perhaps call the dev if there is a hotline
directly from the GL error message dialog. I hate to say it, but with
the plethora of devices soon available it'll be a little bit of a
nightmare making sure things work adequately across the board, so
having users submit GL error and device data for any given device is a
good
thing.

Anyway.. I'll make a post on dev list when all the code and initial
tutorials are released. I'm pushing for early next week w/ at this
point as I want to get a bunch of Android 2.0 info in the mix like
some of what is in this email.

On Nov 9, 4:37 am, ernestw <[email protected]> wrote:
> I bet if you looked at the EGL_CONFIG_CAVEAT attribute, the RGBA8888
> configs will be EGL_NON_CONFORMANT_CONFIG.  Passing
> EGL_CONFIG_CAVEAT=EGL_NONE as your desired configuration should filter
> out the RGBA8888 configs assuming my assertion is true.

This is not true on the Droid. On the G1 there are severalEGLConfigs
that return EGL_NON_CONFORMANT_CONFIG.
Interestingly enough all of the EGL_NATIVE_RENDERABLE EGLConfigs on
the G1 and Droid come back as EGL_SLOW_CONFIG!
So the assumption that EGL_NATIVE_RENDERABLE == true is not holding up
it seems.


On Nov 9, 11:18 am, a1 <[email protected]> wrote:
> Well, yes, I was also thinking about using EGL_NATIVE_RENDERABLE but
> without access to device it's just pure speculation.

It was pure speculation unfortunately as while EGL_NATIVE_RENDERABLE
appears to be a valid attribute you can choose EGLConfigs that don't
return true with EGL_NATIVE_RENDERABLE and then one EGLConfig (R:5, G:
6, B:5, A:0, D:16) which works fine with the G1 and on the Droid even
returns EGL_NATIVE_RENDERABLE as true simply fails when making the
context current with EGL_BAD_ACCESS. I now catch this though and show
a meaningful dialog.

> It'll be great if someone with access to DROID can make small app which will 
> list all available configs and print them (with all config
> flags).

See this zip file for a brief text file showing common parameters of
all supported EGLConfigs:
http://typhon.egrsoftware.com/errata/android-developers-11.09.09-droid-gl-config-issues.zip

>But there is one more trap, my game uses depth buffer so in my config template 
>I also added DEPTH_SIZE, 16, on
>droid eglChooseConfig will list folowing:

It seems that DEPTH_SIZE of 24 is optimum on the Droid. I was kind
thrown back a bit when I picked an EGLConfig with DEPTH_SIZE of 0 or
another value (16, etc.) and rendering of a simple cube was at 40FPS.
With an EGLConfig that has a DEPTH_SIZE of 24 the cube was rendering
at 60FPS.

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