diff options
author | Sven Gothel <sgothel@jausoft.com> | 2012-02-13 07:00:01 +0100 |
---|---|---|
committer | Sven Gothel <sgothel@jausoft.com> | 2012-02-13 07:00:01 +0100 |
commit | 4011e70eed8c88aee0fcd051a50ab3f15bb94f68 (patch) | |
tree | e7fb1c33d4c0e75fc52dc3ec2d927f76c51de216 /doc/Platform.GLES.txt | |
parent | ddd375375025fb83aba90c80b9a089876dad5434 (diff) |
OpenGL ES/EGL Overhaul
- GLProfile properly detects native EGL/ES1/ES2 on the 'desktop' device factory.
This allows usage of Mesa's EGL/ES or Imageon's PVR emulation, etc.
- GLProfile drops getDefaultDesktopDevice() and getDefaultEGLDevice()
since both are aligned by getDefaultDevice().
- Fix GL_ARB_ES2_compatibility detection and utilize
resulting isGLES2Compatible() where possible.
This allows ES2 compatible desktop profiles to use core ES2 functionality
(glShaderBinary() .. etc) even with a GL2ES2 desktop implementation.
- EGLDrawable: If createSurface(..) fails (BAD_NATIVE_WINDOW) w/ surfaceHandle
it uses windowHandle if available and differs.
This allows the ANGLE impl. to work.
- Properly order of EGL/ES library lookup:
ES2: libGLESv2.so.2, libGLESv2.so, GLES20, GLESv2_CM
EGL: libEGL.so.1, libEGL.so, EGL
- *DynamicLookupHelper reference will be null if it's library is not complete
(all tool libs, all glue libs and a ProcAddressFunc lookup function - if named).
- Enhance GL version string (incl. ES2 compatible, hw/sw, ..)
- GLBase: Fix docs and remove redundancies
- Prepared (disabled) DesktopES2DynamicLibraryBundleInfo
to be used for a real EGL/ES2 implementation within the desktop GL lib (AMD).
Sadly it currenly crashed within eglGetDisplay(EGL_DEFAULT_DISPLAY),
hence it's disabled.
Diffstat (limited to 'doc/Platform.GLES.txt')
-rw-r--r-- | doc/Platform.GLES.txt | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/doc/Platform.GLES.txt b/doc/Platform.GLES.txt new file mode 100644 index 000000000..0bcd3bc8b --- /dev/null +++ b/doc/Platform.GLES.txt @@ -0,0 +1,112 @@ + +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 + + + |