Bug 1426

Summary: OpenGL intialization gives fatal error on some Linux distributions
Product: [JogAmp] Jogl Reporter: Mabula Haverkamp <mabula>
Component: openglAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: critical CC: gouessej, mabula
Priority: P4    
Version: 2.4.0   
Hardware: pc_x86_64   
OS: linux   
Type: DEFECT SCM Refs:
Workaround: ---
Attachments: debug log, ATI FireGL, Mesa 20.0.7
debug_logs_dariusz.krzempek - Turks [Radeon HD 6500/6600 / 6700M Series]
debug_logs_Minusman AMD REDWOOD
debug_logs_dariusz.krzempek-20200602 Turks [Radeon HD 6500/6600 / 6700M Series]
final lines of running application with -Djogl.debug=all

Description Mabula Haverkamp 2020-03-02 18:21:14 CET
The fatal error occurs when trying to initialize OpenGL with both the following commands:

com.jogamp.opengl.GLProfile.getMaxProgrammable(true)

and

com.jogamp.opengl.GLProfile.getMaxProgrammableCore(true) 

The stacktrace of the fatal error is:
Exception in thread "AWT-EventQueue-0" java.lang.InternalError: XXX0 profile[2]: GL2 -> profileImpl GL3bc !!! not mapped 
at com.jogamp.opengl.GLProfile.computeProfileMap(GLProfile.java:2098)
at com.jogamp.opengl.GLProfile.initProfilesForDeviceCritical(GLProfile.java:1976)
at com.jogamp.opengl.GLProfile.initProfilesForDevice(GLProfile.java:1895)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1861)
at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:239)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:225)
at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2324)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1042)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1071)
at com.jogamp.opengl.GLProfile.getMaxProgrammable(GLProfile.java:847) 

The error is happening on Linux systems that are running Mesa Version: 19.2.8 
that have an Ati/AMD graphical chip. The error has been reported on (K)Ubuntu 18.04 and Linux Mint 19.3.

Details of the affected systems are:

Linux darekpc 5.3.0-41-generic #33~18.04.1-Ubuntu SMP Mon Feb 17 12:51:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks XT [Radeon HD 6670/7670]
Subsystem: Dell Turks XT [Radeon HD 6670/7670]
Kernel driver in use: radeon
Kernel modules: radeon

glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: X.Org (0x1002)
Device: AMD TURKS (DRM 2.50.0 / 5.3.0-41-generic, LLVM 9.0.0) (0x6758)
Version: 19.2.8
Accelerated: yes
Video memory: 1024MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 3.3
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
Memory info (GL_ATI_meminfo):
VBO free memory - total: 1023 MB, largest block: 1023 MB
VBO free aux. memory - total: 1021 MB, largest block: 1021 MB
Texture free memory - total: 1023 MB, largest block: 1023 MB
Texture free aux. memory - total: 1021 MB, largest block: 1021 MB
Renderbuffer free memory - total: 1023 MB, largest block: 1023 MB
Renderbuffer free aux. memory - total: 1021 MB, largest block: 1021 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 1024 MB
Total available memory: 2045 MB
Currently available dedicated video memory: 1023 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD TURKS (DRM 2.50.0 / 5.3.0-41-generic, LLVM 9.0.0)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.2.8
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.1 Mesa 19.2.8
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.2.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10 

and

Linux Mint 19.3

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD REDWOOD (DRM 2.50.0 / 5.3.0-40-generic, LLVM 9.0.0) (0x68d8)
    Version: 19.2.8
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1



kuehn@kuehn-HP-EliteDesk-800-G1-TWR:~$ glxinfo
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_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, 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_INTEL_swap_event,
    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, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context,
    GLX_ARB_create_context_no_error, 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_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_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
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD REDWOOD (DRM 2.50.0 / 5.3.0-40-generic, LLVM 9.0.0) (0x68d8)
    Version: 19.2.8
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 1023 MB, largest block: 1023 MB
    VBO free aux. memory - total: 1021 MB, largest block: 1021 MB
    Texture free memory - total: 1023 MB, largest block: 1023 MB
    Texture free aux. memory - total: 1021 MB, largest block: 1021 MB
    Renderbuffer free memory - total: 1023 MB, largest block: 1023 MB
    Renderbuffer free aux. memory - total: 1021 MB, largest block: 1021 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 2045 MB
    Currently available dedicated video memory: 1023 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD REDWOOD (DRM 2.50.0 / 5.3.0-40-generic, LLVM 9.0.0)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.2.8
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_depth_clamp_separate,
    GL_AMD_draw_buffers_blend, GL_AMD_multi_draw_indirect,
    GL_AMD_performance_monitor, GL_AMD_pinned_memory,
    GL_AMD_query_buffer_object, GL_AMD_seamless_cubemap_per_texture,
    GL_AMD_shader_stencil_export, GL_AMD_shader_trinary_minmax,
    GL_AMD_texture_texture4, 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_1_compatibility, GL_ARB_ES3_2_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_clear_texture, GL_ARB_clip_control,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    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_derivative_control, 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_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image,
    GL_ARB_gpu_shader5, 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_parallel_shader_compile, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_sprite,
    GL_ARB_polygon_offset_clamp, GL_ARB_program_interface_query,
    GL_ARB_provoking_vertex, GL_ARB_query_buffer_object,
    GL_ARB_robust_buffer_access_behavior, GL_ARB_robustness,
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,
    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects,
    GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_precision,
    GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object,
    GL_ARB_shader_subroutine, GL_ARB_shader_texture_image_samples,
    GL_ARB_shader_texture_lod, GL_ARB_shading_language_420pack,
    GL_ARB_shading_language_packing, GL_ARB_stencil_texturing, GL_ARB_sync,
    GL_ARB_tessellation_shader, GL_ARB_texture_barrier,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression_bptc,
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map_array,
    GL_ARB_texture_filter_anisotropic, 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_query_lod,
    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_binding,
    GL_ARB_vertex_buffer_object, 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_meminfo,
    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_object, 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_filter_anisotropic,
    GL_EXT_texture_integer, GL_EXT_texture_mirror_clamp, GL_EXT_texture_sRGB,
    GL_EXT_texture_sRGB_R8, 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_KHR_no_error,
    GL_KHR_parallel_shader_compile, GL_KHR_robust_buffer_access_behavior,
    GL_KHR_robustness, GL_KHR_texture_compression_astc_ldr,
    GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert,
    GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba,
    GL_NVX_gpu_memory_info, GL_NV_conditional_render, GL_NV_depth_clamp,
    GL_NV_packed_depth_stencil, GL_NV_texture_barrier, GL_NV_vdpau_interop,
    GL_OES_EGL_image, GL_S3_s3tc

OpenGL version string: 3.1 Mesa 19.2.8
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
    GL_AMD_conservative_depth, GL_AMD_depth_clamp_separate,
    GL_AMD_draw_buffers_blend, GL_AMD_multi_draw_indirect,
    GL_AMD_performance_monitor, GL_AMD_pinned_memory,
    GL_AMD_query_buffer_object, GL_AMD_seamless_cubemap_per_texture,
    GL_AMD_shader_stencil_export, GL_AMD_shader_trinary_minmax,
    GL_AMD_texture_texture4, GL_ANGLE_texture_compression_dxt3,
    GL_ANGLE_texture_compression_dxt5, GL_APPLE_packed_pixels,
    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_clear_texture,
    GL_ARB_clip_control, GL_ARB_color_buffer_float, GL_ARB_compatibility,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    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_derivative_control,
    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_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    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_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_occlusion_query2,
    GL_ARB_parallel_shader_compile, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_polygon_offset_clamp, GL_ARB_program_interface_query,
    GL_ARB_provoking_vertex, GL_ARB_query_buffer_object,
    GL_ARB_robust_buffer_access_behavior, GL_ARB_robustness,
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,
    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects,
    GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_stencil_export,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, 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_barrier, GL_ARB_texture_border_clamp,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression,
    GL_ARB_texture_compression_bptc, 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_filter_anisotropic, 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_query_lod, 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_viewport_array, GL_ARB_window_pos, GL_ATI_blend_equation_separate,
    GL_ATI_draw_buffers, GL_ATI_fragment_shader, GL_ATI_meminfo,
    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_gpu_shader4,
    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_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_buffer_object,
    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_filter_anisotropic,
    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_R8,
    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_KHR_no_error,
    GL_KHR_parallel_shader_compile, GL_KHR_robust_buffer_access_behavior,
    GL_KHR_robustness, GL_KHR_texture_compression_astc_ldr,
    GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert,
    GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba,
    GL_MESA_window_pos, GL_NVX_gpu_memory_info, 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_barrier,
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_NV_vdpau_interop,
    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.1 Mesa 19.2.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
    GL_AMD_performance_monitor, 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_buffer_storage, GL_EXT_clip_control, GL_EXT_clip_cull_distance,
    GL_EXT_color_buffer_float, GL_EXT_compressed_ETC1_RGB8_sub_texture,
    GL_EXT_copy_image, GL_EXT_depth_clamp, GL_EXT_discard_framebuffer,
    GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers,
    GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex,
    GL_EXT_float_blend, GL_EXT_frag_depth, GL_EXT_geometry_point_size,
    GL_EXT_geometry_shader, GL_EXT_gpu_shader5, GL_EXT_map_buffer_range,
    GL_EXT_multi_draw_arrays, GL_EXT_occlusion_query_boolean,
    GL_EXT_polygon_offset_clamp, GL_EXT_primitive_bounding_box,
    GL_EXT_read_format_bgra, GL_EXT_render_snorm, GL_EXT_robustness,
    GL_EXT_sRGB_write_control, GL_EXT_separate_shader_objects,
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,
    GL_EXT_shader_io_blocks, GL_EXT_tessellation_point_size,
    GL_EXT_tessellation_shader, GL_EXT_texture_border_clamp,
    GL_EXT_texture_buffer, GL_EXT_texture_compression_bptc,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_compression_s3tc_srgb,
    GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_format_BGRA8888, GL_EXT_texture_norm16,
    GL_EXT_texture_query_lod, GL_EXT_texture_rg, GL_EXT_texture_sRGB_R8,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_type_2_10_10_10_REV,
    GL_EXT_texture_view, GL_EXT_unpack_subimage, GL_KHR_context_flush_control,
    GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_KHR_texture_compression_astc_ldr,
    GL_KHR_texture_compression_astc_sliced_3d,
    GL_MESA_shader_integer_functions, GL_NV_conditional_render,
    GL_NV_draw_buffers, GL_NV_fbo_color_attachments, GL_NV_image_formats,
    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_image_external_essl3, 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_geometry_point_size, GL_OES_geometry_shader,
    GL_OES_get_program_binary, GL_OES_gpu_shader5, GL_OES_mapbuffer,
    GL_OES_packed_depth_stencil, GL_OES_primitive_bounding_box,
    GL_OES_required_internalformat, GL_OES_rgb8_rgba8, GL_OES_sample_shading,
    GL_OES_sample_variables, GL_OES_shader_image_atomic,
    GL_OES_shader_io_blocks, GL_OES_shader_multisample_interpolation,
    GL_OES_standard_derivatives, GL_OES_stencil8, GL_OES_surfaceless_context,
    GL_OES_tessellation_point_size, GL_OES_tessellation_shader,
    GL_OES_texture_3D, GL_OES_texture_border_clamp, GL_OES_texture_buffer,
    GL_OES_texture_cube_map_array, 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_texture_storage_multisample_2d_array,
    GL_OES_texture_view, GL_OES_vertex_array_object, GL_OES_vertex_half_float,
    GL_OES_viewport_array
Comment 1 Sven Gothel 2020-03-04 17:12:26 CET
Which version of JOGL/JogAmp are you using?

If you haven't tried, please test with latest, 
i.e. jogamp-next or 2.4.0-20200202
Comment 2 Mabula Haverkamp 2020-03-04 18:04:06 CET
Hi Sven,

I tried both of the 2 latest versions:

- JOGL-2.4-rc-20200115
- JOGL-2.4-rc-20200202

In both cases, I used the fat jar.
They both produce the bug identically.

Kind regards,
Mabula
Comment 3 Julien Gouesse 2020-05-07 11:30:09 CEST
It looks like the symptom of the bug 1357:
https://jogamp.org/bugzilla/show_bug.cgi?id=1357

Maybe this profile is not really compliant; if it's true, this change will have to be modified:
https://jogamp.org/bugzilla//show_bug.cgi?id=1385

I'm under Mageia Linux with Mesa 20 and an Intel chip, I can't reproduce this bug (expected behaviour).

If you can, just patch GLContextImpl with JByteMod as I did in February 2018.

I see that a special treatment is needed for AMD TURKS and AMD REDWOOD.
Comment 4 Julien Gouesse 2020-05-11 22:00:21 CEST
(In reply to Mabula Haverkamp from comment #2)

Please can you try to call this before calling GLProfile.getMaxProgrammable(true)?

GLContext.getCurrent().getRendererQuirks().addQuirk(GLRendererQuirks.GL3CompatNonCompliant);
Comment 5 Mabula Haverkamp 2020-05-11 22:58:36 CEST
(In reply to Julien Gouesse from comment #4)

Hi Julien,

I guess I should try this code addition and let one of my customers with the issue test if that fixes it on his/her system?

Mabula
Comment 6 Julien Gouesse 2020-05-11 23:23:31 CEST
(In reply to Mabula Haverkamp from comment #5)
Yes, exactly. If it "fixes" the problem, I'll suggest to revert the fix of the bug 1385 until Mesa provides really compliant GL3 implementation. Otherwise, I'll have to find another solution, which will be challenging without any hardware to reproduce your bug.
Comment 7 Julien Gouesse 2020-05-11 23:56:55 CEST
(In reply to Mabula Haverkamp from comment #5)
The debug logs would help me a lot, please use that when running your program:
-Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all
Comment 8 Julien Gouesse 2020-05-12 00:31:29 CEST
GLContextImpl.createContextARBMapVersionsAvailable() should reject the non compliant GL3bc implementation with my suggestion (if it's called early enough). I just hope that I really understand the symptom.
Comment 9 Julien Gouesse 2020-05-14 14:29:35 CEST
(In reply to Mabula Haverkamp from comment #5)
Please, sorry to insist but this bug is marked "critical", I can't reproduce it on my hardware, post the debug logs as soon as possible to give me a chance to check my assumptions.
Comment 10 Mabula Haverkamp 2020-05-23 18:14:48 CEST
(In reply to Julien Gouesse from comment #9)

Hi Julien,

Apologies for not replying sooner. I will try get you feedback from my customers as soon as possible.

So if I understand correctly, I need to build my application with the following so we can test it and get you the right feedback:

When initializing OpenGL I will call:

GLContext.getCurrent().getRendererQuirks().addQuirk(GLRendererQuirks.GL3CompatNonCompliant);

GLContextImpl.createContextARBMapVersionsAvailable()

GLProfile.getMaxProgrammable(true)

Is that correct?

And my java application should be started with

-Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all

right?
Comment 11 Mabula Haverkamp 2020-05-23 18:17:35 CEST
I have one more question which might be related or not? Would it help if I use this?

System.setProperty("jogl.disable.openglcore", "true");

In my current version of my application, I have removed this setting, and now I am getting reports of strange OpenGL3 behaviour also on Windows 10 machines with Intel HD3000 chipsets (where Intel only provides support until Windows7, so Microsoft is probably providing buggy drivers there? )

I guess disabling openGL Core profiles would increase compatibility for more computer configurations, right? My OpenGL implementations don't need it as well. I have implementations for Gl2, GL3 and GL4, so I profile to use one of those on any machine is possible.

Thanks,
Mabula
Comment 12 Mabula Haverkamp 2020-05-23 19:37:14 CEST
(In reply to Julien Gouesse from comment #8)

Hi Julien,

GLContextImpl.createContextARBMapVersionsAvailable()
does not seems to be available with  JOGL-2.4-rc-20200202 ?
Maybe I am doing something wrong, when should this be called? Also before the OpenGL initialization: 	GLProfile.getMaxProgrammable(true)

Mabula
Comment 13 Julien Gouesse 2020-05-23 21:23:33 CEST
Hello

jogl.disable.openglcore doesn't help because the affected profiles are backward compatible.

Don't call GLContextImpl.createContextARBMapVersionsAvailable(), just call GLContext.getCurrent().getRendererQuirks().addQuirk(GLRendererQuirks.GL3CompatNonCompliant); before getting a profile.

Yes, use -Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all. Please use a more recent release candidate of JOGL 2.4.0:
https://jogamp.org/deployment/v2.4.0-rc-20200307/

It would be nice to get the debug logs with and without my workaround to understand better what was wrong.
Comment 14 Mabula Haverkamp 2020-05-23 22:25:31 CEST
(In reply to Julien Gouesse from comment #13)

Thank you very much Julien,

I will use the more recent JOGL version and will ask my customers to test with and without the proposed 

GLContext.getCurrent().getRendererQuirks().addQuirk(GLRendererQuirks.GL3CompatNonCompliant);

before getting a profile and will ask them to send back all debugging output.

Hopefully I can get the results to you within the coming week, thanks.

Mabula
Comment 15 Mabula Haverkamp 2020-05-24 15:52:05 CEST
(In reply to Julien Gouesse from comment #13)

Hi Jullien,

I have downloaded the new JOGL-2.4-rc-20200307

I have a problem though, I can't call

GLContext.getCurrent().getRendererQuirks().addQuirk(GLRendererQuirks.GL3CompatNonCompliant);

before 

GLProfile.getMaxProgrammable(true)

at application startup )where i try to initialize my application to use either GL2, GL3 or GL4), because it will give a nullpointer exception. My guess is because there is no GLContext yet?

Should I somehow first create a context to add the quirk ? How to do this?

Mabula
Comment 16 Julien Gouesse 2020-05-24 22:16:14 CEST
(In reply to Mabula Haverkamp from comment #15)
Please give me the logs of your application without using my suggestion first, it would be better than nothing.

Don't use my suggestion now, I'll provide a better solution after getting your logs.
Comment 17 Julien Gouesse 2020-05-26 10:18:09 CEST
Hello

I've realized that my terribly old laptop has an ATI FireGL GPU, I'm going to try to reproduce this bug.
Comment 18 Julien Gouesse 2020-05-26 21:24:01 CEST
This bug isn't reproducible on my old laptop, I entered that in command line:
jdk-14.0.1+7-jre/bin/java -Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all -Djogamp.debug=all -jar jogamp-fat.jar 2> debug_logs_ati_firegl____14.txt

I use Mesa 20.0.7. I'll add the log file as an attachment.

I ran T.U.E.R too, it worked like a charm.

Mabula, can you ask your customer to run the same command (more or less)? Obviously, you can use another version of Java.
Comment 19 Julien Gouesse 2020-05-26 21:26:08 CEST
Created attachment 845 [details]
debug log, ATI FireGL, Mesa 20.0.7
Comment 20 Mabula Haverkamp 2020-05-27 12:44:55 CEST
(In reply to Julien Gouesse from comment #18)

Dear Julien,

I have given my 2 customers with this issue, the instructions to perform the debug command on the fat jar, they usually respond fast so hopefully I can send their debug log to you today or tomorrow ;-)

https://www.astropixelprocessor.com/community/linux/app-1-077-not-run-on-kubuntu-18-04-lts/paged/2/#post-10736

Thanks,
Mabula
Comment 21 Mabula Haverkamp 2020-05-27 18:45:05 CEST
Created attachment 846 [details]
debug_logs_dariusz.krzempek - Turks [Radeon HD 6500/6600 / 6700M Series]
Comment 22 Mabula Haverkamp 2020-05-27 18:45:41 CEST
(In reply to Mabula Haverkamp from comment #21)

First debug log has arrived ;-) Julien
Comment 23 Julien Gouesse 2020-05-27 19:44:42 CEST
(In reply to Mabula Haverkamp from comment #22)
Great job, thank you so much. I'll look at your log file carefully and I'll give you some feedback as soon as possible :D
Comment 24 Mabula Haverkamp 2020-05-30 12:03:46 CEST
Created attachment 847 [details]
debug_logs_Minusman AMD REDWOOD
Comment 25 Mabula Haverkamp 2020-05-30 12:05:19 CEST
Hi Julien,

I have attached the debug log of my second customer.

debug_logs_Minusman.txt

Hope this is usefull?

Mabula
Comment 26 Julien Gouesse 2020-05-31 13:06:19 CEST
(In reply to Mabula Haverkamp from comment #25)
Yes, it's useful.

This bug still occurs on Mesa 20.0.4. I'm still looking at the logs to understand how to improve the management of non compliant implementations in this case.
Comment 27 Julien Gouesse 2020-05-31 14:43:41 CEST
I get this exception when running a modified fat JAR made with CafeBabe editor:
Exception in thread "main" java.lang.VerifyError: Bad type on operand stack

I'll find another solution to provide a patched fat JAR.
Comment 28 Julien Gouesse 2020-05-31 15:26:50 CEST
(In reply to Mabula Haverkamp from comment #25)
Please find a patched fat JAR here:
http://svn.code.sf.net/p/tuer/code/pre_beta/lib/jogamp/jogamp-fat.jar

It's JOGL 2.4 RC without the fix of the bug 1385, i.e it considers that the GL3 backward compatible profile isn't compliant in your case.

Please let me know as soon as possible whether it fixes your bug.

If it does, I'll suggest to 
- revert the fix of the bug 1385 to fix the bug 1426 in JOGL 2.4
- implement a smarter mechanism to detect non compliant GL implementations earlier in JOGL 2.5
- commit anew the original fix of the bug 1385 in JOGL 2.5

Sven, what's your opinion about that?
Comment 29 Mabula Haverkamp 2020-05-31 15:29:41 CEST
(In reply to Julien Gouesse from comment #28)

Dear Julien,

Thank you very much, should I ask my 2 customers to again perform the 

java -Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all -Djogamp.debug=all -jar jogamp-fat.jar 2> debug_logs_ati_firegl____14.txt

test with this patched jar ? Will that be enough to conclude that it is fixed?

Mabula
Comment 30 Julien Gouesse 2020-05-31 17:38:42 CEST
(In reply to Mabula Haverkamp from comment #29)
Yes. If my "fix" works, there won't be any internal error.
Comment 31 Mabula Haverkamp 2020-05-31 20:30:22 CEST
(In reply to Julien Gouesse from comment #30)

Hi Julien,

Great, I have instructed my customers to perform the task on the newly patched jar file. Hopefully, I will get their new debugging logs quickly. I will attach them as soon as I receive them ;-)

Mabula
Comment 32 Mabula Haverkamp 2020-05-31 21:03:50 CEST
(In reply to Julien Gouesse from comment #30)

Dear Julien,

Here is the first debug log from Dariusa Krzempek - Turks [Radeon HD 6500/6600 / 6700M Series]. I could not attach this log here, because it is larger than 2000Kb.
So you can download it here:

https://apastropixelprocessordl.s3.eu-central-1.amazonaws.com/debug_logs_dariusz.krzempek-on-patched-Jar-20200531.txt

Mabula
Comment 33 Julien Gouesse 2020-05-31 22:33:39 CEST
(In reply to Mabula Haverkamp from comment #32)
It seems to work :)

I'm currently trying to find a better fix but this one will be a good fallback in case I find nothing smarter.
Comment 34 Mabula Haverkamp 2020-05-31 22:48:56 CEST
(In reply to Julien Gouesse from comment #33)

That is great, hopefully, the other debug log will confirm the same ;-)
I will share it as soon as I receive it.

Mabula
Comment 35 Julien Gouesse 2020-05-31 23:51:04 CEST
GLProfile.computeProfileImpl(device, "GL3bc", false, false, isHardwareRasterizer) returns null (which is correct) but GLProfile.computeProfileImpl(device, "GL2", false, false, isHardwareRasterizer) returns "GL3bc" (which is incorrect); if the behaviour of this method was consistent, this bug would be fixed.

Mabula, I'll give you another patched version soon because I need to add some log messages into GLProfile. Thank you for your precious help.
Comment 36 Mabula Haverkamp 2020-06-01 11:59:25 CEST
(In reply to Julien Gouesse from comment #35)

Hi Julien,

I have the second debug log for the patched jar for you here ;-) :

https://apastropixelprocessordl.s3.eu-central-1.amazonaws.com/debug_logs_Minusman-on-patched-Jar-20200531.txt

Cheers,
Mabula
Comment 37 Mabula Haverkamp 2020-06-01 12:02:51 CEST
(In reply to Julien Gouesse from comment #35)

"Mabula, I'll give you another patched version soon because I need to add some log messages into GLProfile. Thank you for your precious help."

Okay, no problem ;-) You are most welcome Julien, I will be waiting for it...
Comment 38 Julien Gouesse 2020-06-02 12:19:07 CEST
(In reply to Mabula Haverkamp from comment #37)
Please find a patched fat JAR here:
http://svn.code.sf.net/p/tuer/code/pre_beta/lib/jogamp/jogamp-fat.jar

It's JOGL 2.4 RC with some new log messages to understand what is wrong with GLProfile.computeProfileImpl(device, "GL2", false, false, isHardwareRasterizer). It should produce the fatal error.
Comment 39 Mabula Haverkamp 2020-06-02 13:47:58 CEST
(In reply to Julien Gouesse from comment #38)

Hi Julien,

Thanks, i have instructed my customers to run the debug log again with this newly patched jar file, I will share the logs as soon as I receive them.

Mabula
Comment 40 Mabula Haverkamp 2020-06-02 22:25:26 CEST
Created attachment 848 [details]
debug_logs_dariusz.krzempek-20200602  Turks [Radeon HD 6500/6600 / 6700M Series]
Comment 41 Mabula Haverkamp 2020-06-02 22:27:11 CEST
(In reply to Julien Gouesse from comment #38)

Dear Julien,

Please find attached the new debug log from Dariusz using the jar with new log messages:

debug_logs_dariusz.krzempek-20200602 Turks [Radeon HD 6500/6600 / 6700M Series] 

Cheers,
Mabula
Comment 42 Julien Gouesse 2020-06-02 23:57:37 CEST
(In reply to Mabula Haverkamp from comment #41)
This line explains why computeProfilImpl returns GL3bc when GL2 is passed:
main-SharedResourceRunner: createContextARB-MapGLVersions MAP EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7f24c4001830, owner true, ResourceToolkitLock[obj 0x17baae6e, isOwner true, <69379752, 27fe3806>[count 2, qsz 0, owner <main-SharedResourceRunner>]]]: 2 (Compat profile, compat[], hardware) -> 3.1 (Compat profile, arb, compat[ES2, ES3], FBO, hardware)

GLContext.isGL2Available() is consistent with GLContext.getAvailableGLProfileName() and both use the entry above:
main: getAvailableGLVersion EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7f24c4001830, owner true, ResourceToolkitLock[obj 0x17baae6e, isOwner false, <69379752, 27fe3806>[count 0, qsz 0, owner <NULL>]]] 2 2 : 50416643
main: getAvailableGLVersion EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7f24c4001830, owner true, ResourceToolkitLock[obj 0x17baae6e, isOwner false, <69379752, 27fe3806>[count 0, qsz 0, owner <NULL>]]] 2 2 : 50416643
main: getAvailableGLProfileName EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7f24c4001830, owner true, ResourceToolkitLock[obj 0x17baae6e, isOwner false, <69379752, 27fe3806>[count 0, qsz 0, owner <NULL>]]] 2 2 : GL3bc

I have to return GL2 when GLContext.isGL3bcAvailable() returns false.
Comment 43 Julien Gouesse 2020-06-03 00:14:00 CEST
(In reply to Mabula Haverkamp from comment #41)
Please find a patched fat JAR here:
http://svn.code.sf.net/p/tuer/code/pre_beta/lib/jogamp/jogamp-fat.jar

It's JOGL 2.4 RC with another (potential) fix, it tries to detect the non conformant profile lately in computeProfileImpl().

If it fails, I'll have to design a more elaborate solution to detect this case earlier.
Comment 44 Mabula Haverkamp 2020-06-03 14:20:14 CEST
(In reply to Julien Gouesse from comment #43)

Great, I have sent this new jar to my customers and I am waiting again for their new debug logs. Will share them as soon as I receive them ;-)

Mabula
Comment 45 Mabula Haverkamp 2020-06-03 21:03:30 CEST
(In reply to Julien Gouesse from comment #43)

Dear Julien, i have 2 new debug logs for you from both customers using the latest patched jar file:

https://apastropixelprocessordl.s3.eu-central-1.amazonaws.com/debug_logs_dariusz.krzempek-20200603.txt

https://apastropixelprocessordl.s3.eu-central-1.amazonaws.com/debug_logs_minusman_20200603.txt

Will be waiting for your findings ;-)

Mabula
Comment 46 Julien Gouesse 2020-06-03 23:53:36 CEST
(In reply to Mabula Haverkamp from comment #45)
Thank you very much. My fix seems to work. I didn't reproduce this bug on my hardware because it supports only OpenGL 3.0 whereas your customers' hardware supports OpenGL 3.1. I post my patch here, I'll wait for Sven's feedback, I don't want to introduce a side effect:
diff --git a/src/jogl/classes/com/jogamp/opengl/GLProfile.java b/src/jogl/classes/com/jogamp/opengl/GLProfile.java
index 8612fc73f..9695ef058 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLProfile.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLProfile.java
@@ -2293,7 +2293,7 @@ public class GLProfile {
         } else if(GL3 == profile && hasAnyGL234Impl && ( desktopCtxUndef || GLContext.isGL3Available(device, isHardwareRasterizer))) {
             return desktopCtxUndef ? GL3 : GLContext.getAvailableGLProfileName(device, 3, GLContext.CTX_PROFILE_CORE);
         } else if(GL2 == profile && hasAnyGL234Impl && ( desktopCtxUndef || GLContext.isGL2Available(device, isHardwareRasterizer))) {
-            return desktopCtxUndef ? GL2 : GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT);
+            return desktopCtxUndef || (GL3bc == GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT) && !GLContext.isGL3bcAvailable(device, isHardwareRasterizer)) ? GL2 : GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT);
         } else if(GLES3 == profile && hasGLES3Impl && ( esCtxUndef || GLContext.isGLES3Available(device, isHardwareRasterizer))) {
             return esCtxUndef ? GLES3 : GLContext.getAvailableGLProfileName(device, 3, GLContext.CTX_PROFILE_ES);
         } else if(GLES2 == profile && hasGLES3Impl && ( esCtxUndef || GLContext.isGLES2Available(device, isHardwareRasterizer))) {


Sven, if you'd like me to provide a more robust solution, let me know.
Comment 47 Mabula Haverkamp 2020-06-04 12:32:29 CEST
(In reply to Julien Gouesse from comment #46)

Excellent Julien,

Would it help in the meantime, to let my customers try my application with this latest jar file included, to see if the application now starts and if OpenGL works on their system?

I guess it would?

Mabula
Comment 48 Julien Gouesse 2020-06-04 12:36:36 CEST
(In reply to Mabula Haverkamp from comment #47)
Yes, it would help but it would be safer if I added an hint somewhere to indicate that it's a modified unofficial build, what's your opinion about that?
Comment 49 Mabula Haverkamp 2020-06-04 12:41:41 CEST
(In reply to Julien Gouesse from comment #48)

I would only release my application with this latest jar as a Linux Beta version. That would be fine for me. 

If you feel/think that you need to add a hint in JOGL before I release that beta, then I will wait for a jar with such a hint. Otherwise, I can build the Linux Beta today and send it to my 2 customers for further testing and let you know their findings.

Let me know what you want to do,
Mabula
Comment 50 Julien Gouesse 2020-06-04 20:40:25 CEST
(In reply to Mabula Haverkamp from comment #49)
I've just updated the JAR with a modified manifest attribute, it's ok now. Thank you for the feedback.
Comment 51 Mabula Haverkamp 2020-06-05 13:13:32 CEST
(In reply to Julien Gouesse from comment #50)
Thanks Julien,

I have re-downloaded the jar and I have built a beta Linux version of Astro Pixel Processor with this jar and I have sent it to my customers to ask if APP starts now and if so, if the OpenGL image viewer is working correctly now.

Will let you know what they report as soon as possible ;-)
Mabula
Comment 52 Mabula Haverkamp 2020-06-05 16:00:49 CEST
(In reply to Julien Gouesse from comment #50)
Hi Julien,

My first customer that has tested it is confirming that all is okay now on his systen. This is darius with the Turks chipset.

My application starts normally without a fatal error and OpenGL 3 is working in my image viewer window:

https://www.astropixelprocessor.com/community/linux/app-1-077-not-run-on-kubuntu-18-04-lts/paged/3/#post-10955

This is excellent news :-) !

Mabula
Comment 53 Mabula Haverkamp 2020-06-05 22:02:39 CEST
(In reply to Julien Gouesse from comment #50)

:-) the second customer with the REDWOOD chipset also confirms that all is okay now :-)

So my application is now starting with OpenGL enabled and working perfectly on both the systems. The image viewer that I developed is working perfectly according to the 2 users, so all must be okay I would think !

Congratulations Julien and above all, thank you very much !

Please let me know when the next 2.4 RC is available with the fix, so I can include it in my next stable release.

Mabula
Comment 54 Julien Gouesse 2020-06-06 10:18:31 CEST
Hello

You're welcome. Don't expect a release before at least 3 weeks.
Comment 55 Mabula Haverkamp 2020-06-07 22:25:57 CEST
(In reply to Julien Gouesse from comment #54)

Hi Julien,

Just a small question, but important for me and my customers:

Will it be okay to release a new version of my application with the latest jar (with a modified manifest attribute), or should I really wait for the official build?

Thanks again,
Mabula
Comment 56 Julien Gouesse 2020-06-08 18:12:57 CEST
(In reply to Mabula Haverkamp from comment #55)
You can use the patched fat JAR if you want. It's not the cleanest solution but if you can't wait, just do it.
Comment 57 Mabula Haverkamp 2020-06-16 18:36:57 CEST
(In reply to Julien Gouesse from comment #56)

Hi Julien,

I have run into a problem with the latest patched jar on MacOS.

I have released a beta version of my application with that jar for Windows, MacOS and Linux and on Linux and Windows all is working well, no problems have been reported.

On my macbook with MacOS Sierra 10.12.16, the application will not start now with that jar. It does not give a fatal crash, but the OpenGL initialization seems to get stuck in some loop. The application startup stalls and my application is frozen... and thus won't start.

Off course, i then used the old jar of JOGL-2.4-rc-20200307 and then all is okay on MacOS, so I included that jar in te macOS beta release for my customers.

Below is an URL to a debug report on my MacBook for you to analyse, perhaps the new fix should not be applied on MacOS ?

https://apastropixelprocessordl.s3.eu-central-1.amazonaws.com/debug_logs_MacOS-10.12.16.txt

Thanks,
Mabula
Comment 58 Julien Gouesse 2020-06-16 19:43:02 CEST
(In reply to Mabula Haverkamp from comment #57)
Thank you for the feedback. It was expected to work under OS X too. Sven will have a look at my fix. Do you reproduce this bug by running the usual test or does it occur only in your software?
Comment 59 Mabula Haverkamp 2020-06-18 15:04:39 CEST
Hi Julien,

I have tried to find the exact point where it goes wrong in my application.
I have run my application with -Djogl.debug=all and I have included the final output which seems to indicate where everyhting stalls... everything is waiting for the GUI to popup, which will not happen:

cf2 MaxOSXCGLContext.NSOpenGLImpl.associateDrawable: true, ctx 0x7fc571b27fb0, hasBackingLayerHost false, attachGLLayerCmd null\cf0 \
\cf2 MaxOSXCGLContext.NSOpenGLImpl.contextMadeCurrent: Cure missing CGLContextLock (Bug1398), surfaceLock <46f76027, 17115770>[count 1, qsz 0, owner <AWT-EventQueue-0>]\cf0 \
\cf2 MaxOSXCGLContext.NSOpenGLImpl.contextMadeCurrent: Wait for SetNSViewCmd (Bug1398), surfaceLock <46f76027, 17115770>[count 0, qsz 0, owner <NULL>]}

I see a reference in there to Bug1398 ? and "Wait for SetNSViewCmd"
Maybe this will explain it?

I will include more output in attachment: Application-no-GUI-start.txt

Mabula
Comment 60 Mabula Haverkamp 2020-06-18 15:05:56 CEST
Created attachment 849 [details]
final lines of running application with -Djogl.debug=all
Comment 61 Julien Gouesse 2021-01-29 23:21:57 CET
Please test the latest release candidate and confirm (or not) it solves your problem.
Comment 62 Mabula Haverkamp 2022-02-25 14:10:06 CET
(In reply to Julien Gouesse from comment #61)

Hi Julien,

Please accept my apologies for this very late reply on this issue.

I have been using the jogl-2.4-RC-20210111 version in my application distribution for quite a while now and the Linux users that were having issues have comfirmed all is okay now ;-) and I have had no other similar bug reports since on Linux. I think several 100 Linux users use my application on a daily basis, so all seems to be good !

You can set this issue to solved I think ;-)

Mabula
Comment 63 Julien Gouesse 2022-02-25 22:02:24 CET
(In reply to Mabula Haverkamp from comment #62)
Better late than never :) Thank you for the feedback.
Comment 64 Julien Gouesse 2023-01-16 12:17:25 CET
It should be fixed by the commit edf0d33ba913fd37f9e6ce0a771d8dfb6fa962e6
Comment 65 Julien Gouesse 2023-01-16 12:17:46 CET
It should be fixed by the commit edf0d33ba913fd37f9e6ce0a771d8dfb6fa962e6
Comment 66 Sven Gothel 2023-01-24 08:30:28 CET
See comment 65
Comment 67 Mabula Haverkamp 2023-03-15 17:34:04 CET
Dear Sven & Julien,

Thank you very much. 

Today, I have added the 2.4.0 build release 20230201 to my project.

I was using the build from jzy3d for macOS arm support, but it did not contain this fix clearly, because the bug resurfaced for my Linux users.

I will let you know if all is okay now with this build for my Linux users.

Mabula
Comment 68 Mabula Haverkamp 2023-03-15 17:34:58 CET
Dear Sven & Julien,

Thank you very much. 

Today, I have added the 2.4.0 build release 20230201 to my project.

I was using the build from jzy3d for macOS arm support, but it did not contain this fix clearly, because the bug resurfaced for my Linux users.

I will let you know if all is okay now with this build for my Linux users.

Mabula