GL2ES2 on Desktop
=================

GL2ES2 Profile with GL_ARB_ES2_compatibility:
    Extension is supported and recognized properly.
    It can be queried via GLContext.isGLES2Compatible()
    and impacts many ES2 related GL2ES2 wrapper functions
    like glShaderBinary(..).
    Having ES2 compatibility results in a full ES2 implementation
    even if using GL2ES2 via a desktop profile.
    Of course, ES2 extensions are not supported in this case.


Native GLES2 on Desktop
=======================

Ensure that the native ES2/EGL libraries are available in your LD_LIBRARY_PATH
(or equivalent). Note that JOGL favors the spec lib names for it's lib name order:
  ES2: libGLESv2.so.2, libGLESv2.so, GLES20, GLESv2_CM
  EGL: libEGL.so.1, libEGL.so, EGL

To utilize native ES2 on desktop (See TestGLProfile02NEWT and TestGearsES2NEWT)
you have to request the actual profile 'GLES2' otherwise
a request for e.g. GL2ES2 will utilize the highest common desktop profile.

<...
        if(!GLProfile.isAvailable(GLProfile.GLES2)) {
            System.out.println("GLProfile GLES2 n/a");
            return;
        }
        GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GLES2));
...>

Linux:
    PVRVFrame 2.09.29.0649
        Debian Wheezy/testing x64, NV 290.10, 32bit libraries: OK
            GL_VENDOR     Imagination Technologies (Host GL: `NVIDIA Corporation`)
            GL_RENDERER   PowerVR PVRVFrame 8.1 SGX (Host GL: `GeForce GTX 460/PCI/SSE2`)
            GL_VERSION    OpenGL ES 2.0 ( SDK build: 2.09.29.0646 )
            GL_EXTENSIONS 
                          GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_query_matrix GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format 
                          GL_IMG_read_format GL_OES_point_sprite GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_blend_subtract 
                          GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette 
                          GL_IMG_multisampled_render_to_texture GL_OES_vertex_half_float GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture 
                          GL_OES_depth24 GL_OES_depth_texture GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_packed_depth_stencil 
                          GL_EXT_discard_framebuffer GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_stencil8 
                          GL_OES_fragment_precision_high GL_OES_element_index_uint GL_IMG_texture_compression_pvrtc GL_OES_mapbuffer GL_OES_texture_npot GL_EXT_multi_draw_arrays
            GLX_EXTENSIONS


        Debian Wheezy/testing x64, NV 290.10, 64bit libraries: Failure (eglCreateContext EGL_BAD_ATTRIBUTE)

        Ubuntu 11.10 x64, AMD Catalyst 12.1, 32bit libraries: 
            X Error of failed request:  BadMatch (invalid parameter attributes)
              Major opcode of failed request:  137 (GLX)
              Minor opcode of failed request:  5 (X_GLXMakeCurrent)
              Serial number of failed request:  51
              Current serial number in output stream:  51
            dlopen tries: libGL.so

    OpenGL ES 2.0 Mesa (libegl1-mesa*, libgles2-mesa*)
        Debian Wheezy/testing x64, NV 290.10, 64bit libraries, libgles2-mesa 7.11.2-1: OK
            GL_VENDOR     Mesa Project
            GL_RENDERER   Software Rasterizer
            GL_VERSION    OpenGL ES 2.0 Mesa 7.11.2
            GL_EXTENSIONS 
                          GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap 
                          GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot GL_OES_depth_texture 
                          GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV 
            GLX_EXTENSIONS
                          EGL_KHR_surfaceless_opengl EGL_KHR_surfaceless_gles1 EGL_KHR_surfaceless_gles2 


        Ubuntu 11.10 x64, AMD Catalyst 12.1, 64bit libraries, libgles2-mesa 7.11-0ubuntu3: Error (swrast error, null values)

Windows:
    PVRVFrame 2.09.29.0649
       Windows7 64bit, NV 290.10, 32bit libraries: OK 
            GL_VENDOR     Imagination Technologies (Host GL: `NVIDIA Corporation`)
            GL_RENDERER   PowerVR PVRVFrame 8.1 SGX (Host GL: `GeForce GTX 460/PCIe/SSE2`)
            GL_VERSION    OpenGL ES 2.0 ( SDK build: 2.09.29.0646 )
            GL_EXTENSIONS
                          GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_query_matrix GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format 
                          GL_IMG_read_format GL_OES_point_sprite GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_blend_subtract 
                          GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette 
                          GL_IMG_multisampled_render_to_texture GL_OES_vertex_half_float GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture 
                          GL_OES_depth24 GL_OES_depth_texture GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_packed_depth_stencil 
                          GL_EXT_discard_framebuffer GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_stencil8 
                          GL_OES_fragment_precision_high GL_OES_element_index_uint GL_IMG_texture_compression_pvrtc GL_OES_mapbuffer GL_OES_texture_npot GL_EXT_multi_draw_arrays
            GLX_EXTENSIONS

    ANGLE
       Windows7 64bit, NV 290.10, 32bit libraries: OK
            GL_VENDOR     Google Inc.
            GL_RENDERER   ANGLE (NVIDIA GeForce GTX 460)
            GL_VERSION    OpenGL ES 2.0 (ANGLE 1.0.0.937)
            GL_EXTENSIONS
                          GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_half_float 
                          GL_OES_texture_half_float_linear GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_npot GL_EXT_read_format_bgra 
                          GL_EXT_robustness GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_EXT_texture_storage 
                          GL_ANGLE_framebuffer_blit 
                          GL_ANGLE_framebuffer_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 
                          GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_NV_fence
            GLX_EXTENSIONS
                          EGL_NV_post_sub_buffer 
                          EGL_ANGLE_query_surface_pointer EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle 
                          EGL_EXT_create_context_robustness
            GLSL          true, shader-compiler: true