User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

My es2gears went black

Wed Jan 30, 2019 3:44 am

Es2gears is like glxgears except for OpenGL ES instead of OpenGL. It used to work, apparently something I installed broke it.
es2black.png
es2black.png (51.78 KiB) Viewed 1726 times
It's running and doing benchmarks but with a black window. And why is it EGL_VERSION 1.4? I don't remember what that used to say but I thought the pI used EGL 2.1 max. Omxplayer still works normally. I was doing some fiddling with GLFW, I'm just starting to try to learn OpenGL. But I'm interested in Broadcom's OpenGL ES implementation. Hello_teapot and hello_triangle still work.

Last night I updated my Broadcom userland by doing a git pull from https://github.com/raspberrypi/userland es2gears is the first broken thing I've seen. I wonder if the blank window has to do with no shader info showing? I'm not sure how long it's been broken.

User avatar
Paeryn
Posts: 2741
Joined: Wed Nov 23, 2011 1:10 am
Location: Sheffield, England

Re: My es2gears went black

Wed Jan 30, 2019 7:44 am

ab1jx wrote:
Wed Jan 30, 2019 3:44 am
It's running and doing benchmarks but with a black window. And why is it EGL_VERSION 1.4? I don't remember what that used to say but I thought the pI used EGL 2.1 max.
EGL 1.4 is correct, the very latest version is only 1.5 so no chance of you seeing 2.1.
She who travels light — forgot something.

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Wed Jan 30, 2019 4:41 pm

OK, thanks. I thought the version was dependent on firmware, but then again somebody would have to write the firmware. And Broadcom would probably not find it profitable to invest time doing that.

I was looking a little at GLFW yesterday and a guy at http://discourse.glfw.org/t/glfw-on-rpi ... pengl/1215 claims 2.1. But maybe it's not using the Broadcom hardware version. I'm not sure what the stuff he has on Github actually does, I didn't try it, don't know how to. I'm not interested in software OpenGL, that's been around 20 years or so. I want to utilize the GPU hardware.

--------------

I dug up source for es2gears at https://raw.githubusercontent.com/ehsan ... es2gears.c and made a simple makefile:

Code: Select all

CC = gcc
es2g:es2g.c
        $(CC) -o es2g es2g.c -I/opt/vc/include -L/opt/vc/lib -lm
But it seems to need GLUT and a bunch of other stuff. I was trying to not use anything that isn't in /opt/vc. Still they're only undefined references meaning libraries not found (I think).

Code: Select all

gcc -o es2g es2g.c -I/opt/vc/include -L/opt/vc/lib -lm 
/tmp/ccziHapx.o: In function `create_gear':
es2g.c:(.text+0x1424): undefined reference to `glGenBuffers'
es2g.c:(.text+0x1438): undefined reference to `glBindBuffer'
es2g.c:(.text+0x146c): undefined reference to `glBufferData'
/tmp/ccziHapx.o: In function `draw_gear':
es2g.c:(.text+0x1d7c): undefined reference to `glUniformMatrix4fv'
es2g.c:(.text+0x1dd8): undefined reference to `glUniformMatrix4fv'
es2g.c:(.text+0x1df0): undefined reference to `glUniform4fv'
es2g.c:(.text+0x1e04): undefined reference to `glBindBuffer'
es2g.c:(.text+0x1e28): undefined reference to `glVertexAttribPointer'
es2g.c:(.text+0x1e4c): undefined reference to `glVertexAttribPointer'
es2g.c:(.text+0x1e54): undefined reference to `glEnableVertexAttribArray'
es2g.c:(.text+0x1e5c): undefined reference to `glEnableVertexAttribArray'
es2g.c:(.text+0x1ea4): undefined reference to `glDrawArrays'
es2g.c:(.text+0x1ecc): undefined reference to `glDisableVertexAttribArray'
es2g.c:(.text+0x1ed4): undefined reference to `glDisableVertexAttribArray'
/tmp/ccziHapx.o: In function `gears_draw':
es2g.c:(.text+0x1f40): undefined reference to `glClearColor'
es2g.c:(.text+0x1f48): undefined reference to `glClear'
es2g.c:(.text+0x20bc): undefined reference to `glutSwapBuffers'
/tmp/ccziHapx.o: In function `gears_reshape':
es2g.c:(.text+0x2180): undefined reference to `glViewport'
/tmp/ccziHapx.o: In function `gears_idle':
es2g.c:(.text+0x2274): undefined reference to `glutGet'
es2g.c:(.text+0x2324): undefined reference to `glutPostRedisplay'
/tmp/ccziHapx.o: In function `gears_init':
es2g.c:(.text+0x2440): undefined reference to `glEnable'
es2g.c:(.text+0x2448): undefined reference to `glEnable'
es2g.c:(.text+0x2458): undefined reference to `glCreateShader'
es2g.c:(.text+0x2470): undefined reference to `glShaderSource'
es2g.c:(.text+0x2478): undefined reference to `glCompileShader'
es2g.c:(.text+0x248c): undefined reference to `glGetShaderInfoLog'
es2g.c:(.text+0x24ac): undefined reference to `glCreateShader'
es2g.c:(.text+0x24c4): undefined reference to `glShaderSource'
es2g.c:(.text+0x24cc): undefined reference to `glCompileShader'
es2g.c:(.text+0x24e0): undefined reference to `glGetShaderInfoLog'
es2g.c:(.text+0x24f4): undefined reference to `glCreateProgram'
es2g.c:(.text+0x2504): undefined reference to `glAttachShader'
es2g.c:(.text+0x2510): undefined reference to `glAttachShader'
es2g.c:(.text+0x2520): undefined reference to `glBindAttribLocation'
es2g.c:(.text+0x2530): undefined reference to `glBindAttribLocation'
es2g.c:(.text+0x2538): undefined reference to `glLinkProgram'
es2g.c:(.text+0x254c): undefined reference to `glGetProgramInfoLog'
es2g.c:(.text+0x2564): undefined reference to `glUseProgram'
es2g.c:(.text+0x2570): undefined reference to `glGetUniformLocation'
es2g.c:(.text+0x258c): undefined reference to `glGetUniformLocation'
es2g.c:(.text+0x25a8): undefined reference to `glGetUniformLocation'
es2g.c:(.text+0x25c4): undefined reference to `glGetUniformLocation'
es2g.c:(.text+0x25ec): undefined reference to `glUniform4fv'
/tmp/ccziHapx.o: In function `main':
es2g.c:(.text+0x26fc): undefined reference to `glutInit'
es2g.c:(.text+0x2708): undefined reference to `glutInitWindowSize'
es2g.c:(.text+0x2710): undefined reference to `glutInitDisplayMode'
es2g.c:(.text+0x2718): undefined reference to `glutCreateWindow'
es2g.c:(.text+0x2720): undefined reference to `glutIdleFunc'
es2g.c:(.text+0x2728): undefined reference to `glutReshapeFunc'
es2g.c:(.text+0x2730): undefined reference to `glutDisplayFunc'
es2g.c:(.text+0x2738): undefined reference to `glutSpecialFunc'
es2g.c:(.text+0x2740): undefined reference to `glutMainLoop'
collect2: error: ld returned 1 exit status
Makefile:3: recipe for target 'es2g' failed
make: *** [es2g] Error 1

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Wed Jan 30, 2019 9:14 pm

Now it flies but it's still black. See https://www.raspberrypi.org/forums/view ... 3#p1423533

800+ FPS

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Wed Jan 30, 2019 9:55 pm

For whatever it's worth glxinfo (in the mesa-utils deb) says

Code: Select all

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_libglvnd, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile, 
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float, 
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, 
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, 
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 3.9, 128 bits) (0xffffffff)
    Version: 13.0.6
    Accelerated: no
    Video memory: 875MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, 
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, 
    GL_AMD_shader_trinary_minmax, GL_AMD_vertex_shader_layer, 
    GL_AMD_vertex_shader_viewport_index, GL_ANGLE_texture_compression_dxt3, 
    GL_ANGLE_texture_compression_dxt5, GL_ARB_ES2_compatibility, 
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance, 
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage, 
    GL_ARB_clear_buffer_object, GL_ARB_clip_control, 
    GL_ARB_compressed_texture_pixel_storage, 
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, 
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance, 
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, 
    GL_ARB_direct_state_access, GL_ARB_draw_buffers, 
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, 
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts, 
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, 
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport, 
    GL_ARB_fragment_shader, GL_ARB_framebuffer_object, 
    GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, 
    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader_fp64, 
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, 
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query, 
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata, 
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind, 
    GL_ARB_multi_draw_indirect, GL_ARB_occlusion_query2, 
    GL_ARB_pixel_buffer_object, GL_ARB_point_sprite, 
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex, 
    GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects, 
    GL_ARB_shader_bit_encoding, GL_ARB_shader_objects, 
    GL_ARB_shader_stencil_export, GL_ARB_shader_subroutine, 
    GL_ARB_shader_texture_lod, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_packing, GL_ARB_stencil_texturing, GL_ARB_sync, 
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32, 
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression_rgtc, 
    GL_ARB_texture_cube_map_array, GL_ARB_texture_float, 
    GL_ARB_texture_gather, GL_ARB_texture_mirror_clamp_to_edge, 
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, 
    GL_ARB_texture_query_levels, GL_ARB_texture_rectangle, GL_ARB_texture_rg, 
    GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_stencil8, 
    GL_ARB_texture_storage, GL_ARB_texture_storage_multisample, 
    GL_ARB_texture_swizzle, GL_ARB_texture_view, GL_ARB_timer_query, 
    GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, 
    GL_ARB_transform_feedback_instanced, GL_ARB_uniform_buffer_object, 
    GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, 
    GL_ARB_vertex_attrib_64bit, GL_ARB_vertex_attrib_binding, 
    GL_ARB_vertex_shader, GL_ARB_vertex_type_10f_11f_11f_rev, 
    GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, 
    GL_ATI_blend_equation_separate, GL_ATI_texture_float, 
    GL_ATI_texture_mirror_once, GL_EXT_abgr, GL_EXT_blend_equation_separate, 
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_framebuffer_blit, 
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, 
    GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float, 
    GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset_clamp, 
    GL_EXT_provoking_vertex, GL_EXT_shader_integer_mix, GL_EXT_texture_array, 
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_integer, 
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_sRGB, 
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent, 
    GL_EXT_texture_snorm, GL_EXT_texture_swizzle, GL_EXT_timer_query, 
    GL_EXT_transform_feedback, GL_EXT_vertex_array_bgra, 
    GL_IBM_multimode_draw_arrays, GL_KHR_context_flush_control, GL_KHR_debug, 
    GL_MESA_pack_invert, GL_MESA_shader_integer_functions, 
    GL_MESA_texture_signed_rgba, GL_MESA_ycbcr_texture, 
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil, 
    GL_OES_EGL_image, GL_S3_s3tc

OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
    GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, 
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, 
    GL_AMD_shader_trinary_minmax, GL_ANGLE_texture_compression_dxt3, 
    GL_ANGLE_texture_compression_dxt5, GL_APPLE_packed_pixels, 
    GL_APPLE_vertex_array_object, GL_ARB_ES2_compatibility, 
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance, 
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage, 
    GL_ARB_clear_buffer_object, GL_ARB_clip_control, 
    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage, 
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, 
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance, 
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, 
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, 
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, 
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program, 
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, 
    GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image, 
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, 
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query, 
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata, 
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind, 
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, 
    GL_ARB_occlusion_query2, GL_ARB_pixel_buffer_object, 
    GL_ARB_point_parameters, GL_ARB_point_sprite, 
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex, 
    GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects, 
    GL_ARB_shader_bit_encoding, GL_ARB_shader_objects, 
    GL_ARB_shader_stencil_export, GL_ARB_shader_texture_lod, 
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_stencil_texturing, 
    GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
    GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, 
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat, 
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, 
    GL_ARB_texture_query_levels, GL_ARB_texture_rectangle, GL_ARB_texture_rg, 
    GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_stencil8, 
    GL_ARB_texture_storage, GL_ARB_texture_storage_multisample, 
    GL_ARB_texture_swizzle, GL_ARB_texture_view, GL_ARB_timer_query, 
    GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, 
    GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix, 
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, 
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, 
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev, 
    GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers, 
    GL_ATI_fragment_shader, GL_ATI_separate_stencil, 
    GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3, 
    GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, 
    GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, 
    GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_draw_buffers2, 
    GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_fog_coord, 
    GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, 
    GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, 
    GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters, 
    GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, 
    GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, 
    GL_EXT_point_parameters, GL_EXT_polygon_offset, 
    GL_EXT_polygon_offset_clamp, GL_EXT_provoking_vertex, 
    GL_EXT_rescale_normal, GL_EXT_secondary_color, 
    GL_EXT_separate_specular_color, GL_EXT_shader_integer_mix, 
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, 
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, 
    GL_EXT_texture_array, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_integer, GL_EXT_texture_lod_bias, 
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, 
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, 
    GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, 
    GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, 
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip, 
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, 
    GL_KHR_context_flush_control, GL_KHR_debug, GL_MESA_pack_invert, 
    GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba, 
    GL_MESA_window_pos, GL_MESA_ycbcr_texture, GL_NV_blend_square, 
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fog_distance, 
    GL_NV_light_max_exponent, GL_NV_packed_depth_stencil, 
    GL_NV_primitive_restart, GL_NV_texgen_reflection, 
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image, 
    GL_OES_read_format, GL_S3_s3tc, GL_SGIS_generate_mipmap, 
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, 
    GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, 
    GL_APPLE_texture_max_level, GL_EXT_base_instance, 
    GL_EXT_blend_func_extended, GL_EXT_blend_minmax, 
    GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float, GL_EXT_copy_image, 
    GL_EXT_discard_framebuffer, GL_EXT_draw_buffers, 
    GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex, 
    GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays, 
    GL_EXT_polygon_offset_clamp, GL_EXT_read_format_bgra, 
    GL_EXT_separate_shader_objects, GL_EXT_shader_integer_mix, 
    GL_EXT_texture_border_clamp, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_format_BGRA8888, GL_EXT_texture_rg, 
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_type_2_10_10_10_REV, 
    GL_EXT_unpack_subimage, GL_KHR_context_flush_control, GL_KHR_debug, 
    GL_MESA_shader_integer_functions, GL_NV_draw_buffers, 
    GL_NV_fbo_color_attachments, GL_NV_read_buffer, GL_NV_read_depth, 
    GL_NV_read_depth_stencil, GL_NV_read_stencil, GL_OES_EGL_image, 
    GL_OES_EGL_image_external, GL_OES_EGL_sync, 
    GL_OES_compressed_ETC1_RGB8_texture, GL_OES_copy_image, GL_OES_depth24, 
    GL_OES_depth_texture, GL_OES_depth_texture_cube_map, 
    GL_OES_draw_buffers_indexed, GL_OES_draw_elements_base_vertex, 
    GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, 
    GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil, 
    GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, GL_OES_stencil8, 
    GL_OES_surfaceless_context, GL_OES_texture_3D, 
    GL_OES_texture_border_clamp, GL_OES_texture_float, 
    GL_OES_texture_float_linear, GL_OES_texture_half_float, 
    GL_OES_texture_half_float_linear, GL_OES_texture_npot, 
    GL_OES_texture_stencil8, GL_OES_vertex_array_object

240 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x021 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x16e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x16f 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x170 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x171 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x172 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x173 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x174 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x175 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x176 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x177 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x178 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x179 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x17a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x17b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x17c 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x17d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x17e 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x17f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x180 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x181 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x182 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x183 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x184 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x185 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x186 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x187 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x188 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x189 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x18a 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x18b 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x18c 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x18d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x18e 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x18f 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x190 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x191 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x192 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x193 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x194 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x195 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x196 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x197 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x198 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x199 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x19a 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x19b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x19c 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x19d 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x19e 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x19f 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x1a0 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x1a1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x1a2 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x1a3 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x1a4 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x1a5 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x1a6 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x1a7 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x1a8 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x1a9 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x1aa 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x1ab 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x1ac 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x1ad 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x1ae 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x1af 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x1b0 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x1b1 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x1b2 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x1b3 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x1b4 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x1b5 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x1b6 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x1b7 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x1b8 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x1b9 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x1ba 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x1bb 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x1bc 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x1bd 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x1be 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x1bf 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x1c0 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x1c1 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x1c2 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x1c3 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x1c4 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x1c5 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x1c6 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x1c7 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x1c8 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x1c9 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x1ca 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x1cb 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x1cc 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x1cd 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x1ce 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x1cf 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x1d0 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x1d1 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x1d2 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x1d3 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x1d4 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x1d5 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x1d6 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x1d7 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x1d8 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x1d9 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x1da 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x1db 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x1dc 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x1dd 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x1de 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x1df 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x1e0 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x1e1 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x1e2 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x1e3 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x1e4 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x1e5 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x1e6 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x1e7 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x1e8 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x1e9 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x1ea 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x1eb 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x1ec 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x1ed 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x1ee 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x1ef 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x1f0 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x1f1 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x1f2 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x1f3 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x1f4 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x1f5 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x1f6 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x1f7 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x1f8 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x1f9 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x1fa 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x1fb 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x1fc 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x1fd 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x1fe 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x1ff 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x200 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x201 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x202 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x203 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x204 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x205 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x206 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x207 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x208 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x209 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x20a 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x20b 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x20c 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x20d 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x20e 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x20f 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x210 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x211 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x212 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x213 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x214 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x215 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x216 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x217 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x218 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x219 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x21a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x21b 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x21c 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x21d 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x21e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x21f 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x220 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x221 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x222 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x223 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x224 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x225 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x226 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x227 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x228 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x229 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x22a 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x22b 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x22c 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x22d 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x22e 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x22f 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x230 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x231 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x232 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x233 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x234 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x235 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x236 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x237 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x238 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x239 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x23a 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x23b 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x23c 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x23d 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x23e 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x23f 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x240 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x241 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x242 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x243 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x244 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x245 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x246 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x247 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x248 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x249 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x24a 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x24b 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x24c 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x24d 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x24e 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x24f 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x250 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x251 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x252 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x253 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x254 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x255 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x256 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x257 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x258 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x259 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x25a 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x25b 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x041 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None

300 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x042 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x043 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x044 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x045 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x046 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x047 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x048 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x049 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x04a 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x04b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x04c 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x04d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x04e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x04f 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x050 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x051 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x052 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x053 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x054 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x055 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x056 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x057 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x058 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x059 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x05a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x05b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x05c 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x05d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x05e 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x05f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x060 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x061 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x062 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x063 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x064 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x065 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x066 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x067 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x068 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x069 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x06a 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x06b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x06c 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x06d 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x06e 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x06f 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x070 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x071 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x072 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x073 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x074 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x075 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x076 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x077 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x078 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x079 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x07a 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x07b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x07c 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x07d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x07e 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x07f 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x080 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x081 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x082 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x083 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x084 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x085 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x086 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x087 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x088 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x089 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x08a 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x08b 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x08c 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x08d 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x08e 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x08f 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x090 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x091 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x092 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x093 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x094 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x095 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x096 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x097 24 tc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x098 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x099 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x09a 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x09b 24 tc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x09c 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x09d 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x09e 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x09f 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x0a0 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x0a1 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x0a2 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x0a3 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x0a4 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x0a5 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x0a6 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x0a7 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x0a8 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x0a9 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x0aa 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x0ab 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x0ac 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x0ad 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x0ae 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x0af 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x0b0 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x0b1 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x0b2 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x0b3 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x0b4 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x0b5 24 tc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x0b6 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x0b7 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x0b8 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x0b9 24 tc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x0ba  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0bb  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0bc  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0bd  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0be  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0bf  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0c0  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x0c1  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x0c2  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x0c3  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x0c4  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x0c5  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x0c6  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x0c7  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x0c8  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x0c9  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x0ca  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x0cb  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x0cc  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0cd  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x0ce  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0cf  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x0d0  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0d1  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x0d2  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x0d3  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x0d4  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x0d5  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x0d6  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x0d7  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x0d8 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0d9 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x0da 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0db 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x0dc 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0dd 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0 16 16 16 16  0 0 Slow
0x0de 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x0df 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x0e0 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x0e1 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x0e2 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x0e3 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 16  0 16 16 16 16  0 0 Slow
0x0e4 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x0e5 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x0e6 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x0e7 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x0e8 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x0e9 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 Slow
0x0ea 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0eb 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x0ec 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0ed 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x0ee 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0ef 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x0f0 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x0f1 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x0f2 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x0f3 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x0f4 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 None
0x0f5 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 32  0 16 16 16 16  0 0 Slow
0x0f6 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0f7 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0f8 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0f9 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0fa 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0fb 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x0fc 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x0fd 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x0fe 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x0ff 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x100 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0  0  0  0  0  0 0 None
0x101 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x102 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x103 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x104 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x105 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x106 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0  0  0  0  0  0 0 None
0x107 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x108 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x109 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x10a 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x10b 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x10c 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x10d 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x10e 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x10f 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x110 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x111 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x112 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0  0  0  0  0  0 0 None
0x113 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x114 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x115 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x116 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x117 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x118 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0  0  0  0  0  0 0 None
0x119 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0  0  0 16 16 16 16  0 0 Slow
0x11a 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x11b 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x11c 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x11d 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x11e 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0  0  0  0  0  0 0 None
0x11f 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 16  0 16 16 16 16  0 0 Slow
0x120 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x121 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x122 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x123 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x124 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0  0  0  0  0  0 0 None
0x125 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  0 16 16 16 16  0 0 Slow
0x126 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x127 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x128 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x129 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x12a 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8  0  0  0  0  0 0 None
0x12b 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 24  8 16 16 16 16  0 0 Slow
0x12c 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x12d 24 dc  0  32  0 r  . .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x12e 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x12f 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x130 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0  0  0  0  0  0 0 None
0x131 24 dc  0  32  0 r  y .   8  8  8  8 .  s  0 32  0 16 16 16 16  0 0 Slow
0x132 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x133 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x134 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x135 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x136 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0  0  0  0  0  0 0 None
0x137 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0  0  0 16 16 16  0  0 0 Slow
0x138 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x139 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x13a 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x13b 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x13c 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0  0  0  0  0  0 0 None
0x13d 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 16  0 16 16 16  0  0 0 Slow
0x13e 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x13f 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x140 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x141 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x142 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0  0  0  0  0  0 0 None
0x143 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  0 16 16 16  0  0 0 Slow
0x144 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x145 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x146 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x147 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x148 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8  0  0  0  0  0 0 None
0x149 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 24  8 16 16 16  0  0 0 Slow
0x14a 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x14b 24 dc  0  24  0 r  . .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x14c 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x14d 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x14e 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0  0  0  0  0  0 0 None
0x14f 24 dc  0  24  0 r  y .   8  8  8  0 .  s  0 32  0 16 16 16  0  0 0 Slow
0x150  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x151  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x152  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x153  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x154  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x155  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0 16 16 16  0  0 0 Slow
0x156  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x157  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x158  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x159  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x15a  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x15b  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x15c  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x15d  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x15e  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x15f  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x160  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0  0  0  0  0  0 0 None
0x161  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  0 16 16 16  0  0 0 Slow
0x162  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x163  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x164  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x165  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x166  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
0x167  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x168  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x169  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x16a  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x16b  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
0x16c  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0  0  0  0  0  0 0 None
0x16d  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 32  0 16 16 16  0  0 0 Slow
I see 3 "server glx version string:" lines in there, that may be a problem.

User avatar
Paeryn
Posts: 2741
Joined: Wed Nov 23, 2011 1:10 am
Location: Sheffield, England

Re: My es2gears went black

Wed Jan 30, 2019 11:03 pm

ab1jx wrote:
Wed Jan 30, 2019 4:41 pm
OK, thanks. I thought the version was dependent on firmware, but then again somebody would have to write the firmware. And Broadcom would probably not find it profitable to invest time doing that.

I was looking a little at GLFW yesterday and a guy at http://discourse.glfw.org/t/glfw-on-rpi ... pengl/1215 claims 2.1. But maybe it's not using the Broadcom hardware version. I'm not sure what the stuff he has on Github actually does, I didn't try it, don't know how to. I'm not interested in software OpenGL, that's been around 20 years or so. I want to utilize the GPU hardware.
I think you were confusing EGL with OpenGL. EGL is a library that connects the rendering libraries (OpenGL, OpenGL|ES, OpenVG) to the underlying display libraries (X, framebuffer, DispmanX etc.).

The Broadcom libraries are EGL 1.4 and OpenGL|ES 2.0. To use OpenGL 2.1 would need the MESA drivers (or a shim), Eric Anholt's drivers are MESA based and use the RPi's hardware as much as possible, I think it is OpenGL 2.1 but with a few features missing due to the hardware not supporting them.
She who travels light — forgot something.

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Thu Jan 31, 2019 1:49 am

Paeryn wrote:
Wed Jan 30, 2019 11:03 pm
I think you were confusing EGL with OpenGL. EGL is a library that connects the rendering libraries (OpenGL, OpenGL|ES, OpenVG) to the underlying display libraries (X, framebuffer, DispmanX etc.).

The Broadcom libraries are EGL 1.4 and OpenGL|ES 2.0. To use OpenGL 2.1 would need the MESA drivers (or a shim), Eric Anholt's drivers are MESA based and use the RPi's hardware as much as possible, I think it is OpenGL 2.1 but with a few features missing due to the hardware not supporting them.
I never said I knew what I was doing, I'm just trying to learn. But I'm only interested in the fast hardware stuff. I thought EGL was an abbreviation for OpenGL ES.

If I turn on the GL driver in raspi-confg my es2gears isn't black anymore. But that seems to slow everything down so I usually leave it off. The Broadcom stuff in /opt/vc doesn't need it, or even X, omxplayer either. And with it on my hacked es2gears gives me

Code: Select all

libGL error: MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
* failed to add service - already in use?
But it wasn't working anyway really, I don't need it.

If I knew how to get a framebuffer window from GTK I probably wouldn't bother with any of this. I just want to be able to plot points really fast with minimal CPU involvement, I thought using vertex shaders and passing them off to the GPU would do the trick. I was using XDrawLines from xlib with partial succcess, doing XOR draws and erases. Stacking the array of lines so the even ones were erase lines and the odd ones were draw, then next batch swapping the odd lines into even positions and putting new odd ones in. Faster than it sounds, and runs about 4% CPU. But no widgets yet.

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Thu Jan 31, 2019 3:45 am

Raspbian by that mesa 13.0.6 number.

If you just want to plot lines OpenVG is simpler.
Not much different than the old HPGL plotter language.
Lift pen, goto x,y, lower pen, draw to x1,y1 etc

AJ has proabably done the most useful and easy to understand code
https://github.com/ajstarks/openvg

EGL is a layer under OpenVG and OpenGLES.
Erics OpenGL is a layer above OpenGLES sort of.

It is all a pretty steep learning curve ;)
Many, many books to read, most don't make sense the first two or three times ;)

OpenGL can be done on any PC, that's why I use Gentoo64, the OpenGL on that is better than Raspbian.
I'm Learning OpenGL first, then going port that down to the subset of OpenGLES, er once I understand that :oops:
With the PC/Gentoo64 combo I can use and play with examples in many langauges, not just C.

The best OpenGL examples are the Mesa3D ones, normally a single C file is all you need to understand.
As you just discovered debugging mistakes is not easy, I'm still learning that.
Use apitrace?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Thu Jan 31, 2019 4:13 am

OpenVG may be simpler but does it have shaders? Being able to launch a shader and have it run independently of the CPU is really appealing. I could put my data into an array and have the shader plot it (I think) while I'm calculating the next batch. But accelerated X drivers aren't bad.

There's Xlib's XDrawLine and the batch version XDrawLines. I was playing with it in just Xlib which has no widgets for things like buttons. But to some degree every widget is a window so I think I can do that in GTK on any surface. I've been puttering around writing a couple LXDE plugins lately so I gained a little confidence in experimenting with GTK. You don't have access to all of GTK doing that but hopefully enough to practice. Glade is a good tool, but it also helps you see how to do without it. This is done using Cairo, I'll probably skip that.
brw.png
brw.png (1.43 KiB) Viewed 1595 times

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Thu Jan 31, 2019 7:23 am

OpenVG uses a control list, page 72 on the VC4 manual.
Page 68 code 41/42 "only for use with VG shader mode"
When you use 3D then it is a vertex list and texture mapping.
Page 69 code 66, 67 VG Shader State and VG Inline Shader Record.

These are the few pages I nearly understand :lol:

I am not to sure how fast OpenVG can be pushed.
I did a mockup LCARS GUI, clock and HUD and never noticed flicker etc.
Is there benchmarks for OpenVG? Google time
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Thu Jan 31, 2019 6:13 pm

It all sounds way more complicated than just using a framebuffer. If you want to make an image height * width (* 3 colors) you allocate (malloc or calloc) height * width * 3 bytes. If you want to turn on a pixel in there at x,y you write to offset (y * width) + x. Colors are in sequence (rgb) along each line so the green part of the pixel at x,y would be at x+1,y (or (y * height) + x + 1). You can move/copy something with memmove. The same principles work for a framebuffer as for creating a png, jpeg, gif, tiff file, only then you call a library function (pnglib, jpeglib, etc.) to write out your memory buffer in the image format you want. Height * width * 3 is pretty standard for 24 bit color, they all work the same way. VNC (AKA remote framebuffer) works like that only it's meant for sending to another computer so then you have to run a client to see it. And I haven't found a way to have just a framebuffer in a window. If the display were memory mapped there'd be a big jump in address between the right side of the window and the left side of the next line up, but you could deal with that. It would be constant as long as you didn't move or resize the window, then you'd need to recalculate.

OpenGL is intended for completely different purposes than what I have in mind. I'm only interested in it as a standardized way of utilizing the power of the GPU. I could write for Videocore or for Mali but code for one wouldn't work on the other. Unless I do it as OpenGL which is implemented on both.
waterfall1.jpg
waterfall1.jpg (155.9 KiB) Viewed 1556 times
This is from VNC, done July 2017. I get a radio input from an RTL2832 dongle using librtlsdr, put it through some calculations including FFT. Each signal above the noise threshold becomes a peak in the top (white) trace. Those come and go very fast, ideally 4 - 20 frames/second. At the bottom is the waterfall. Every line (starting at the top) has a color that reflects the intensity of the peak that was just displayed at the top. So the bottom of the display needs to move down 1 pixel 4 - 20 times per second. There was a bug here causing the bands at the bottom to not line up with the peaks at the top, but the waterfall is a history of the peaks displayed. If you use a working one like Sdrsharp or Hdsdr you tune in a signal by clicking on it. Then that part gets demodulated and you hear audio. But there's nothing that does this well on a Pi, most programs are for Windows or big computers so they aren't very efficient (like Gqrx). I'm trying to streamline the process and optimize it for small computers. Doing graphics with just Xlib makes it very portable. A framebuffer could be too. And a framebuffer is just moving bytes around in memory so it's fast and efficient. A framebuffer is what OpenGL outputs into, I just want to skip the over OpenGL.

Googling turned up this old thread https://www.opengl.org/discussion_board ... ramebuffer Yes, OpenGL "protects" me by not letting me write to memory wherever I want. But come on, I'm a C programmer x20 years, once in a while I make a booboo and get a segfault or something strange on the screen, but not often. And X subscribes to the same philosophy, so only things like qt and OpenGL can get pointers they're allowed to write to. And probably only 1 person in 1000 wants to do it anyway.

That was an oversimplification above, let int stride = # of bytes/pixel, ie 3. Then offset(x,y) = (y * stride * width) + (x * stride). r,g,b is + 0,1,2 on top of that.

DRI is maybe what I want, if I can access it https://en.m.wikipedia.org/wiki/Direct_ ... astructure I just tried driconf, which tells me Screen "0" is not direct rendering capable. It's mostly i386 stuff.

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Thu Jan 31, 2019 9:24 pm

Image

The key is probably in there, but it's not likely to be portable to anything else. Unless I go up to something standard like OpenGL ES so it goes through OpenGL ES implementations on other machines.

There was this project https://github.com/elorimer/rpi-playground But there was one which had several articles, one of which had a way to get a framebuffer. This: https://rpiplayground.wordpress.com/201 ... ofit-pt-1/ They open() it like a file, it was very slow. I don't know if you could mmap it or not. May be the same article but I think there's a way to request a framebuffer from the GPU by sending a message to its mailbox. /opt/vc/bin/vcmailbox sort of message. Again not portable but a framebuffer mostly is I think once you get it.

Deprecated? Rats. https://github.com/raspberrypi/firmware ... -interface

I'll see if this still works https://elinux.org/RPi_Framebuffer

The rpiplayground hello world from 2014 just crashed on me, maybe because it's written for a model A or B Pi and I'm on a 3B. Maybe I was on my Model B when I first tried it. Display or mouse cursor at least locked up.
Last edited by ab1jx on Fri Feb 01, 2019 4:35 pm, edited 2 times in total.

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Fri Feb 01, 2019 2:56 am

Two Norweigian papers have been useful
https://core.ac.uk/download/pdf/30863461.pdf
https://core.ac.uk/reader/30863509

A nice explanation of how Tile Engines work too.
That's been a mystery for me till now.

Most of the baremetal guys have got framebuffer working, even double buffering?
Been done in asembly, C, C++, Rust and Free Pascal so far, perhaps more?

I want to do spectrogram displays on baremetal, not much difference than waterfall.
I have even started looking at FPGAs to do the FFT's in hardware, I expect it will take me a few years to learn that ;)
FFT's can be done in the QPU's but what happens to them if I use OpenVG to then plot the data?
Not sure how to measure QPU usage, so I am looking at ARM's Compute Library to run the FFT in the Quad ARM CPUs/NEON.

I think I saw one of the SDR guys looking at FPGA's too.
Only a few years ago this equipment cost S10,000-$100,000.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Fri Feb 01, 2019 5:39 pm

Spectrogram, have you looked at rtl_power?

Code: Select all

rtl_power, a simple FFT logger for RTL2832 based DVB-T receivers

Use:    rtl_power -f freq_range [-options] [filename]
        -f lower:upper:bin_size [Hz]
         (bin size is a maximum, smaller more convenient bins
          will be used.  valid range 1Hz - 2.8MHz)
        [-i integration_interval (default: 10 seconds)]
         (buggy if a full sweep takes longer than the interval)
        [-1 enables single-shot mode (default: off)]
        [-e exit_timer (default: off/0)]
        [-d device_index (default: 0)]
        [-g tuner_gain (default: automatic)]
        [-p ppm_error (default: 0)]
        [-T enable bias-T on GPIO PIN 0 (works for rtl-sdr.com v3 dongles)]
        filename (a '-' dumps samples to stdout)
         (omitting the filename also uses stdout)Experimental options:
        [-w window (default: rectangle)]
         (hamming, blackman, blackman-harris, hann-poisson, bartlett, youssef)
        [-c crop_percent (default: 0%, recommended: 20%-50%)]
         (discards data at the edges, 100% discards everything)
         (has no effect for bins larger than 1MHz)
        [-F fir_size (default: disabled)]
         (enables low-leakage downsample filter,
          fir_size can be 0 or 9.  0 has bad roll off,
          try with '-c 50%')
        [-P enables peak hold (default: off)]
        [-D enable direct sampling (default: off)]
        [-O enable offset tuning (default: off)]

CSV FFT output columns:
        date, time, Hz low, Hz high, Hz step, samples, dbm, dbm, ...

         Examples:
        rtl_power -f 88M:108M:125k fm_stations.csv
         (creates 160 bins across the FM band,
          individual stations should be visible)
        rtl_power -f 100M:1G:1M -i 5m -1 survey.csv
         (a five minute low res scan of nearly everything)
        rtl_power -f ... -i 15m -1 log.csv
         (integrate for 15 minutes and exit afterwards)
        rtl_power -f ... -e 1h | gzip > log.csv.gz
         (collect data for one hour and compress it on the fly)

Convert CSV to a waterfall graphic with:
         http://kmkeen.com/tmp/heatmap.py.txt 
I don't really like the heatmap.py that comes with it so I created my own. This is done from the csv file that rtl_power outputs. I pirated the font from an old giflib. The palette converting signal intensity to color came from one of Learmonth's gifs http://www.bom.gov.au/metadata/catalogu ... 0483.shtml But same technique as writing to a framebuffer, I was just using jpjeglib to make jpeg files intead. I had to reduce the size or the RPI board said it was too big. You can see my dongle being flaky at the top above about 1200 MHz. This is from 2016.
2016-07-13_09-07_5-8.jpg
2016-07-13_09-07_5-8.jpg (136.18 KiB) Viewed 1482 times

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Fri Feb 01, 2019 10:33 pm

From 2012. Done by changing frequencies on an Icom radio (maybe). I came late to $10 SDR dongles. I have an IC-7000(?) and did a bunch with Hamlib, but it's not exactly fast.
test2.jpg
test2.jpg (45.65 KiB) Viewed 1470 times
This (and libjpeg) is all it takes to turn my memory array into a jpeg. That array could be a framebuffer. My array is actually 8 bits/pixel using a palette ("colors[]") so I'm outputting the rgb values from the palette, indexed by the value stored n the array to get 24 bits. This was pre turbo-jpeg I think, looks a little different. Made from one of the demo programs that comes with the library.

Code: Select all

void make_jpeg(void) { // sends img array to compression
  struct jpeg_compress_struct cinfo;
  struct jpeg_error_mgr jerr;
  JSAMPROW row_pointer[1];
  int i,j,ival;
  jline = malloc(3000 * sizeof(unsigned char));
  if (jline == NULL) {
    printf("Error getting 3k of RAM for a jline.\n");
    exit(1);
  }
  cinfo.err = jpeg_std_error(&jerr);
  jpeg_create_compress(&cinfo);
  opf = fopen(jpegname,"wb");
  if (opf == NULL) {
    printf("Error creating %s.\n",jpegname);
    perror("jpeg ");
    exit(1);
  }
  jpeg_stdio_dest(&cinfo, opf);
  cinfo.image_width = width;
  cinfo.image_height = height;
  cinfo.input_components = 3;
  cinfo.in_color_space = JCS_RGB;
  jpeg_set_defaults(&cinfo);
  jpeg_start_compress(&cinfo, TRUE);
  i = 0;
  while (cinfo.next_scanline < cinfo.image_height) {
    for (j=0; j<width; j++) {
      ival = img[(i*width)+j]; // 8 bit image value
      jline[(j*3)] = colors[ival].Red;
      jline[(j*3)+1] = colors[ival].Green;
      jline[(j*3)+2] = colors[ival].Blue;
    }
    row_pointer[0] = jline;
    (void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
    i++;
  }
  jpeg_finish_compress(&cinfo);
  fclose(opf);
  free(jline);
} // make_jpeg

Essentially I made my own graphics library

Code: Select all

 
 void tick(int x, int y) { // draw a simple +
  int xt, yt;
  for (xt=x-2; xt<(x+3); xt++) { // horizontal part
    if ((xt > 0) && (xt < width)) {
      img[(width * y) + xt] = tickval;
    }
  }
  for (yt=y-2; yt<(y+3); yt++) {
    if ((yt>0) && (yt<height)) {
      img[(width*yt) + x] = tickval;
    }
  }
}
But it's that same img[(width * y) + xt] algorithm that turns a 1-dimensional array into a 2-dimensional image.

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Sat Feb 02, 2019 12:51 am

I was hoping the TV hat could be used as a SDR, but first look perhaps not?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Sat Feb 02, 2019 1:48 am

Gavinmc42 wrote:
Sat Feb 02, 2019 12:51 am
I was hoping the TV hat could be used as a SDR, but first look perhaps not?
Maybe, but you can't buy one in the US because it doesn't do ATSC so it won't work. It does DVB-T or something like that, only useful in Europe. Our TV isn't worth bothering with anyway. Not marketed here. I have an ATI HD-750 "TV Wonder" USB dongle that was a total waste of $20 or so. Can't find any drivers for it, Windows or Linux, never had it working. I have a Happauge (I think) card that plugs into a PCI slot (circa 2002) that does work, might be able to do SDR. Never got the DVB working on the rtl2832 dongles either.

I got a cheap rtl2832 for under $11 from Banggood or someplace like that, supposedly it's not quite as good. It sort of works. I have about 3 NooElec ones that are fine. One runs all the time recording temperatures from an outdoor sensor with rtl_433, I have 2.5 years worth of data from it. Plugged into an old laptop with a good oversize battery so it takes a long power outage to bring it down. A Pi could probably do it.
3years.png
3years.png (39 KiB) Viewed 1447 times

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Sat Feb 02, 2019 6:36 am

Been thinking about your plots, so much signal/noise it is basically just pixels.
Framebuffer is the way to go, OpenGLES/VG etc probably won't speed up plotting pixels.
That does mean those QPUs are free to do FFT's.

A Pi can definitely log data, got more than 4 years of proof. PiCore version of TinyCore Linux.

Been a few years since i looked at SDR, things are happening
https://hackaday.com/2018/04/14/the-ras ... t-the-sdr/
http://www.kinetic.co.uk/TrilbyFAQ.php

A FPGA hat that can do SDR too :o
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Sat Feb 02, 2019 2:47 pm

Only £149.99 (inc VAT)
That can wait, that's for sure (Trilby hat)

I don't have a 3B+, just 3 3Bs, don't plan on buying one. I'd be more apt to get a RockPro64 https://www.pine64.org/?page_id=61454 but I'm definitely interested in a 14 inch Pinebook when they're available again. https://www.pine64.org/?page_id=3707 I have a Rock64, not sure why I'm not using it. I got the model with 4 GB of RAM because that seems to be the biggest shortcoming of the Pi. The Pi has a much bigger userbase and it's much more polished. Bleeding edge Rock stuff is all done in Chinese, it takes a while to trickle down to English. There's unstable software for it, I'm running an Ayufan image and I have 58 days of uptime right now. Armbian I didn't like.

But being able to make the WiFi wander is something I thought of a long time ago, even posted a question once about it. I don't have anything that receives 2.4 GHz, other than wifi. I'd put a dish on it and do SETI. Or use a pair of them and do interferometry (radio astronomy).

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Sun Feb 03, 2019 2:44 am

Now I'm not sure what to think. I used this code https://stackoverflow.com/questions/195 ... spberry-pi and it not only worked, it seemed very fast. They open /dev/fb0 (standard framebuffer device) as a file, then use mmap() to get a pointer. So very quickly the top half of my screen looked like:
so_fb_test1.png
so_fb_test1.png (25.21 KiB) Viewed 1377 times
Except I guess I was expecting a small area. I've got a pointer that (probably) lets me read and write anywhere on the screen. With no mailboxes or memory barriers or any of that. I think that stuff is being handled by bcm2708_fb.c which is part of the kernel. I guess I can back up the area I want to write to and go ahead and write. Freaky.

Exactly, looking in bcm2708.c I see on searching for mailbox:

Code: Select all

       pr_info("bcm2708_fb_set_par info(%p) %dx%d (%dx%d), %d, %d\n", info,
                info->var.xres, info->var.yres, info->var.xres_virtual,
                info->var.yres_virtual, (int)info->screen_size,
                info->var.bits_per_pixel);

        /* ensure last write to fbinfo is visible to GPU */
        wmb();

        /* inform vc about new framebuffer */
        bcm_mailbox_write(MBOX_CHAN_FB, fb->dma);

        /* wait for response */
        bcm_mailbox_read(MBOX_CHAN_FB, &val);
I was thinking I'd like to make a GTK widget that's like a drawing area in a frame with buttons and controls around it. I didn't expect it to take over the desktop. Now how to put a transparent window to the framebuffer in the middle of a GTK app I still have to figure out.

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Sun Feb 03, 2019 3:10 am

Easier to take over whole screen.
I think you need to use Dispmanx and EGL to get a Window in x11?
I don't get how to yet.

No 3B+ :o
That's the best one, it just pushes the Pi's over the edge into useful desktop PC territory .
One of mine is an early one, does not like full speed 1.4GHz, but 1.3GHz is fine.

I might get a Mali based SoC but only to play with ARM's compute Library Mali based OpenCL
Pi based OpenCL is not quite there yet. hey I should check that for FFT.
https://github.com/doe300/VC4CL
Because of the DMA-interface which has no MMU between the GPU and the RAM, code executed on the GPU can access any part of the main memory! This means, an OpenCL kernel could be used to read sensitive data or write into kernel memory!
Of course doing fft on the QPU's and allowing the VC4 to write to framebuffer memory is a NICE feature ;)

Not sure if there is FFT in the Compute library?
Yikes, lots in there, going to takes ages to search.

If I had time and money to learn another probably an Allwinner A64 based SoC like this one?
https://www.olimex.com/Products/OLinuXi ... e-hardware
Apart from the Mali GPU the rest is very Pi like,the only reason to get it would be to learn the Mali GPU.

For support datasheet wise iMX8 family.
The 8 core (9 if you count the dsp) 4K, Vulkan is probably going to be Pi4 like?
4K and Vulkan interest me more than Mali.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Sun Feb 03, 2019 4:06 am

There's always /opt/vc/src/hello_pi/hello_fft as an example. Not sure if it's really going to be faster than fftw or not but it's one less thread. Passing stuff back and forth to and from the GPU may be slower than what you gain. Computers are a lot faster than in 8088 days. I have a gphoto project where I'm taking viewfinder images (over USB) from a camera and comparing them to see whether anything changed or not, for a wildlife camera. I put every pixel in those images through several rounds of calculations and i still get about 8 frames/second. On a Zero. Runs for hours on a 12 volt 7 AH SLA battery. False triggers too much, like when a cloud goes over. The last thing I was trying was averaging all the pixels then comparing each one to the average, so a cloud will hopefully affect the average

Thanks for the OpenCL link, I've sort of been watching that. If you can do OpenCL you can mine Bitcoin (or about anything else). Guys build these computers with multiple video cards, draw hundreds of watts. ASIC rigs are more efficient but with OpenCL you can just use different software for different coins/algorithms. Really need to have free electricity like solar to make much profit though. And the more you invest in hardware the faster it goes. There's no free lunch.

Dispmanx, I don't know. If I can read where the corners of the window are in pixels I can calculate addresses to write to in the framebuffer. Doesn't matter what's under it, it will be gone. I could use a drawing area but draw with the framebuffer there instead. I'll need to be able to read mouse clicks, I can do that from GTK I think. But I can't be the first person that's ever wanted to do this, I'm probably reinventing the wheel.

My Zero was analyzing the pictures and tripping the shutter here. I assembled them with Photoprint and the order is weird, it mostly starts at the upper right and ends lower left. No, worse, the 2 of him holding the sausage over the edge of the wall were last. He's watching people in the house about 10 feet away to the right.
exported_chip_792.jpg
exported_chip_792.jpg (148.13 KiB) Viewed 1346 times

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Sun Feb 03, 2019 7:48 am

I had forgotten hello_fft, thanks.

I tried 4+ years ago to do motion detection based on jpeg file size difference.
Gave up and used MotionPie, which I still use along with Pikrellcam.
Pikrellcam uses the motion vectors generated by h.264 for motion detection.
Big moving tree branches will trigger but clouds not so much.

Have not made a portable version yet, need to collect a few more Zero's.
Been looking at solar but always on is power hungry, or so I thought.
http://www.latticesemi.com/en/Products/ ... imaxHM01B0

Fastest Zero/camera boot time is about 3sec, how much power can be saved in sleep?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 4031
Joined: Wed Aug 28, 2013 3:31 am

Re: My es2gears went black

Sun Feb 03, 2019 10:39 am

I noticed some SDR on the Fosdem schedule.
https://fosdem.org/2019/schedule/track/ ... are_radio/
Slides have some links to SDR pages I was not aware of.

Seems to something for everyone there.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
ab1jx
Posts: 868
Joined: Thu Sep 26, 2013 1:54 pm
Location: Heath, MA USA
Contact: Website

Re: My es2gears went black

Mon Feb 04, 2019 2:02 am

Hmm, I can't afford to fly to Europe. I have a few dishes, mostly TVRO, but one big old 4 footer I grabbed from the dump andnever used. For all those MHz up there not much of it's very interesting. I happened to hear the state police catching the Boston Bomber a few years back at 900+ MHz.

A real simple way to deal with solar is a PB137 chip mounted on something for a heat sink. https://www.alldatasheet.com/datasheet- ... PB137.html Handles about 1 amp, puts out 13.7 volts, 3- terminal regulator chip like an LM7805. Intended specifically for charging lead-acid batteries. Linear, not switching but less radio noise too. Use one on each 20 watt panel. I have 3 old Harbor Freight 20 watt monocrystalline panels, a 26 watt or so polycrystalline, then last winter I picked up a new 100 watt polycrystalline from Home Depot for $100 with free shipping. None of them hooked up at the moment.

Working on a scroll test program with a framebuffer. No crashes yet but I'm juggling it around things that I don't want interrupted. I can back up a screen area to memory and put it back, now to write the big test.

We're just coming out of a 2nd cold snap of the year, this has a fancy name of polar vortex. Killed 2 dozen people in the midwest, I remember 20 below was fairly common, that was before the polar vortex name but probably the same thing.
week.png
week.png (11.57 KiB) Viewed 1286 times
5901012 lines in 60 seconds, needs tidying up. No crashes. Just using memcpy(). Next run: 5798952 lines in 60 seconds = 96649.203 lines/sec. Those are 1 pixel-high lines AKA scanlines. I'm using a 1920x1080 screen on a Pi 3B, scrolling 50% of the width in the center of the screen, an area 90% of the screen height high. In about 9 seconds the top scrolls off the bottom. CPU usage, looks like it's keeping 1 core pretty busy, but I'm running it flat out too to see what it will do. I don't need to scroll this fast, more like 10 lines/sec.
Last edited by ab1jx on Mon Feb 04, 2019 3:21 am, edited 2 times in total.

Return to “Troubleshooting”