hi all,
I've faced with the issue that execution time for single gl.glTexSubImage2D() call takes 0.1-0.2sec while running on Linux and eating 100% of cpu. On mac it is all fine. The call arguments are the following: gl.glTexSubImage2D(GL.GL_TEXTURE_2D, 0, 0, 0, 1920, 1080, GL2.GL_RED, GL2.GL_UNSIGNED_SHORT, data); Textures setup is the following: void glCreateClearTex(GL gl, int target, int fmt, int format, int type, int filter, int w, int h, int val) { float fval = 0; int stride; if (w == 0) w = 1; if (h == 0) h = 1; stride = 2/*2048*/ * 2; ByteBuffer init = ByteBuffer.allocateDirect(stride * h/*2048*/); glAdjustAlignment(gl, stride); gl.glPixelStorei(GL2.GL_UNPACK_ROW_LENGTH, w); gl.glTexImage2D(target, 0, fmt, w, h, 0, format, type, init); gl.glTexParameterf(target, GL2.GL_TEXTURE_PRIORITY, 1.0f); gl.glTexParameteri(target, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR); gl.glTexParameteri(target, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR); gl.glTexParameteri(target, GL2.GL_TEXTURE_WRAP_S, GL2.GL_CLAMP_TO_EDGE); gl.glTexParameteri(target, GL2.GL_TEXTURE_WRAP_T, GL2.GL_CLAMP_TO_EDGE); gl.glTexParameterfv(target, GL2.GL_TEXTURE_BORDER_COLOR, FloatBuffer.wrap(new float[] { fval, fval, fval, fval })); } Mplayer doing same work natively runs just fine. glxgears runs ok but also takes up 100%. This may be the sign of OpenGL setup issues but glxinfo and others report that it is hw rendering. Graphic Card is ATI FirePro. Any help appreciated. |
Administrator
|
Hi
I'm under Mageia Linux 2 and I don't have such problems. Please show us what glxinfo displays. This problem has nothing to do with JOGL which is mainly a straight Java binding of OpenGL. Don't create a new direct NIO buffer at each call, it is a very bad idea (even though it isn't the root cause of your problem).
Julien Gouesse | Personal blog | Website
|
glCreateClearTex() is only called in init time. Its purpose is to allocate textures on gpu once and then upload data to them on every frame display.
Here is glxinfo (sorry for long post). Thanks. name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: ATI 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_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group client glx vendor string: ATI client glx version string: 1.4 client glx extensions: GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB, GLX_ARB_fbconfig_float, GLX_AMD_gpu_association GLX version: 1.4 GLX extensions: GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control, GLX_NV_swap_group, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: ATI FirePro V7750 (FireGL) OpenGL version string: 3.3.11627 Compatibility Profile Context FireGL OpenGL shading language version string: 3.30 OpenGL extensions: GL_AMDX_debug_output, GL_AMDX_vertex_shader_tessellator, GL_AMD_conservative_depth, GL_AMD_debug_output, GL_AMD_depth_clamp_separate, GL_AMD_draw_buffers_blend, GL_AMD_name_gen_delete, GL_AMD_performance_monitor, GL_AMD_pinned_memory, GL_AMD_sample_positions, GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, GL_AMD_texture_cube_map_array, GL_AMD_texture_texture4, GL_AMD_vertex_shader_tessellator, GL_ARB_ES2_compatibility, GL_ARB_base_instance, GL_ARB_blend_func_extended, GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_geometry_shader4, GL_ARB_get_program_binary, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_instanced_arrays, GL_ARB_internalformat_query, GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex, GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, GL_ARB_separate_shader_objects, GL_ARB_shader_bit_encoding, GL_ARB_shader_objects, GL_ARB_shader_precision, GL_ARB_shader_stencil_export, 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_shadow_ambient, GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_compression, 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_float, GL_ARB_texture_gather, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_snorm, GL_ARB_texture_storage, 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_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap, 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_bindable_uniform, 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_buffer, GL_EXT_copy_texture, GL_EXT_direct_state_access, 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_object, GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_histogram, 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_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object, 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, 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_shared_exponent, GL_EXT_texture_snorm, GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square, GL_NV_conditional_render, GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_explicit_multisample, GL_NV_float_buffer, GL_NV_half_float, GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_barrier, GL_SGIS_generate_mipmap, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays, GL_WIN_swap_hint, WGL_EXT_swap_control 121 GLX Visuals visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat ---------------------------------------------------------------------------- 0x025 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x026 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x027 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x028 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x029 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x02a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x02b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x02c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x02d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x02e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x02f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x030 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x031 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x032 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x033 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x034 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x035 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x036 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x037 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x038 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x039 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x03a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x03b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x03c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x03d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x03e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x03f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x040 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x041 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x042 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x043 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x044 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x045 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x046 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x047 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x048 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x049 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x04a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x04b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x04c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x04f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x050 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x051 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x052 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x053 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x054 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x055 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x056 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x057 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x058 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x059 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x05a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x05b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x05c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x05d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x05e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x05f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x060 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x061 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x062 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x063 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x064 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x065 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x066 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x067 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x068 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x069 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x06a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x06b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x06c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x06d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x06e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x06f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x070 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x071 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x072 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x073 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x074 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x075 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x076 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x07d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x07e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x07f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x080 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x085 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x086 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x087 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x088 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x08d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x08e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x08f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x090 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x095 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x096 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x097 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x098 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x09d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x09e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x09f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0a0 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0a7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x0a8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x0a9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x0aa 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x0af 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x0b0 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x0b1 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x0b2 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x0b7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x0b8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x0b9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x0ba 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x0bf 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x0c0 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x0c1 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x0c2 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x0c7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x0c8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x0c9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0ca 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x117 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 Ncon 131 GLXFBConfigs: visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat ---------------------------------------------------------------------------- 0x025 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x026 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x027 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x028 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x029 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x02a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x02b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x02c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x02d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x02e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x02f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x030 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x031 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x032 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x033 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x034 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x035 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x036 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x037 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x038 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x039 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x03a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x03b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x03c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x03d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x03e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x03f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x040 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x041 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x042 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x043 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x044 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x045 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x046 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x047 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x048 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x049 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x04a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x04b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x04c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x04f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x050 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x051 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x052 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x053 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x054 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x055 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x056 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None 0x057 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x058 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x059 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x05a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x05b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x05c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None 0x05d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x05e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None 0x05f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x060 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x061 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x062 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x063 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x064 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None 0x065 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x066 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None 0x067 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x068 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x069 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x06a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x06b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x06c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None 0x06d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x06e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None 0x06f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x070 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None 0x071 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x072 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None 0x073 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x074 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None 0x075 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x076 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None 0x07d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x07e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x07f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x080 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x085 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x086 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x087 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x088 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x08d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x08e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x08f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x090 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x095 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x096 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x097 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x098 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x09d 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x09e 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x09f 30 tc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0a0 30 tc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0a7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x0a8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 0 0 None 0x0a9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x0aa 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 0 0 None 0x0af 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x0b0 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 2 1 None 0x0b1 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x0b2 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 2 1 None 0x0b7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x0b8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 4 1 None 0x0b9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x0ba 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 4 1 None 0x0bf 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x0c0 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 6 1 None 0x0c1 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x0c2 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 6 1 None 0x0c7 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x0c8 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 8 0 0 0 0 8 1 None 0x0c9 30 dc 0 32 0 r y . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x0ca 30 dc 0 32 0 r . . 10 10 10 2 . . 0 24 0 0 0 0 0 8 1 None 0x117 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 Ncon 0x117 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 Ncon 0x117 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 Ncon 0x117 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 Ncon 0x117 32 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 Ncon 0x117 0 tc 0 128 0 y . 32 32 32 32 . . 0 24 0 0 0 0 0 0 0 None 0x117 0 tc 0 128 0 . . 32 32 32 32 . . 0 24 0 0 0 0 0 0 0 None 0x117 0 tc 0 64 0 y . 16 16 16 16 . . 0 24 0 0 0 0 0 0 0 None 0x117 0 tc 0 64 0 . . 16 16 16 16 . . 0 24 0 0 0 0 0 0 0 None 0x117 0 tc 0 32 0 y . 11 11 10 0 . . 0 24 0 0 0 0 0 0 0 None 0x117 0 tc 0 32 0 . . 11 11 10 0 . . 0 24 0 0 0 0 0 0 0 None |
I found the issue. My mistake. I uploaded pixel data twice, once to pbo and another one using gl.glTexSubImage2D() variant that accepts pointer. Fix is to do it once and use gl.glTexSubImage2D(...offset).
Sorry :) |
Administrator
|
Don't be sorry, we just learn from our mistakes.
Julien Gouesse | Personal blog | Website
|
btw, during this work I've made some nice fixes to gluegen. It could not work well when packing it all into one huge uber jar. Whom should I send the patch?
|
2012-11-12 12:32, Umka [via jogamp]
skrev:
btw, during this work I've made some nice fixes to gluegen. It could not work well when packing it all into one huge uber jar. Whom should I send the patch? Best is is you first fork the gluegen git, apply your patch and then send a pull request: https://github.com/sgothel/gluegen https://help.github.com/articles/fork-a-repo Please use your real name for the git commits. https://jogamp.org/wiki/index.php/How_to_Contribute Cheers Xerxes |
Administrator
|
In reply to this post by Umka
Umka, where is your pull request?
Julien Gouesse | Personal blog | Website
|
just a min, will handle this shortly. Was busy lastly )
|
Guys,
I'm sorry I don't have time for doing things totally right with that gluegen patch landing/inspecting, etc. What if I send it (not really production ready but works for me) and you just get idea of the fix and some of you produce a better fix? Thanks. |
diff --git a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
index 94f451e..5cca3d0 100644 --- a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java +++ b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java @@ -154,12 +154,17 @@ public class JNILibLoaderBase { msg.append(nativeJarName); final URL jarUrlRoot = JarUtil.getURLDirname( JarUtil.getJarSubURL( classJarURL ) ); msg.append(" + ").append(jarUrlRoot); - final URL nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, nativeJarName); + URL nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, nativeJarName); msg.append(" -> ").append(nativeJarURL); if(DEBUG) { System.err.println(msg.toString()); } - TempJarCache.addNativeLibs(classFromJavaJar, nativeJarURL); + try { + TempJarCache.addNativeLibs(classFromJavaJar, nativeJarURL); + } catch (Exception e) { + nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, nativeJarBasename + ".jar"); + TempJarCache.addNativeLibs(classFromJavaJar, nativeJarURL); + } ok = true; } return ok; @@ -426,7 +431,7 @@ public class JNILibLoaderBase { } } else { // System.err.println("sun.boot.library.path=" + Debug.getProperty("sun.boot.library.path", false)); - final String libraryPath = NativeLibrary.findLibrary(libraryName, cl); // implicit TempJarCache usage if used/initialized + String libraryPath = NativeLibrary.findLibrary(libraryName, cl); // implicit TempJarCache usage if used/initialized if(DEBUG) { System.err.print("JNILibLoaderBase: loadLibraryInternal("+libraryName+"): CL: "+libraryPath); } diff --git a/src/java/com/jogamp/common/os/Platform.java b/src/java/com/jogamp/common/os/Platform.java index 72a0b3d..6a551c1 100644 --- a/src/java/com/jogamp/common/os/Platform.java +++ b/src/java/com/jogamp/common/os/Platform.java @@ -183,11 +183,11 @@ public class Platform extends PlatformPropsImpl { AWT_AVAILABLE = AccessController.doPrivileged(new PrivilegedAction<Boolean>() { public Boolean run() { // load GluegenRT native library - loadGlueGenRTImpl(); - + loadGlueGenRTImpl(libBaseName); + // JVM bug workaround JVMUtil.initSingleton(); // requires gluegen-rt, one-time init. - + // detect AWT availability boolean awtAvailable = false; { @@ -231,7 +231,7 @@ public class Platform extends PlatformPropsImpl { return null != platformClassJarURL; } - private static final void loadGlueGenRTImpl() { + public static final void loadGlueGenRTImpl(String libName) { if(USE_TEMP_JAR_CACHE && TempJarCache.initSingleton()) { String nativeJarName = null; URL jarUrlRoot = null; @@ -241,14 +241,19 @@ public class Platform extends PlatformPropsImpl { final String nativeJarBasename = jarName.substring(0, jarName.indexOf(".jar")); // ".jar" already validated w/ JarUtil.getJarBasename(..) nativeJarName = nativeJarBasename+"-natives-"+PlatformPropsImpl.os_and_arch+".jar"; jarUrlRoot = JarUtil.getURLDirname( JarUtil.getJarSubURL(platformClassJarURL) ); - nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, nativeJarName); - TempJarCache.bootstrapNativeLib(Platform.class, libBaseName, nativeJarURL); + try { + nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, nativeJarName); + TempJarCache.bootstrapNativeLib(Platform.class, libName, nativeJarURL); + } catch (Exception ee) { + nativeJarURL = JarUtil.getJarFileURL(jarUrlRoot, jarName); + TempJarCache.bootstrapNativeLib(Platform.class, libName, nativeJarURL); + } + DynamicLibraryBundle.GlueJNILibLoader.loadLibrary(libName, false, Platform.class.getClassLoader()); } catch (Exception e0) { // IllegalArgumentException, IOException System.err.println("Catched "+e0.getClass().getSimpleName()+": "+e0.getMessage()+", while TempJarCache.bootstrapNativeLib() of "+nativeJarURL+" ("+jarUrlRoot+" + "+nativeJarName+")"); } } - DynamicLibraryBundle.GlueJNILibLoader.loadLibrary(libBaseName, false, Platform.class.getClassLoader()); } /** diff --git a/src/java/com/jogamp/common/util/JarUtil.java b/src/java/com/jogamp/common/util/JarUtil.java index 84ec59d..ea08183 100644 --- a/src/java/com/jogamp/common/util/JarUtil.java +++ b/src/java/com/jogamp/common/util/JarUtil.java @@ -48,6 +48,7 @@ import java.util.jar.JarFile; import com.jogamp.common.os.NativeLibrary; import jogamp.common.Debug; +import jogamp.common.os.PlatformPropsImpl; public class JarUtil { private static final boolean DEBUG = Debug.debug("JarUtil"); @@ -499,36 +500,43 @@ public class JarUtil { ", isClassFile " + isClassFile + ", isDir " + isDir + ", isRootEntry " + isRootEntry ); } - + final File destFile = new File(dest, entryName); if(isDir) { if (DEBUG) { System.err.println("JarUtil: MKDIR: " + entryName + " -> " + destFile ); } - destFile.mkdir(); + destFile.mkdirs(); } else { final File destFolder = new File(destFile.getParent()); if(!destFolder.exists()) { if (DEBUG) { System.err.println("JarUtil: MKDIR (parent): " + entryName + " -> " + destFolder ); - } - destFolder.mkdir(); + } + destFolder.mkdirs(); } - final InputStream in = new BufferedInputStream(jarFile.getInputStream(entry)); - final OutputStream out = new BufferedOutputStream(new FileOutputStream(destFile)); + boolean addedAsNativeLib = false; int numBytes = -1; - try { - numBytes = IOUtil.copyStream2Stream(in, out, -1); - } finally { - in.close(); - out.close(); + if (DEBUG) { + System.err.println("JarUtil: hasOsAndArch(" + destFolder.getName() + "): " + PlatformPropsImpl.hasOsAndArch(destFolder.getName())); + System.err.println("JarUtil: hasLocalArch(" + destFile.getParent() + "): " + PlatformPropsImpl.hasLocalArch(destFolder.getName())); + System.err.println("JarUtil: localArch: " + PlatformPropsImpl.os_and_arch); } - boolean addedAsNativeLib = false; - if (numBytes>0) { - num++; - if (isNativeLib && ( isRootEntry || !nativeLibMap.containsKey(libBaseName) ) ) { - nativeLibMap.put(libBaseName, destFile.getAbsolutePath()); - addedAsNativeLib = true; + if ((!PlatformPropsImpl.hasOsAndArch(destFolder.getName()) || PlatformPropsImpl.hasLocalArch(destFolder.getName())) && !nativeLibMap.containsKey(libBaseName)) { + final InputStream in = new BufferedInputStream(jarFile.getInputStream(entry)); + final OutputStream out = new BufferedOutputStream(new FileOutputStream(destFile)); + try { + numBytes = IOUtil.copyStream2Stream(in, out, -1); + } finally { + in.close(); + out.close(); + } + if (numBytes>0) { + num++; + if (isNativeLib && ( isRootEntry || !nativeLibMap.containsKey(libBaseName) )) { + nativeLibMap.put(libBaseName, destFile.getAbsolutePath()); + addedAsNativeLib = true; + } } } if (DEBUG) { diff --git a/src/java/com/jogamp/common/util/cache/TempJarCache.java b/src/java/com/jogamp/common/util/cache/TempJarCache.java index 6f24c68..822efe0 100644 --- a/src/java/com/jogamp/common/util/cache/TempJarCache.java +++ b/src/java/com/jogamp/common/util/cache/TempJarCache.java @@ -49,6 +49,7 @@ import com.jogamp.common.os.NativeLibrary; import com.jogamp.common.util.IOUtil; import com.jogamp.common.util.JarUtil; import com.jogamp.common.util.SecurityUtil; +import jogamp.common.os.PlatformPropsImpl; public class TempJarCache { private static final boolean DEBUG = Debug.debug("TempJarCache"); @@ -209,15 +210,15 @@ public class TempJarCache { */ public synchronized static final void addNativeLibs(Class<?> certClass, URL jarURL) throws IOException, SecurityException { final LoadState nativeLibJarsLS = nativeLibJars.get(jarURL); - if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) ) { - nativeLibJars.put(jarURL, LoadState.LOOKED_UP); + if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) || !testLoadState(nativeLibJarsLS, LoadState.LOADED) ) { final JarFile jarFile = JarUtil.getJarFile(jarURL); if(DEBUG) { System.err.println("TempJarCache: addNativeLibs: "+jarURL+": nativeJar "+jarFile.getName()); } + nativeLibJars.put(jarURL, LoadState.LOOKED_UP); validateCertificates(certClass, jarFile); JarUtil.extract(tmpFileCache.getTempDir(), nativeLibMap, jarFile, - true, false, false); + true, false, false); nativeLibJars.put(jarURL, LoadState.LOADED); } else if( !testLoadState(nativeLibJarsLS, LoadState.LOADED) ) { throw new IOException("TempJarCache: addNativeLibs: "+jarURL+", previous load attempt failed"); @@ -237,12 +238,12 @@ public class TempJarCache { */ public synchronized static final void addClasses(Class<?> certClass, URL jarURL) throws IOException, SecurityException { final LoadState classFileJarsLS = classFileJars.get(jarURL); - if( !testLoadState(classFileJarsLS, LoadState.LOOKED_UP) ) { - classFileJars.put(jarURL, LoadState.LOOKED_UP); + if( !testLoadState(classFileJarsLS, LoadState.LOOKED_UP) || !testLoadState(classFileJarsLS, LoadState.LOADED) ) { final JarFile jarFile = JarUtil.getJarFile(jarURL); if(DEBUG) { System.err.println("TempJarCache: addClasses: "+jarURL+": nativeJar "+jarFile.getName()); } + classFileJars.put(jarURL, LoadState.LOOKED_UP); validateCertificates(certClass, jarFile); JarUtil.extract(tmpFileCache.getTempDir(), null, jarFile, false, true, false); @@ -263,12 +264,12 @@ public class TempJarCache { */ public synchronized static final void addResources(Class<?> certClass, URL jarURL) throws IOException, SecurityException { final LoadState resourceFileJarsLS = resourceFileJars.get(jarURL); - if( !testLoadState(resourceFileJarsLS, LoadState.LOOKED_UP) ) { - resourceFileJars.put(jarURL, LoadState.LOOKED_UP); + if( !testLoadState(resourceFileJarsLS, LoadState.LOOKED_UP) || !testLoadState(resourceFileJarsLS, LoadState.LOADED) ) { final JarFile jarFile = JarUtil.getJarFile(jarURL); if(DEBUG) { System.err.println("TempJarCache: addResources: "+jarURL+": nativeJar "+jarFile.getName()); } + resourceFileJars.put(jarURL, LoadState.LOOKED_UP); validateCertificates(certClass, jarFile); JarUtil.extract(tmpFileCache.getTempDir(), null, jarFile, false, false, true); @@ -298,14 +299,18 @@ public class TempJarCache { final LoadState nativeLibJarsLS = nativeLibJars.get(jarURL); final LoadState classFileJarsLS = classFileJars.get(jarURL); final LoadState resourceFileJarsLS = resourceFileJars.get(jarURL); - if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) || - !testLoadState(classFileJarsLS, LoadState.LOOKED_UP) || - !testLoadState(resourceFileJarsLS, LoadState.LOOKED_UP) ) { + if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) || !testLoadState(nativeLibJarsLS, LoadState.LOADED) || + !testLoadState(classFileJarsLS, LoadState.LOOKED_UP) || !testLoadState(classFileJarsLS, LoadState.LOADED) || + !testLoadState(resourceFileJarsLS, LoadState.LOOKED_UP) || !testLoadState(resourceFileJarsLS, LoadState.LOADED) ) { final boolean extractNativeLibraries = !testLoadState(nativeLibJarsLS, LoadState.LOADED); final boolean extractClassFiles = !testLoadState(classFileJarsLS, LoadState.LOADED); final boolean extractOtherFiles = !testLoadState(resourceFileJarsLS, LoadState.LOOKED_UP); + final JarFile jarFile = JarUtil.getJarFile(jarURL); + if(DEBUG) { + System.err.println("TempJarCache: addAll: "+jarURL+": nativeJar "+jarFile.getName()); + } // mark looked-up (those who are not loaded) if(extractNativeLibraries) { nativeLibJars.put(jarURL, LoadState.LOOKED_UP); @@ -317,10 +322,6 @@ public class TempJarCache { resourceFileJars.put(jarURL, LoadState.LOOKED_UP); } - final JarFile jarFile = JarUtil.getJarFile(jarURL); - if(DEBUG) { - System.err.println("TempJarCache: addAll: "+jarURL+": nativeJar "+jarFile.getName()); - } validateCertificates(certClass, jarFile); JarUtil.extract(tmpFileCache.getTempDir(), nativeLibMap, jarFile, extractNativeLibraries, extractClassFiles, extractOtherFiles); @@ -342,6 +343,7 @@ public class TempJarCache { } } + public synchronized static final String findLibrary(String libName) { checkInitialized(); // try with mapped library basename first @@ -408,26 +410,29 @@ public class TempJarCache { boolean ok = false; int countEntries = 0; final LoadState nativeLibJarsLS = nativeLibJars.get(jarURL); - if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) && !nativeLibMap.containsKey(libBaseName) ) { + if( !testLoadState(nativeLibJarsLS, LoadState.LOOKED_UP) || !nativeLibMap.containsKey(libBaseName) ) { if(DEBUG) { System.err.println("TempJarCache: bootstrapNativeLib(certClass: "+certClass+", libBaseName "+libBaseName+", jarURL "+jarURL+")"); } - nativeLibJars.put(jarURL, LoadState.LOOKED_UP); final JarFile jarFile = JarUtil.getJarFile(jarURL); if(DEBUG) { System.err.println("TempJarCache: bootstrapNativeLib: nativeJar "+jarFile.getName()); } + //nativeLibJars.put(jarURL, LoadState.LOOKED_UP); validateCertificates(certClass, jarFile); final Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { final JarEntry entry = (JarEntry) entries.nextElement(); final String entryName = entry.getName(); - + final File destFile = new File(tmpFileCache.getTempDir(), entryName); + if( entryName.indexOf('/') == -1 && entryName.indexOf(File.separatorChar) == -1 && - entryName.indexOf(libBaseName) >= 0 ) + entryName.indexOf(libBaseName) >= 0 && + NativeLibrary.isValidNativeLibraryName(entryName, false) != null && + (!PlatformPropsImpl.hasOsAndArch(destFile.getParent()) || + PlatformPropsImpl.hasLocalArch(destFile.getParent()))) { - final File destFile = new File(tmpFileCache.getTempDir(), entryName); final InputStream in = new BufferedInputStream(jarFile.getInputStream(entry)); final OutputStream out = new BufferedOutputStream(new FileOutputStream(destFile)); int numBytes = 0; @@ -442,7 +447,7 @@ public class TempJarCache { } finally { in.close(); out.close(); } if (numBytes>0) { nativeLibMap.put(libBaseName, destFile.getAbsolutePath()); - nativeLibJars.put(jarURL, LoadState.LOADED); + //nativeLibJars.put(jarURL, LoadState.LOADED); ok = true; countEntries++; } diff --git a/src/java/jogamp/common/os/PlatformPropsImpl.java b/src/java/jogamp/common/os/PlatformPropsImpl.java index 111523d..fc3f4b9 100644 --- a/src/java/jogamp/common/os/PlatformPropsImpl.java +++ b/src/java/jogamp/common/os/PlatformPropsImpl.java @@ -210,7 +210,22 @@ public abstract class PlatformPropsImpl { * kick off static initialization of platform property information */ public static void initSingleton() { } - + + public static final boolean hasOsAndArch(String str) { + String arches[] = new String[] {"freebsd-i386", "freebsd-i586", "freebsd-amd64", "hpux-hppa", "linux-amd64", "linux-ia64", "linux-i586", + "linux-armv6", "android-armv6", "macosx-universal", "solaris-sparc", "solaris-sparcv9", + "solaris-amd64", "solaris-i586", "windows-amd64", "windows-i586", "linux-i386", "sunos-x86"}; + for (int i = 0; i < arches.length; i++) { + if (str.indexOf(arches[i]) != -1) + return true; + } + return false; + } + + public static final boolean hasLocalArch(String str) { + return (str.indexOf(PlatformPropsImpl.os_and_arch) != -1); + } + /** * Returns the GlueGen common name for the given OSType and CPUType * as implemented in the build system in 'gluegen-cpptasks-base.xml'.<br> |
Administrator
|
In reply to this post by Umka
On 11/15/2012 04:58 PM, Umka [via jogamp] wrote:
> Guys, > > I'm sorry I don't have time for doing things totally right with that gluegen > patch landing/inspecting, etc. What if I send it (not really production ready > but works for me) and you just get idea of the fix and some of you produce a > better fix? > "Guy", I am the maintainer of GlueGen and I cannot accept such a fly-bye diff without reasoning or explanation. Rule-1 (especially for new sources of human input): - Don't mix your semantic patch w/ whitespace changes - I need an explanation - I probably need a unit test - I need a full name of a real person incl. valid email address, best as a git formatted email patch (if not a pull request) This is very important especially for GlueGen, since it's failure means failure of all JogAmp modules. And 'no time' is no excuse to not serve the bare minimum (a discussion/explanation). So either you are capable of delivering a proper patch with comments and explanations w/o whitespaces, or it's 'gone w/ the guys'. Sorry for being harsh - but we need to keep our QA standards. And .. guess what ? Our time is limited as well :) ~Sven signature.asc (907 bytes) Download Attachment |
Administrator
|
In reply to this post by Umka
On 11/15/2012 05:00 PM, Umka [via jogamp] wrote:
> diff --git a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java > b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java .. many lines of very invasive changes to native lib loading ,. I glanced over it, besides a few NOP changes you made (".jar") suffix, which are redundant and hence invalid, you also try to hardcode the architecture into the native library JAR file by creating subdir for each architecture. This would require a serious discussion, but also you to understand our current deployment schema _first_. Again: Such things cannot be done w/ a fly-bye stop dropping some half-ass patch. Also this is not a _FIX_ but a feature enhancement, if not even a loophole for some insecurity .. who knows ? :) ~Sven signature.asc (907 bytes) Download Attachment |
Up to you mister "maintainer" :) Throw it though the window if you like. I will not do anything, especially after your stupidly arrogant answer. It looks like you are 15...
|
Administrator
|
We won't throw it to the window, I really want to understand what it fixes and how.
Julien Gouesse | Personal blog | Website
|
Administrator
|
In reply to this post by Umka
On 11/15/2012 10:33 PM, Umka [via jogamp] wrote:
> Up to you mister "maintainer" :) Throw it though the window if you like. I > will not do anything, especially after your stupidly arrogant answer. :) Dear Umka, .. I know, don't feed the trolls, so this reply is probably futile. I gave you the attention even though you have no time to deliver a proper patch or to discuss it. I have read you writings, responded - even if it is to your dislike. I also looked at your patch, even though it is to my dislike :) You may find one day that time indeed is limited not only on you end, but also on the end of the others. Usually we have open discussions about changes, well - a source patch may qualify for that as well, but it is ofc often harder to use as such. It usually all boils down to discussions and spending lots of time and if the latter is to no availability dealing with such contributions is usually futile on my end. Well, it is not in my powers to ask you for your quality and time, which would be required to getting to the essence of your patch and maybe even ongoing commitment. Time and quality is one metric of mutual respect. > It looks like you are 15... Thank you for the compliment. I only wish, I would :) ~Sven signature.asc (909 bytes) Download Attachment |
Free forum by Nabble | Edit this page |