summaryrefslogtreecommitdiffstats
path: root/doc/Platform.GLES.txt
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-02-13 07:00:01 +0100
committerSven Gothel <[email protected]>2012-02-13 07:00:01 +0100
commit4011e70eed8c88aee0fcd051a50ab3f15bb94f68 (patch)
treee7fb1c33d4c0e75fc52dc3ec2d927f76c51de216 /doc/Platform.GLES.txt
parentddd375375025fb83aba90c80b9a089876dad5434 (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.txt112
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
+
+
+