Can somebody help to understand how to solve this problem https://jogamp.org/bugzilla/show_bug.cgi?id=1062
|
Administrator
|
Hi
Does glxgears work on your device? I try to determine whether your problem comes from JOGL or from OpenGL.
Julien Gouesse | Personal blog | Website
|
Yes glxgears run perfectly.
Also hellogl_es2 from the Qt work fine. |
Administrator
|
The crash occurs here:
https://github.com/sgothel/jogl/blob/master/src/jogl/classes/jogamp/opengl/GLContextImpl.java#L1331 What does glxinfo show? What do you obtain for OpenGL vendor string, OpenGL renderer string and OpenGL version string?
Julien Gouesse | Personal blog | Website
|
name of display: :0
display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: GLX_ARB_multisample, GLX_EXT_import_context, 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_SGI_make_current_read client glx vendor string: Vivante Corp client glx version string: 1.4 client glx extensions: GLX_ARB_get_proc_address, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_make_current_read GLX version: 1.4 GLX extensions: GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_make_current_read OpenGL vendor string: Vivante Corporation OpenGL renderer string: Vivante GC2000 OpenGL version string: 2.1 2.0.1 OpenGL shading language version string: 1.20 OpenGL extensions: GL_ARB_depth_texture, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_pixel_buffer_object, GL_ARB_shader_objects, GL_ARB_texture_compression, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle, GL_ARB_vertex_buffer_object, GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_element_array, GL_ATI_separate_stencil, GL_ATI_texture_env_combine3, GL_ATI_vertex_array_object, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_color_table, GL_EXT_convolution, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object, GL_EXT_histogram, GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_stencil_two_side, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_timer_query, GL_EXT_vertex_array, GL_NV_texture_rectangle, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGI_color_matrix, WGL_ARB_extensions_string, WGL_EXT_extensions_string, WGL_EXT_swap_control |
Administrator
|
Please try to force the use of OpenGL instead of OpenGL ES by using an example supporting GL2 and asking a GL2 GLProfile.
I think that there is a problem with the driver but only when you use OpenGL ES, not with OpenGL.
Julien Gouesse | Personal blog | Website
|
This post was updated on .
>force the use of OpenGL instead of OpenGL ES
How can I do this? Also i try compile this C code http://pastebin.com/Vnje5sEe And run it. It's work correct EGL Vendor: Vivante Corporation Version: 1.4 Client APIs: OpenGL_ES OpenVG Extensions: EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_lock_surface OpenGL ES Vendor: Vivante Corporation Renderer: Vivante GC2000 Version: OpenGL ES 2.0 GLSL version: OpenGL ES GLSL ES 1.00 Extensions: GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture GL_OES_EGL_image GL_OES_depth24 GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_texture_npot GL_OES_vertex_half_float GLt Implementation limits: GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 12 GL_MAX_CUBE_MAP_TEXTURE_SIZE = 8192 GL_MAX_FRAGMENT_UNIFORM_VECTORS = 64 GL_MAX_RENDERBUFFER_SIZE = 8192 GL_MAX_TEXTURE_IMAGE_UNITS = 8 GL_MAX_TEXTURE_SIZE = 8192 GL_MAX_VARYING_VECTORS = 11 GL_MAX_VERTEX_ATTRIBS = 16 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 4 GL_MAX_VERTEX_UNIFORM_VECTORS = 168 GL_MAX_VIEWPORT_DIMS = 8192, 8192 |
Administrator
|
Please try this example, just replace "new GLCanvas()" by "new GLCanvas(new GLCapabilities(GLProfile.get(GLProfile.GL2)))":
https://gist.github.com/gouessej/3420e2b6f632efdddf98
Julien Gouesse | Personal blog | Website
|
Some research of crash.
Crash occurs because one of the libraries not loading. This library is used LibGL.so and it loading libraries. It's why crash happened. Why C code work? Because jogl call init function from libEGL.so but use function glGetString from libGL.so instead libGLESv2.so For use glGetString from libGL.so we need init function libGL.so |
>This library is used LibGL.so and it loading libraries.
LibGL.so use and load /usr/lib/dri/vivante_dri.so |
Administrator
|
On 09/08/2014 06:39 PM, Ilya Averyanov [via jogamp] wrote:
>>This library is used LibGL.so and it loading libraries. > LibGL.so use and load /usr/lib/dri/vivante_dri.so rings a bell .. some 'odd jobs' tried to produce a libGL desktop GL based on ES2 hardware .. a hack, which doesn't work properly. (had same w/ Rasp-Pi and/or Pandaboard I guess) Remove the libGL .. right, not nice, need to add a property to skip it's detection - or you only load w/ mobile jar files. ~Sven signature.asc (828 bytes) Download Attachment |
Also, i have
Next list of library libGLESv1_CM.so libGLESv1_CL.so libGLESv2.so libGL.so libEGL.so libGLES_CM.so libGLES_CL.so if I leave libEGL.so and libGLESv2.so i get Natives GL4bc false GL4 false GLES3 false GL3bc false GL3 false GL2 false GLES2 true [2.0 (ES profile, ES2 compat, FBO, hardware)] GLES1 false Count 1 / 8 Common GL4ES3 false GL2GL3 false GL2ES2 true GL2ES1 false Mappings GLES2 GLProfile[GLES2/GLES2.hw] GL2ES2 GLProfile[GL2ES2/GLES2.hw] default GLProfile[GLES2/GLES2.hw] Count 2 / 12 if I leave libEGL.so libGLESv1_CM.so i get EGLGraphicsDevice[type .egl, connection :0]: Natives GL4bc false GL4 false GLES3 false GL3bc false GL3 false GL2 false GLES2 false GLES1 true [1.0 (ES profile, FP32 compat, hardware)] Count 1 / 8 Common GL4ES3 false GL2GL3 false GL2ES2 false GL2ES1 true Mappings GLES1 GLProfile[GLES1/GLES1.hw] GL2ES1 GLProfile[GL2ES1/GLES1.hw] default GLProfile[GLES1/GLES1.hw] Count 2 / 12 ===== How to get them to work together? |
Administrator
|
What do you mean by "How to get them to work together? "?
There is not yet a clean solution to skip one of them except by using jogl-mobile instead of jogl-all. However, you'll have to choose between ES1 and ES2 in your program, you can't use both at the same time.
Julien Gouesse | Personal blog | Website
|
Administrator
|
On 09/09/2014 12:35 PM, gouessej [via jogamp] wrote:
> What do you mean by "How to get them to work together? "? > > There is not yet a clean solution to skip one of them except by using > jogl-mobile instead of jogl-all. However, you'll have to choose between ES1 > and ES2 in your program, you can't use both at the same time. Yeah, I guess Ilya meant to have them all in place (native GL libs) and working together. He figured that it crashes somehow having them all in place. Well, bad news, this must be a bug in those native GL libs provided. I remember this from first experiences w/ e.g. OMAP EGL/ES libs, but nowadays they do work together, e.g. MESA, OMAP, ARM, AMD, NVIDIA, RASPI, .. Ilya, if you find an acceptable workaround w/ JOGL here, i.e. properties .. skipping profiles etc, let us know and we can put this into our code. ~Sven signature.asc (828 bytes) Download Attachment |
Ok. I think I found a not very correct code.
https://github.com/sgothel/jogl/blob/master/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java#L169 Pass null to third argument, does not look correct. >attrib_list > Specifies a list of attribute/value pairs. > The last attribute must be None. PS. On my system if third argument is null I get a crash when I try to dereference the pointer. |
Administrator
|
In reply to this post by Ilya Averyanov
http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/g_man/cat3/OpenGL/glxchoosefbconfig.z
Julien Gouesse | Personal blog | Website
|
Administrator
|
On 09/09/2014 04:50 PM, gouessej [via jogamp] wrote:
> Ilya Averyanov wrote > Pass null to third argument, does not look correct. > > http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/g_man/cat3/OpenGL/glxchoosefbconfig.z > > If attribList is NULL then glXChooseFBConfig returns an array of GLX frame > buffer configurations that are available on the specified screen > Same here: <https://www.opengl.org/sdk/docs/man2/xhtml/glXChooseFBConfig.xml> "If attrib_list is NULL, then glXChooseFBConfig returns an array of GLX frame buffer configurations that are available on the specified screen." .. and in the the official GLX spec: <http://www.opengl.org/documentation/specs/glx/glx1.4.pdf> "If attrib list is NULL or empty (first attribute is None), then selection and sorting of GLXFBConfigs is done according to the default criteria in Tables 3.4 and 3.1, as described below under Selection and Sorting." Hence 'NULL' or '{ NONE }' shall be equivalent and both legal. This might be a bug in that EGL/GLX wrapper implementation you use ? ~Sven signature.asc (828 bytes) Download Attachment |
Administrator
|
In reply to this post by gouessej
On 09/09/2014 10:31 PM, Sven Gothel wrote:
> On 09/09/2014 04:50 PM, gouessej [via jogamp] wrote: >> Ilya Averyanov wrote >> Pass null to third argument, does not look correct. >> >> http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/g_man/cat3/OpenGL/glxchoosefbconfig.z >> >> If attribList is NULL then glXChooseFBConfig returns an array of GLX frame >> buffer configurations that are available on the specified screen >> > > Same here: > > <https://www.opengl.org/sdk/docs/man2/xhtml/glXChooseFBConfig.xml> > > "If attrib_list is NULL, then glXChooseFBConfig returns an array of GLX > frame buffer configurations that are available on the specified screen." > > > .. and in the the official GLX spec: > > <http://www.opengl.org/documentation/specs/glx/glx1.4.pdf> > > "If attrib list is NULL or empty (first attribute is None), then selection > and sorting of GLXFBConfigs is done according to the default criteria in > Tables 3.4 and 3.1, as described below under Selection and Sorting." > > Hence 'NULL' or '{ NONE }' shall be equivalent and both legal. > > This might be a bug in that EGL/GLX wrapper implementation you use ? > of the glXChooseFBConfig function you use .. Maybe you can contact 'upstream', i.e. the implementor and notify them about this bug. We surely could also workaround this issue and do pass '{ NONE }' here .. to sooth this issue swiftly :) However, keep in mind that this code works for eons :) It would be nice if you can do the patch and test it on your [buggy] system. Then please offer the working patch via git (email, pull request). Thank you. > ~Sven > > signature.asc (828 bytes) Download Attachment |
Free forum by Nabble | Edit this page |