Learning Ogl And Shaders? This Can Be Of Use To You


darkblu

Active Member
Joined
Oct 6, 2008
Messages
640
Heya aspiring leet OGL coders,

The recent spike in OGL chatter on these boards coincided with the end of a phase of an old pet project of mine. Some of you may still remember from old discussions a home-brewed OGL testbed framework of mine - NTSH-JASS. Well, I dusted up the old framework a tad recently as I needed a similar tool on my job - i.e. something much lighter than a full-blown production engine, but still allowing for streamlined shader prototyping, and open-sourced.

So, the framework's status quo today is (loosely):

  • desktop OGL 3.x core profile -compliant code - no legacy pipeline stuff. Even though not true ES 2.0, code is *extremely* ES 2.0 friendly, except it targets the desktop.
  • Extremely lightweight - very simple abstraction layer on top of OGL.
  • Simple yet efficient scene graph abstraction - *not* a spatial hierarchy, but a scene-graph backend designed for draw batching control. You can slap you spatial hierarchy over it.
  • GLSL vertex and fragment shader -based flexible material system; actually, the material system is so flexible it practically does not exist. No, I'm not pulling your leg here - the material content and semantics are entirely a matter of agreement between client and shaders - the framework just provides a synchronization protocol between these two parties. As I mentioned, I needed a rapid shader prototyping environment.
  • The shader-client agreement extends to the vertex buffers - fully customizable vertex formats - your meshes do not have to fit a mold - they can feed your vertex shaders whatever you want.
  • Still, the framework offers reading (and some writing) of pre-established mesh formats - currently 3DS (partially read) and two custom formats - a simplistic ASCII one (read & write) and a full-featured production-quality one (read).
  • The framework is designed to give rich feedback information to the developer. Missing a shader parameter? You will be notified, in-you-face. Screwed up with the OGL state? You will be yield at.
  • The debug build of the framework is even harsher than that - asserts galore!
  • The release build has no fat or clutter - everything in the pipeline is production-quality lean - from the VBO implementation, to the shader support mechanism. I also needed to be able to measure the performance of shaders.
  • Project comes with a sample application - the actual testbed - it's entirely in main.cpp. A few GLSL shaders are also rolling around, mainly for mesh inspection/utility purposes.
  • Project builds (and actually is known to work) under OSX (10.4-10.6) and linux (with a sane OGL/ES/EGL driver, of course). The 3rd party libraries used are: GLUT, GLEW (needed only under linux), and Lib3ds. And that's all.
  • The framework is published on google code, under an MIT license, simply because google code does not offer a more permissive license. In practice the framework is public domain. You can use it in any way you see fit. Modify it, gut it, turn it inside-out. Use it in a commercial project. Don't publish your modifications - I don't really care. This is a 'hey, you might find this useful' freebie from me to you.
  • As such the project currently offers no documentation - if something is not clear from the headers and comments - check the cpp file. If something is not clear in the cpp file - sleep on it and read it again on the next day.

So, in case you think it could be of use to you - here's the repo (under mercurial - a kick-ass SCM). Good luck.

ps: I'll do a proper ES 2.0 version soon (tm).

update: done. screenshot from the GL ES2 testbed app, run on an actual SoC hw:
4816282292_0e7a675d8b_b_d.jpg

(I have no idea whom to credit for the model - I stumbled upon it on the internetz and thought it was pretty, so if somebody knows the origins of it - shout)

Dragons_Slayer's great Scrooge McDuck model from the 256x256x256 thread:
4896257383_9cdeca4c66_z_d.jpg
 
Last edited by a moderator:
darkblu said:
You will be notified, in-you-face. [snip] You will be yield at.
What are the benefits of using this over something like Rendermonkey?
 
Last edited by a moderator:
Mr.Confuzed said:
darkblu said:
You will be notified, in-you-face. [snip] You will be yield at.
What are the benefits of using this over something like Rendermonkey?
A bit different categories of software. Rendermonkey is an end-user shader editor meant for content creators. NTSH-JASS is integratable code meant for application developers - it's a bulding block, namely the back-end part of a rendering pipeline. Difference between the two is the same as between a calculator program and a math library. You can use NTSH-JASS to create your own 'rendermonkey' (which, apropos, is I plan to do next as another pet project of mine), or generally put arbitrary code on top of it. Even use it as the backend of your 3d engine. You have full control of how you use it (in scenarios that justify its use). Rendermoney is an end-product, with rich-but-finalized functionality. Also, rendermonkey is windows-bound - you can use it only on your desktop PC. NTSH-JASS, being a set of code, can be used everywhere you can get it to compiler/integrate with an app - say, on your Pandora (currently with some effort, soon - out of the box).
 
Last edited by a moderator:
I have a little request to those here lucky to already have their Pandoras. Below is a quick ES 2.0 shader benchmark app i hacked together not long ago (for another platform, but still should be ok on the Pandora). If somebody with a compiler and 10 minutes of spare time is willing to build and run that it'd be rather curious (we could do some cross-platform, cross-mobile-GPU comparisons):

version 1 (uses plain XWindow)
version 2 (uses XRandr for full-screen access)

The single shader used in the test was borrowed from a desktop-class app, so it would be rather heavy for a handheld (fragment part computes a tangent-space transform on the fly using the partial derivative functions of GLSL).

Following things may need fixing to get the code to build on Pandora:

  • in build.sh, linked-against libraries libgles20.so and libegl13X.so (i.e. the gles2 and egl flavors from the platform the benchmark originates from) need to be replaced with the ones in the current Pandora distro.
  • in app.cpp, the EGL- and ES-related includes (namely, <EGL/egl.h> and <GLES2/gl2.h>) may need to be replaced for those on Pandora (i suspect those header files have different names).

That's about it. Test prints a bunch of curious info about the host EGL and GL runtimes, so that could be of interest too if pastebin'd.

How to run a benchmark session: the app takes some command-line params, among which a frame count to run - set that to a reasonably big number (say, 1000 through 10000), and run the app through the 'time' standard utility - that should give you the time of the app session. Divide that by the number of frames you passed as parameter and that should give the average FPS of the session.

Thanks!
 
darkblu said:
I have a little request to those here lucky to already have their Pandoras. Below is a quick ES 2.0 shader benchmark app i hacked together not long ago (for another platform, but still should be ok on the Pandora). If somebody with a compiler and 10 minutes of spare time is willing to build and run that it'd be rather curious (we could do some cross-platform, cross-mobile-GPU comparisons):
<snippity snip>
I've just tried the Xwindows version.
Compile line changed to
Code:
arm-none-linux-gnueabi-gcc -o test_es -O2 app.cpp -DSUPPORT_X11 -DNDEBUG -I/usr/local/pandora/arm-2009q3/usr/include -L/usr/local/pandora/arm-2009q3/usr/lib -lstdc++ -lGLESv2 -lEGL -lIMGegl -lsrv_um -lX11 -lXdmcp -lXau
app.cpp needs modifying so that eglGetDisplay() is passed the X11 display rather than EGL_DEFAULT_DISPLAY (diff file in spoiler)
Code:
15c15
< 
---
> Display *x11Display;
251c251
< 	display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
---
> 	display = eglGetDisplay(x11Display);
1123c1123
< 	Display *display = XOpenDisplay(NULL);
---
> 	x11Display = XOpenDisplay(NULL);
1125c1125
< 	if (!display)
---
> 	if (!x11Display)
1131c1131
< 	const Window root = XDefaultRootWindow(display);
---
> 	const Window root = XDefaultRootWindow(x11Display);
1135c1135
< 	const unsigned w = 512, h = 512;
---
> 	const unsigned w = 256, h = 256;
1138c1138
< 	const Window window = XCreateSimpleWindow(display, root, x, y, w, h, border_width, border, background);
---
> 	const Window window = XCreateSimpleWindow(x11Display, root, x, y, w, h, border_width, border, background);
1142c1142
< 		XCloseDisplay(display);
---
> 		XCloseDisplay(x11Display);
1148,1149c1148,1149
< 	wm_protocols = XInternAtom(display, "WM_PROTOCOLS", False);
< 	wm_delete_window = XInternAtom(display, "WM_DELETE_WINDOW", False);
---
> 	wm_protocols = XInternAtom(x11Display, "WM_PROTOCOLS", False);
> 	wm_delete_window = XInternAtom(x11Display, "WM_DELETE_WINDOW", False);
1151c1151
< 	XSetWMProtocols(display, window, &wm_delete_window, 1);
---
> 	XSetWMProtocols(x11Display, window, &wm_delete_window, 1);
1153,1154c1153,1154
< 	XMapWindow(display, window);
< 	XFlush(display);
---
> 	XMapWindow(x11Display, window);
> 	XFlush(x11Display);
1163c1163
< 		while (processEvents(display, window) && nframes < max_frames)
---
> 		while (processEvents(x11Display, window) && nframes < max_frames)
1178,1179c1178,1179
< 	XDestroyWindow(display, window);
< 	XCloseDisplay(display);
---
> 	XDestroyWindow(x11Display, window);
> 	XCloseDisplay(x11Display);
I also changed the width and height to 256x256 as the pandora can't do a height of 512.

Output from running on the Pandora
eglInitialize() succeeded; major, minor: 1, 4.
egl vendor, version, extensions:
Imagination Technologies
1.4 build 1.4.14.2514
EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_IMG_context_priority

config i: 0
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000001
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000065
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000003
EGL_CONFORMANT 0x00000003

config i: 1
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000002
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000065
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000003
EGL_CONFORMANT 0x00000003

config i: 2
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000003
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000004
EGL_SAMPLE_BUFFERS 0x00000001
EGL_SURFACE_TYPE 0x00000065
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000003
EGL_CONFORMANT 0x00000001

config i: 3
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000004
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00003038
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000001
EGL_MIN_SWAP_INTERVAL 0x00000001
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000003
EGL_CONFORMANT 0x00000003

config i: 4
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000005
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00003038
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000001
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000003
EGL_CONFORMANT 0x00000003

config i: 5
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000006
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00003038
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000001
EGL_BIND_TO_TEXTURE_RGBA 0x00000001
EGL_MIN_SWAP_INTERVAL 0x00000001
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000001
EGL_CONFORMANT 0x00000001

config i: 6
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000007
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000064
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 7
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000008
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000064
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 8
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000018
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000009
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000021
EGL_NATIVE_VISUAL_TYPE 0x00039cb0
EGL_SAMPLES 0x00000004
EGL_SAMPLE_BUFFERS 0x00000001
EGL_SURFACE_TYPE 0x00000064
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000003
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000004

eglChooseConfig() picked EGL_CONFIG_ID: 0x00000007

gl vendor, version, renderer, extensions:
Imagination Technologies
OpenGL ES 2.0
PowerVR SGX 530
GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float GL_OES_texture_half_float GL_OES_element_index_uint GL_OES_mapbuffer GL_OES_fragment_precision_high GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_required_internalformat GL_OES_get_program_binary GL_OES_standard_derivatives GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc GL_IMG_texture_stream2 GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888 GL_IMG_read_format GL_IMG_program_binary
GL_MAX_TEXTURE_SIZE: 2048
GL_MAX_CUBE_MAP_TEXTURE_SIZE: 2048
GL_MAX_VIEWPORT_DIMS: 2048, 2048
GL_MAX_RENDERBUFFER_SIZE: 2048
GL_MAX_VERTEX_ATTRIBS: 8
GL_MAX_VERTEX_UNIFORM_VECTORS: 128
GL_MAX_VARYING_VECTORS: 8
GL_MAX_FRAGMENT_UNIFORM_VECTORS: 64
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 8
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: 8
GL_MAX_TEXTURE_IMAGE_UNITS: 8

number of vertices: 2143
number of indices: 11904
total frames rendered: 1000
Using the simple shaders (.bak) I got 12.884s for 1000 frames.
Using the complex shaders (.new) I got 54.006s.
 
Last edited by a moderator:
Cheers, paeryn! Also, excellent sleuthing work there - thanks!

So the test yielded 18FPS at 256x256 - that's not bad for a mobile GPU. The standard derivatives extension is also functional (assuming the normal mapping in the test looked ok). The only downside from the test is the slightly low limits on the vertex/fragment uniforms (the latter in particular) and the tight varyings file, but hey, mobile est mobile.

Again, thanks for the help. I'll post here some results form other SoC runs, soon.

ps: I assume GPU clock in the test was 110MHz?
 
Thanks for the feedback, paeryn. BTW, I just noticed an overlook in the benchmark that could hurt TBRs - I did not bother to clear the stencil buffer at the start of each frame (a benign, or even beneficent, condition for IMRs, but likely hurting TBRs). Moreove that judging from the logs the app does get a stencil-enabled context config on Pandora.

In case you run any more tests, please replace in renderFrame:

Code:
glClear(
    GL_COLOR_BUFFER_BIT |
    GL_DEPTH_BUFFER_BIT);
with

Code:
glClear(
    GL_COLOR_BUFFER_BIT |
    GL_DEPTH_BUFFER_BIT |
    GL_STENCIL_BUFFER_BIT);

Cheers,
blu
 
Clearing the stencil buffer is giving:

Simple *1000, 13.030s
Complex *1000, 53.802s

The simple case looks odd being slower - just double checked that I hadn't overclocked on my original timings.
I tried overclocking to 750MHz and it went down to 10.402s whereas the complex went to 53.003s.
At 850MHz the complex drops to 52.882s. My pandora is flakey at that speed - at 900 it gets about halfway through and locks up.
At 100MHz it takes 66.838s!
 
paeryn said:
Clearing the stencil buffer is giving:

Simple *1000, 13.030s
Complex *1000, 53.802s

The simple case looks odd being slower - just double checked that I hadn't overclocked on my original timings.
I tried overclocking to 750MHz and it went down to 10.402s whereas the complex went to 53.003s.
At 850MHz the complex drops to 52.882s. My pandora is flakey at that speed - at 900 it gets about halfway through and locks up.
At 100MHz it takes 66.838s!
Well, test is GPU-centric and performance should be largely CPU-clock-independent. System buses and GPU-domain clocks are a different matter altogether.

I spent some time pondering on the stencil subject. Actually, a TBR could just as well benefit from not clearing it (when not needed) just like an IMR, but it largely depends on how the drivers interpret non-cleared framebuffer components at the start of a new frame: it can be discarded, or it could be retrofitted to each tile as an initial state. I tried to find in the ES specs a sanctioned behaviour for that, but I did not find anything. That said, some IHV's optimisation guidelines for TBR actually suggest that the main framebuffer (but not secondary buffers!) components do not persis across eglSwapBuffers() operations, so not clearting them does not require that their content was restored from last frame, just that content would be treated as undefined (e.g. not used). Or in other words, not clearing a component of the primary framebuffer (color, depth, stencil) could be beneficient for a TBR just as well. Which would explain the slight drop in fps you observed when stencil clearing was enabled. Either that or it was a statistical fluctuation in the measurements ; )

Anyhow, I'll upload new versions of the benchmark tonight, integrating your fix for the EGL context grab at pandora, and also dropping depth buffering altogether (as benchmark is focused on the shader performance, neither does it draw anything which would actually require depth buffering).
 
Last edited by a moderator:
new version

* depth testing disabled, along with depth and stencil buffer clearing, for cleaner shader-performance results
* added build script for cross-compiling for pandora; compile options courtesy of paeryn
* put XRANDR use on conditional compile (currently disabled in the pandora script)
* window geometry can be set through -screen command argument; though control string is in GLUT format, only width and height actually matter for windowed mode
* fixed EGL window creation issue under current pandora drivers; solution courtesy of paeryn

In addition, I've been omitting to mention till now that the fragment shader contains a few conditional-compile control points - for use of diffuse texturing, tangent space inversion, use of interpolated normals supplied by the mesh, etc - one may want to play with those to see what affects the performance the most.

So, I think that's the last version of this little benchmark for now. Again, thanks goes to paeryn for his help and test runs. I may sporadically post benchmark results from other SoC systems in this thread.
 
as promised, some results from other platforms. here comes the ipad (os 3.2):

4761881906_d743a83b98_b.jpg


gl vendor, version, renderer, extensions:
Imagination Technologies
OpenGL ES 2.0 IMGSGX535-38.10
PowerVR SGX 535
GL_EXT_blend_minmax GL_IMG_read_format GL_IMG_texture_compression_pvrtc GL_IMG_texture_format_BGRA8888 GL_OES_depth24 GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
GL_MAX_TEXTURE_SIZE: 2048
GL_MAX_CUBE_MAP_TEXTURE_SIZE: 2048
GL_MAX_VIEWPORT_DIMS: 2048, 2048
GL_MAX_RENDERBUFFER_SIZE: 2048
GL_MAX_VERTEX_ATTRIBS: 16
GL_MAX_VERTEX_UNIFORM_VECTORS: 128
GL_MAX_VARYING_VECTORS: 8
GL_MAX_FRAGMENT_UNIFORM_VECTORS: 64
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 8
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0
GL_MAX_TEXTURE_IMAGE_UNITS: 8

test was run on the complex shader alone, and there it yields:
at 256^2 - fps is 44.
at 512^2 - fps is 11.4.

as one can notice - almost ideal scaling with resolution. which means the test is absolutely fragment-limited on the ipad.

a thing to note in the extensions string is the absence of fp32 support in the fragment shader, so chances are it's doing fp16 (versus fp32 on other platforms, pandora included), but i've not bothered to verify that.
 
some preliminary tegra250 results
(big thanks to Dawgmatix for building and running the test on the kit):

XRR screen config #0: 1920 x 1080
eglInitialize() succeeded; major, minor: 1, 4.
egl vendor, version, extensions:
NVIDIA
1.4
EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_NV_perfmon EGL_NV_system_time EGL_NV_coverage_sample EGL_NV_omx_il_sink EGL_KHR_lock_surface EGL_NV_sync EGL_NV_depth_nonlinear

config i: 0
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000001
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 1
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000002
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 2
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000003
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 3
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000004
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 4
EGL_BUFFER_SIZE 0x00000008
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000000
EGL_GREEN_SIZE 0x00000000
EGL_RED_SIZE 0x00000000
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000006
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000003
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000002
EGL_CONFORMANT 0x00000002

config i: 5
EGL_BUFFER_SIZE 0x00000008
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000000
EGL_GREEN_SIZE 0x00000000
EGL_RED_SIZE 0x00000000
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000007
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000063
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000008
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308f
EGL_RENDERABLE_TYPE 0x00000002
EGL_CONFORMANT 0x00000000

config i: 6
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000008
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 7
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000009
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 8
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000a
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 9
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000b
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 10
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000c
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 11
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000d
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 12
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000e
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 13
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000000f
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000007

config i: 14
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000010
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000005

config i: 15
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000011
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000005

config i: 16
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000012
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000005

config i: 17
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000013
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000007
EGL_CONFORMANT 0x00000005

config i: 18
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000014
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 19
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000004
EGL_BLUE_SIZE 0x00000004
EGL_GREEN_SIZE 0x00000004
EGL_RED_SIZE 0x00000004
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000015
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 20
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000016
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000004

config i: 21
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000017
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000004

config i: 22
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000018
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 23
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000019
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 24
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001a
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 25
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001b
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000467
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 26
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001c
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 27
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001d
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 28
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001e
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 29
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000001f
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 30
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000020
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 31
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000021
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 32
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000022
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 33
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000023
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 34
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000024
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 35
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000025
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 36
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000026
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 37
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000027
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 38
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000028
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 39
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000029
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 40
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002a
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 41
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002b
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000465
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 42
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000008
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002c
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 43
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000001
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000005
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000010
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002d
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000061
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000004
EGL_CONFORMANT 0x00000000

config i: 44
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002e
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x000005e4
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 45
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x0000002f
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x000005e4
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000008
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000006
EGL_CONFORMANT 0x00000006

config i: 46
EGL_BUFFER_SIZE 0x00000020
EGL_ALPHA_SIZE 0x00000008
EGL_BLUE_SIZE 0x00000008
EGL_GREEN_SIZE 0x00000008
EGL_RED_SIZE 0x00000008
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000030
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000404
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000010
EGL_CONFORMANT 0x00000010

config i: 47
EGL_BUFFER_SIZE 0x00000010
EGL_ALPHA_SIZE 0x00000000
EGL_BLUE_SIZE 0x00000005
EGL_GREEN_SIZE 0x00000006
EGL_RED_SIZE 0x00000005
EGL_DEPTH_SIZE 0x00000000
EGL_STENCIL_SIZE 0x00000000
EGL_CONFIG_CAVEAT 0x00003038
EGL_CONFIG_ID 0x00000031
EGL_LEVEL 0x00000000
EGL_MAX_PBUFFER_HEIGHT 0x00000800
EGL_MAX_PBUFFER_PIXELS 0x00400000
EGL_MAX_PBUFFER_WIDTH 0x00000800
EGL_NATIVE_RENDERABLE 0x00000000
EGL_NATIVE_VISUAL_ID 0x00000000
EGL_NATIVE_VISUAL_TYPE 0x00000000
EGL_SAMPLES 0x00000000
EGL_SAMPLE_BUFFERS 0x00000000
EGL_SURFACE_TYPE 0x00000404
EGL_TRANSPARENT_TYPE 0x00003038
EGL_TRANSPARENT_BLUE_VALUE 0x00000000
EGL_TRANSPARENT_GREEN_VALUE 0x00000000
EGL_TRANSPARENT_RED_VALUE 0x00000000
EGL_BIND_TO_TEXTURE_RGB 0x00000000
EGL_BIND_TO_TEXTURE_RGBA 0x00000000
EGL_MIN_SWAP_INTERVAL 0x00000000
EGL_MAX_SWAP_INTERVAL 0x00000001
EGL_LUMINANCE_SIZE 0x00000000
EGL_ALPHA_MASK_SIZE 0x00000000
EGL_COLOR_BUFFER_TYPE 0x0000308e
EGL_RENDERABLE_TYPE 0x00000010
EGL_CONFORMANT 0x00000010

eglChooseConfig() picked EGL_CONFIG_ID: 0x00000004

gl vendor, version, renderer, extensions:
NVIDIA Corporation
OpenGL ES 2.0
NVIDIA Tegra
GL_NV_platform_binary GL_OES_rgb8_rgba8 GL_OES_fbo_render_mipmap GL_NV_depth_nonlinear GL_NV_draw_path GL_OES_EGL_image GL_OES_vertex_half_float GL_NV_framebuffer_vertex_attrib_array GL_NV_coverage_sample GL_OES_mapbuffer GL_ARB_draw_buffers GL_EXT_Cg_shader GL_EXT_packed_float GL_OES_texture_half_float GL_OES_texture_float GL_EXT_texture_array GL_OES_compressed_ETC1_RGB8_texture GL_EXT_texture_compression_latc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_NV_get_tex_image GL_NV_read_buffer GL_NV_shader_framebuffer_fetch GL_NV_fbo_color_attachments GL_EXT_bgra GL_EXT_texture_format_BGRA8888
GL_MAX_TEXTURE_SIZE: 2048
GL_MAX_CUBE_MAP_TEXTURE_SIZE: 2048
GL_MAX_VIEWPORT_DIMS: 3839, 3839
GL_MAX_RENDERBUFFER_SIZE: 3839
GL_MAX_VERTEX_ATTRIBS: 16
GL_MAX_VERTEX_UNIFORM_VECTORS: 256
GL_MAX_VARYING_VECTORS: 15
GL_MAX_FRAGMENT_UNIFORM_VECTORS: 1024
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 16
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0
GL_MAX_TEXTURE_IMAGE_UNITS: 16

shader compile log: 33 lines, 0 errors.
shader compile log: 96 lines, 0 errors.
shader link log:

texture bitmap 'rockwall_NH.raw' 64 x 64 x 3 bpp, 12288 bytes
texture bitmap 'rockwall.raw' 256 x 256 x 3 bpp, 196608 bytes
number of vertices: 2143
number of indices: 11904
total frames rendered: 60

result from complex shader at 512^2 output res: ~6fps

with a big disclaimer, though (thus the preliminary nature of these results): these are some darn early ES2 drivers on the tegra2, so chances are something is still unaccelerated and/or badly stitched (i suspect the EGL of doing heavy lifting on the cpu).
 
Just a heads-up: the GL ES2 version of NTSH-JASS is officially available now. As it was developed on another embedded platform, the pandora build options are largely missing. Luckily, that other platform was a modern linux@ARMv7, so codebase is proven good on A8 and recent linux kernels, in case an adventurous pandorian decided to try it out (i'm still pandora-less myself).

Also, the entire project was updated to build under gcc 4.4.0+, where a recent change to the c++ standard was stopping NTSH-JASS from compiling successfully.
 
heya, pandorians. i've got another little request.

i've added rudimentary support for cross-compiling ntsh-jass for pandora, using paeryn's build options from the benchmark app above. i'd be grateful if somebody checked if the project actually builds for pandora now.

what you'll need is lib3ds - i usually use lib3ds-20080909 (2.0.0 RC1), which normally builds like a charm on all unix'es i've tried to build it on so far. also, i've thrown together a dedicated build script for pandora (build_panda.sh), which in theory should be enough to bootstrap the make process with the correct options for the cross-compiling.

if any unforeseen issues arise and i'm not around, here's the project's BuildHints wiki for a general clue of which is what among the make control vars (essentially barbedwire-strung hacks for now).
 
Darkblu, after re-writing the makefile (for ntsh-jass) to fit my toolchain I managed to get it compiled ok.

Unfortunately, no matter which mesh I choose, all I get is a cyan box slowly spinning in the centre and a solid rectangle in the botton left.
teapot.jpg


The output on the console is below - spoiler because of length.
Code:
darius-openpandora:/media/PANDORA/ntsh-jass$ ./testbed assets/teapot.mesh

timer frequency 1000.000 MHz
loading mesh...
triangles: 1600, vertices: 821, indexed: 821
total triangles: 1600
total vertices: 821
eglInitialize() succeeded; major, minor: 1, 4.
egl version, vendor, extensions:
	1.4 build 1.4.14.2514
	Imagination Technologies
	EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_IMG_context_priority 

eglChooseConfig() picked EGL_CONFIG_ID: 0x00000007

gl version, vendor, renderer, glsl version, extentions:
	OpenGL ES 2.0
	Imagination Technologies
	PowerVR SGX 530
	OpenGL ES GLSL ES 1.00
	GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float GL_OES_texture_half_float GL_OES_element_index_uint GL_OES_mapbuffer GL_OES_fragment_precision_high GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_required_internalformat GL_OES_get_program_binary GL_OES_standard_derivatives GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc GL_IMG_texture_stream2 GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888 GL_IMG_read_format GL_IMG_program_binary 
GL_MAX_TEXTURE_SIZE: 2048
GL_MAX_CUBE_MAP_TEXTURE_SIZE: 2048
GL_MAX_VIEWPORT_DIMS: 2048, 2048
GL_MAX_RENDERBUFFER_SIZE: 2048
GL_MAX_VERTEX_ATTRIBS: 8
GL_MAX_VERTEX_UNIFORM_VECTORS: 128
GL_MAX_VARYING_VECTORS: 8
GL_MAX_FRAGMENT_UNIFORM_VECTORS: 64
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 8
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: 8
GL_MAX_TEXTURE_IMAGE_UNITS: 8
vbo id 0x00011171 'assets/teapot.mesh_000_vertex'
vbo id 0x000222e2 'assets/teapot.mesh_000_index'
shader program id 0x00011171 'plain_mvp.glslv'
shader program id 0x000222e2 'plain_color.glslf'
linked program id 0x00033453 'plain_mvp.glslv plain_color.glslf'
vbo id 0x00033453 '+cam_vtx_0'
vbo id 0x000445c4 '+cam_idx0'
vbo id 0x00055735 '+cam_idx1'
time: 0.016907 sec/frame, 59.145879 FPS
time: 0.015670 sec/frame, 63.814290 FPS
time: 0.015697 sec/frame, 63.705115 FPS
time: 0.015608 sec/frame, 64.068824 FPS
time: 0.015629 sec/frame, 63.985004 FPS
time: 0.015568 sec/frame, 64.235866 FPS
time: 0.015601 sec/frame, 64.100156 FPS
time: 0.015616 sec/frame, 64.037522 FPS
time: 0.015566 sec/frame, 64.240903 FPS
time: 0.015567 sec/frame, 64.237125 FPS
time: 0.015622 sec/frame, 64.013753 FPS
time: 0.015591 sec/frame, 64.139051 FPS
time: 0.015554 sec/frame, 64.292581 FPS
time: 0.015585 sec/frame, 64.162914 FPS
time: 0.015741 sec/frame, 63.528499 FPS
time: 0.015647 sec/frame, 63.908880 FPS
time: 0.015749 sec/frame, 63.497723 FPS
time: 0.015955 sec/frame, 62.675491 FPS
time: 0.015617 sec/frame, 64.031265 FPS
time: 0.015550 sec/frame, 64.310247 FPS
time: 0.015637 sec/frame, 63.952535 FPS
time: 0.015569 sec/frame, 64.229571 FPS
time: 0.015713 sec/frame, 63.642014 FPS
time: 0.015585 sec/frame, 64.164170 FPS
time: 0.015611 sec/frame, 64.057552 FPS
time: 0.015621 sec/frame, 64.017505 FPS
time: 0.015766 sec/frame, 63.428892 FPS
time: 0.016362 sec/frame, 61.117225 FPS
time: 0.015934 sec/frame, 62.760721 FPS
time: 0.015635 sec/frame, 63.958777 FPS
time: 0.015607 sec/frame, 64.075088 FPS
time: 0.015719 sec/frame, 63.616067 FPS
time: 0.015566 sec/frame, 64.243422 FPS
time: 0.015677 sec/frame, 63.789445 FPS
discarding linked program id 0x00033453
discarding shader program id 0x00011171
discarding shader program id 0x000222e2
discarding texture id 0x00011171
discarding texture id 0x000222e2
discarding vbo id 0x00011171
discarding vbo id 0x000222e2
discarding vbo id 0x00033453
discarding vbo id 0x000445c4
discarding vbo id 0x00055735
total frames rendered: 3447
I've not had time to look into what the program is doing.

Paeryn.
 
Paeryn, you did it man, that's it - ntsh-jass runs on the pandora! *performs jigga dance*

The reason you didn't see anything at start up is that all the .mesh files originate from 3ds models, coming from a different model space, and they need the -other_up command-line parameter to orient properly by the app's main camera. Had you ran it with the .age model you might have seen something by default.

Re teapot.mesh - it's a rather quirky mesh - you'd need to blow up the main camera's view to find it first, then center on it, then zoom in, and finally invert the culling as it's opposite to everything else.

May I ask about your changes to the makefile, so I could commit them?
 
The Ahmed_GEO.age file gets slightly better - in that it also renders a red box outline. The shader fails with:
Code:
program 'phong.glslv normal_direction_renorm.glslf': missing vec4 parameter 'lp_obj'
The same error appears for girl.mesh and darth_vader_tie.mesh, you see the red box outlines of each part.

Main alteration of the Makefile:
Code:
ifeq ($(PLATFORM), pandora)
        CC = arm-angstrom-linux-gnueabi-gcc
        CXX = arm-angstrom-linux-gnueabi-g++
        CFLAGS += -DSUPPORT_X11 -I/usr/local/angstrom/arm/arm-anstrom-linux-gnueabi/usr/include
        CLINKFLAGS += -L/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib -lGLESv2 -lEGL -lIMGegl -lsrv_um -lX11 -lXdmcp -lXau
I had to change the compiler, and the CXX line I added otherwise it executed the PC's g++. The FLAGS altered to point to where my toolchain's include & lib dirs are.

For the build_pandora.sh I changed HOSTTYPE to arm (otherwise it defaulted to my PC's i486), and added L3DS_INC_PATH and L3DS_LIB_PATH to point to where I'd installed lib3ds to.

edit:
Fixed the phong error, GLSL_QUIRK_UNINDEXED_SOLE_ELEMENT=1 needs to be added to the build_pandora.sh so it now looks like
Code:
#!/bin/sh

HOSTTYPE=arm L3DS_INC_PATH=../../lib3ds-20080909/src L3DS_LIB_PATH=../../lib3ds-20080909/src GLSL_QUIRK_ARRAY_PRINCIPAL_ELEMENT=1 GLSL_QUIRK_UNINDEXED_SOLE_ELEMENT=1 PLATFORM=pandora make
Now the files are all working (except I still can't find the teapot).
tie_fighter.jpg
girl.jpg
 
Once again nice sleuthing work, Paeryn! I hope you don't mind if I commited your changes to the Makefile and build_pandora.sh?

This looks more or less correct now, except that from what i can tell from the shots, meshes all have inverted culling. Could you, please, try the following:

* run the testbed app with ./assets/girl.mesh and options -other_up -invert_cull
* press 'p' once, switching main view to using phong shader with a single light source

At that stage, both the main view and the sub view (lower-left corner, showing output from the cyan camera) should show the model with one light source, positioned at the viewer. You can then use the [`] (accent) key to toggle the polygon culling at runtime, and see if the mesh toggles between 'unlit' (i.e. facing away from the light) and 'front lit' (facing the light at viewer).

ps: the screenshot in the first post of the thread is how the girl model should look with proper culling and 3-light phong in the main view, 1-light phong in the sub view.

pps: testbed RuntimeControls here.
 
Ahh, I was using -other_up and -invert_cull. Removing -invert_cull gives the proper scene.

And in-case you're wondering, the girl renders at 8-10 fps, the tie-fighter at 28-40 (it does fill the screen when at 28) these were done with -screen 800x420:16@60 which fills the screen apart from the taskbar and title bar.

You can commit the changes as you wish. The compiler settings you had should work with the other toolset that's around here somewhere (codesourcery based) but I use the Ångstrom gcc-4.3 one. But I think the CXX line needs adding as the only time $(CC) is being called is for the final linking.
 
Back
Top