Mutithreading Nvidia OGL error

I’m working in a proyect of integration of NyARToolKit (Augmented Reality) and Ogre4j (graphic engine) in Java.
I’m making a dynamic texture to get the camera (webcam) into the background of the ogre scene and i get this error every time.

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6995f4a6, pid=5260, tid=1324

JRE version: 6.0_21-b06

Java VM: Java HotSpot™ Client VM (17.0-b16 mixed mode windows-x86 )

Problematic frame:

C [nvoglv32.DLL+0x45f4a6]

It doesn’t crash always at the same point. Sometimes it works some frames and sometimes crashes after the first (inicialization frame).
I’ve been searching for information on the web, and people give two answers:
1.-Update/rollback nvidia drivers: wich i’ve already done several times and doesn’t seem to work. And i’ve also tried to change the nvidia settings manually and the result has been the same.
2.-It is a OGL bug, change rendersystem to direct3d. I really didn’t like this option, but i’ve tried, but it seems that Ogre4j (java wrap of Ogre3D) doesn’t like either direct3d and there are a lot of things simply not implemented

After all that, i’ve retourned to OGL, and investigated a little bit more. I’ve found the Vertex Buffer Objects and i think it has something to do with my issue, but, i don’t get the relationship.

Any idea?

Thanks in advance.

P.S. i can give you all the entire log and anything from my code.

  1. you mention multithreading only in your post title. Is it relevant ? Ie. do you access OpenGL driver from multiple threads ? (you should not)
  2. you mention VBO : are you sure you send a correct and big enough array ?

1)Yes, i have 5 differents threads, but the most relevants ARE the one in wich i manage de webcam and the other is the main thread, ogre, wich i think is the only one that uses OpenGL libraries.
In any case, why i shouldn’t use ogl for multiple threads??

2)My array is complete and correct and the pixel conversions work fine. The first frame show well and i’ve also made some tests making graphics pixel-to-pixel (disconnecting the camera) and then the application works properly and longer until it crashes.
May i define my NativeFloatBuffer (wich i use to pass the pixel array, as Ogre4j is a C++ wrap, and in java you can’t use pointers directly, as everybody knows) like or into a VBO? or it’s already an VBO. I think i don’t get to understand how VBOs work…

Sorry, i only have 3 threads (i had 5 in a previous test).
The 1st is the Deamon thread [AWT-Windows] wich manages the camera itself.
The 2nd is the VFW Request Thread, wich uses JMF for the device detection and capture (NyARToolKit part)
The 3rd is the main Thread, the graphic engine from where i control everything, and make the show, and i think is the only in wich OpenGL is used (unless jmf/java3d uses OpenGL :S)

Ok, i’ve re-actualized the nvidia drivers to version 258.96, i’ve disconnected everything from the AR libraries, and try executing the single main thread with the “pixel-to-pixel” dynamic texture (using both tipical pixel formats PF_FLOAT32_RGBA and PF_BYTE_BGRA). So… no multithreading, no data buffers coming from other place… only one thread, the graphic engine: Ogre4j with a simple dynamic texture actualized every frame as a scene background, simple, huh?

Well… after a while (<2’) it crashes exactly the same way than before!

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x699b7b96, pid=1812, tid=5360

JRE version: 6.0_21-b06

Java VM: Java HotSpot™ Client VM (17.0-b16 mixed mode windows-x86 )

Problematic frame:

C [nvoglv32.DLL+0x4b7b96]

any ideas?

That’s why:

Do you have anything more precise to pinpoint what causes the crash ? Ie. the java stacktrace, the C method stack, etc ?

So currently you are certain that only 1 thread is running ?

Can you show some code, hopefully streamlined to be short and readable ?

Ok, now i’m sure there’es only one thread. I’ve disconnected from the main program (Ogre) everything else and to be sure, in the debug window of eclipse it only shows one thread.
(and i’m running windows 7 32bits without aero).

Here is the console after execution and crash: console.txt

Here is the log: hs_err_pid4120.txt

I’ve seen the source code of ogre3d in c++, wich ogre4j wraps, and it implements the swapbuffer and wglMakeCurrent functions every time it renders one frame, so it wouldn’t have problems with that… anyway, my problem has to be in other place, because i assure it crashes with only one thread!

I can’t debug it step by step because it crashes after aproximately 30", but each time in a different point.
I thought it had to do with memmory, but i’ve “tracked” memmory with the proccess explorer (highly recommended) and it seems it’s not leaking.

Your attachments are “forbidden”, I am unable to see any of them.

You should be able to debug with a breakpoint-when-crash-happens. Maybe the Java/C++ mix makes that harder, sorry I have no experience in that.

I thought it had to do with memmory, but i’ve “tracked” memmory with the proccess explorer (highly recommended) and it seems it’s not leaking.

Such a crash has nothing to do with memory leak.
Only that a pointer is passed around and when data is read at this place, it happens to be a not-data place (NULL, code adress, non allocated, whatever). It can also happen for example when you pass an array for 10 values, whereas code try to read it for 11 values.

I don’t know what happends to the attachments, i didn’t want to, but i put the log and the console in the next two post.

I can’t do this breakpoint that you say, because eclipse has no access to the native code :@

I think it should be something like that, but i’ve checked every array/buffer in execution time and all of them have the same size. If you look at the trace it crashes in the invocation of the finalize method, wich only runs at the end of the execution o is it the java automatic garbage collector?


Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type ‘DefaultSceneManager’ registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type ‘ParticleSystem’ registered.
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
FreeImage version: 3.10.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2
DDS codec registering
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type ‘Entity’ registered.
MovableObjectFactory for type ‘Light’ registered.
MovableObjectFactory for type ‘BillboardSet’ registered.
MovableObjectFactory for type ‘ManualObject’ registered.
MovableObjectFactory for type ‘BillboardChain’ registered.
MovableObjectFactory for type ‘RibbonTrail’ registered.
--* OGRE Initialising
--* Version 1.6.2 (Shoggoth)
Loading library RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Plugin successfully installed
CPU Identifier & Features

  • CPU ID: GenuineIntel: Intel® Core™2 Quad CPU Q9650 @ 3.00GHz
  •  SSE: yes
  • SSE2: yes
  • SSE3: yes
  •  MMX: yes
  • MMXEXT: yes
  • 3DNOW: no
  • 3DNOWEXT: no
  • CMOV: yes
  •  TSC: yes
  •  FPU: yes
  •  PRO: yes
  •   HT: no

*** Starting Win32GL Subsystem ***
GLRenderSystem::_createRenderWindow “”, 640x480 windowed miscParams: externalWindowHandle=67034
GL_VERSION = 3.3.0
GL_VENDOR = NVIDIA Corporation
GL_EXTENSIONS = GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers 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_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays 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_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map 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_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle GL_ARB_timer_query 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_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add 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_Cg_shader GL_EXT_depth_bounds_test 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_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 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_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap 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_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_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_IBM_rasterpos_clip 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_depth_buffer_float GL_NV_depth_clamp GL_NV_explicit_multisample GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_buffer_load GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
Supported WGL extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_profile WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_NVX_DX_interop WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle

*** GL Renderer Started ***

Registering ResourceManager for type GpuProgram
GLSL support detected
GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
FBO PF_UNKNOWN depth/stencil support: D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_L8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A4L4 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_BYTE_LA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_R5G6B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_B5G6R5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A1R5G5B5 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_B8G8R8A8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A2R10G10B10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_A2B10G10R10 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_X8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_X8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_SHORT_RGBA depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_R3G3B2 depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT16_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT32_R depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT16_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_FLOAT32_GR depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
FBO PF_SHORT_RGB depth/stencil support: D0S0 D16S0 D24S0 D32S0 Packed-D24S8
RenderSystem capabilities

RenderSystem Name: OpenGL Rendering Subsystem
GPU Vendor: nvidia
Device Name: GeForce 8800 GTX/PCI/SSE2
Driver Version:

  • Fixed function pipeline: yes
  • Hardware generation of mipmaps: yes
  • Texture blending: yes
  • Anisotropic texture filtering: yes
  • Dot product texture operation: yes
  • Cube mapping: yes
  • Hardware stencil buffer: yes
    • Stencil depth: 8
    • Two sided stencil support: yes
    • Wrap stencil values: yes
  • Hardware vertex / index buffers: yes
  • Vertex programs: yes
  • Fragment programs: yes
  • Geometry programs: yes
  • Supported Shader Profiles: arbfp1 arbvp1 fp20 fp30 fp40 glsl gp4gp gpu_gp nvgp4 vp30 vp40
  • Texture Compression: yes
    • DXT: yes
    • VTC: yes
  • Scissor Rectangle: yes
  • Hardware Occlusion Query: yes
  • User clip planes: yes
  • VET_UBYTE4 vertex element type: yes
  • Infinite far plane projection: yes
  • Hardware render-to-texture: yes
  • Floating point textures: yes
  • Non-power-of-two textures: yes
  • Volume textures: yes
  • Multiple Render Targets: 8
    • With different bit depths: yes
  • Point Sprites: yes
  • Extended point parameters: yes
  • Max Point Size: 63.375
  • Vertex texture fetch: yes
    • Max vertex textures: 32
    • Vertex textures shared: yes
  • Render to Vertex Buffer : yes
  • GL 1.5 without VBO workaround: no
  • Frame Buffer objects: yes
  • Frame Buffer objects (ARB extension): no
  • Frame Buffer objects (ATI extension): no
  • PBuffer suppport: no
  • GL 1.5 without HW-occlusion workaround: no
    Registering ResourceManager for type Texture
    ResourceBackgroundQueue - threading disabled
    Particle Renderer Type ‘billboard’ registered
    Added resource location ‘media’ of type ‘FileSystem’ to resource group ‘General’
    Parsing scripts for resource group Autodetect
    Finished parsing scripts for resource group Autodetect
    Parsing scripts for resource group General
    Parsing script walk_1.material
    Parsing script zuh.material
    Finished parsing scripts for resource group General
    Parsing scripts for resource group Internal
    Finished parsing scripts for resource group Internal
    Mesh: Loading walk_1.mesh.
    Skeleton: Loading walk_1.skeleton
    Texture: Final.jpg: Loading 1 faces(PF_R8G8B8,2048x2048x1) with 11 generated mipmaps from Image. Internal format is PF_X8R8G8B8,2048x2048x1.

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x699b7b96, pid=4120, tid=2316

JRE version: 6.0_21-b06

Java VM: Java HotSpot™ Client VM (17.0-b16 mixed mode windows-x86 )

Problematic frame:

C [nvoglv32.DLL+0x4b7b96]

An error report file with more information is saved as:


If you would like to submit a bug report, please visit:

The crash happened outside the Java Virtual Machine in native code.

See problematic frame for where to report the bug.


A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x699b7b96, pid=4120, tid=2316

JRE version: 6.0_21-b06

Java VM: Java HotSpot™ Client VM (17.0-b16 mixed mode windows-x86 )

Problematic frame:

C [nvoglv32.DLL+0x4b7b96]

If you would like to submit a bug report, please visit:

The crash happened outside the Java Virtual Machine in native code.

See problematic frame for where to report the bug.

--------------- T H R E A D ---------------

Current thread (0x0164c000): JavaThread “Finalizer” daemon [_thread_in_native, id=2316, stack(0x17890000,0x178e0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000770

EAX=0x00000000, EBX=0xffffffff, ECX=0x18649bc0, EDX=0x18ad78dc
ESP=0x178df710, EBP=0x1863e0ec, ESI=0x18649bc0, EDI=0x18540088
EIP=0x699b7b96, EFLAGS=0x00010206

Top of Stack: (sp=0x178df710)
0x178df710: 18a84ee4 00000001 18649bec 18649bc0
0x178df720: 178df758 18ac12d9 00000000 18a84e99
0x178df730: 18649bc0 18540098 180153db 00000001
0x178df740: 18540028 17fccab5 18540058 18540058
0x178df750: 1863e0ec ffffffff 178df77c 1827e0ae
0x178df760: ffffffff 17fcca7b 18540098 1863e0e8
0x178df770: 1863e0ec 178df850 13bc2c01 178df79c
0x178df780: 1827e0ae ffffffff 180561dd 18540058

Instructions: (pc=0x699b7b96)
0x699b7b86: cc cc cc cc cc cc cc cc cc cc 64 a1 a4 0e 00 00
0x699b7b96: ff a0 70 07 00 00 cc cc cc cc cc cc cc cc cc cc

Stack: [0x17890000,0x178e0000], sp=0x178df710, free space=13d178df22ck
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [nvoglv32.DLL+0x4b7b96]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.ogre4j.Rectangle2D.__delete(J)V+0
j org.ogre4j.Rectangle2D.delete()V+32
j org.ogre4j.Rectangle2D.finalize()V+15
v ~StubRoutines::call_stub
J java.lang.ref.Finalizer.invokeFinalizeMethod(Ljava/lang/Object;)V
J java.lang.ref.Finalizer.runFinalizer()V
J java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V
j java.lang.ref.Finalizer$
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x0169c000 JavaThread “Low Memory Detector” daemon [_thread_blocked, id=2120, stack(0x179d0000,0x17a20000)]
0x01682400 JavaThread “CompilerThread0” daemon [_thread_blocked, id=2812, stack(0x17980000,0x179d0000)]
0x0167fc00 JavaThread “Attach Listener” daemon [_thread_blocked, id=3548, stack(0x17930000,0x17980000)]
0x0167cc00 JavaThread “Signal Dispatcher” daemon [_thread_blocked, id=4632, stack(0x178e0000,0x17930000)]
=>0x0164c000 JavaThread “Finalizer” daemon [_thread_in_native, id=2316, stack(0x17890000,0x178e0000)]
0x01647400 JavaThread “Reference Handler” daemon [_thread_blocked, id=4860, stack(0x17840000,0x17890000)]
0x0129b000 JavaThread “main” [_thread_in_Java, id=4856, stack(0x00350000,0x003a0000)]

Other Threads:
0x01644c00 VMThread [stack: 0x01240000,0x01290000] [id=2312]
0x016a5400 WatcherThread [stack: 0x17a20000,0x17a70000] [id=1136]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

def new generation total 4928K, used 489K [0x03730000, 0x03c80000, 0x08c80000)
eden space 4416K, 2% used [0x03730000, 0x03746180, 0x03b80000)
from space 512K, 78% used [0x03b80000, 0x03be4318, 0x03c00000)
to space 512K, 0% used [0x03c00000, 0x03c00000, 0x03c80000)
tenured generation total 10944K, used 1200K [0x08c80000, 0x09730000, 0x13730000)
the space 10944K, 10% used [0x08c80000, 0x08dac010, 0x08dac200, 0x09730000)
compacting perm gen total 12288K, used 4997K [0x13730000, 0x14330000, 0x17730000)
the space 12288K, 40% used [0x13730000, 0x13c115e8, 0x13c11600, 0x14330000)
No shared spaces configured.

Dynamic libraries:
0x00400000 - 0x00424000 C:\Program Files\Java\jre6\bin\javaw.exe
0x77630000 - 0x7776c000 C:\Windows\SYSTEM32
0x75b30000 - 0x75c04000 C:\Windows\system32\kernel32.dll
0x75800000 - 0x7584a000 C:\Windows\system32\KERNELBASE.dll
0x777c0000 - 0x77860000 C:\Windows\system32\ADVAPI32.dll
0x76de0000 - 0x76e8c000 C:\Windows\system32\msvcrt.dll
0x777a0000 - 0x777b9000 C:\Windows\SYSTEM32\sechost.dll
0x75a80000 - 0x75b21000 C:\Windows\system32\RPCRT4.dll
0x75c90000 - 0x75d59000 C:\Windows\system32\USER32.dll
0x75c10000 - 0x75c5e000 C:\Windows\system32\GDI32.dll
0x77270000 - 0x7727a000 C:\Windows\system32\LPK.dll
0x77500000 - 0x7759d000 C:\Windows\system32\USP10.dll
0x77350000 - 0x7736f000 C:\Windows\system32\IMM32.DLL
0x77280000 - 0x7734c000 C:\Windows\system32\MSCTF.dll
0x7c340000 - 0x7c396000 C:\Program Files\Java\jre6\bin\msvcr71.dll
0x6d800000 - 0x6daa7000 C:\Program Files\Java\jre6\bin\client\jvm.dll
0x739a0000 - 0x739d2000 C:\Windows\system32\WINMM.dll
0x75720000 - 0x7576b000 C:\Windows\system32\apphelp.dll
0x6d7b0000 - 0x6d7bc000 C:\Program Files\Java\jre6\bin\verify.dll
0x6d330000 - 0x6d34f000 C:\Program Files\Java\jre6\bin\java.dll
0x6d290000 - 0x6d298000 C:\Program Files\Java\jre6\bin\hpi.dll
0x77780000 - 0x77785000 C:\Windows\system32\PSAPI.DLL
0x6d7f0000 - 0x6d7ff000 C:\Program Files\Java\jre6\bin\zip.dll
0x6d000000 - 0x6d14a000 C:\Program Files\Java\jre6\bin\awt.dll
0x71030000 - 0x71081000 C:\Windows\system32\WINSPOOL.DRV
0x76f70000 - 0x770cc000 C:\Windows\system32\ole32.dll
0x746e0000 - 0x7487e000 C:\Windows\WinSxS\\COMCTL32.dll
0x76e90000 - 0x76ee7000 C:\Windows\system32\SHLWAPI.dll
0x17dc0000 - 0x17fbb000 C:\Users\Many-Worlds\Documents\eclipse\workspace\NyARToolKitInOgre\ogre4j.dll
0x17fc0000 - 0x1850c000 C:\Users\Many-Worlds\Documents\eclipse\workspace\NyARToolKitInOgre\OgreMain.dll
0x715d0000 - 0x71657000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCP80.dll
0x71690000 - 0x7172b000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCR80.dll
0x17d30000 - 0x17d89000 C:\Users\Many-Worlds\AppData\Local\Temp\swtlib-32\swt-win32-3557.dll
0x75d60000 - 0x75def000 C:\Windows\system32\OLEAUT32.dll
0x76ef0000 - 0x76f6b000 C:\Windows\system32\comdlg32.dll
0x75f90000 - 0x76bd9000 C:\Windows\system32\SHELL32.dll
0x77400000 - 0x774f4000 C:\Windows\system32\WININET.dll
0x77790000 - 0x77793000 C:\Windows\system32\Normaliz.dll
0x75df0000 - 0x75f25000 C:\Windows\system32\urlmon.dll
0x758a0000 - 0x759bc000 C:\Windows\system32\CRYPT32.dll
0x757f0000 - 0x757fc000 C:\Windows\system32\MSASN1.dll
0x76be0000 - 0x76dd9000 C:\Windows\system32\iertutil.dll
0x74560000 - 0x745a0000 C:\Windows\system32\uxtheme.dll
0x17d90000 - 0x17d95000 C:\Program Files\Unlocker\UnlockerHook.dll
0x74170000 - 0x74183000 C:\Windows\system32\dwmapi.dll
0x756b0000 - 0x756bc000 C:\Windows\system32\CRYPTBASE.dll
0x18a70000 - 0x18b20000 C:\Users\Many-Worlds\Documents\eclipse\workspace\NyARToolKitInOgre\RenderSystem_GL.DLL
0x73560000 - 0x73628000 C:\Windows\system32\OPENGL32.dll
0x73700000 - 0x73722000 C:\Windows\system32\GLU32.dll
0x6c070000 - 0x6c157000 C:\Windows\system32\DDRAW.dll
0x736f0000 - 0x736f6000 C:\Windows\system32\DCIMAN32.dll
0x770d0000 - 0x7726d000 C:\Windows\system32\SETUPAPI.dll
0x75a50000 - 0x75a77000 C:\Windows\system32\CFGMGR32.dll
0x75880000 - 0x75892000 C:\Windows\system32\DEVOBJ.dll
0x69500000 - 0x6a28f000 C:\Windows\system32

VM Arguments:
jvm_args: -Dfile.encoding=UTF-8
java_command: prueba.ManyOgre
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_20
PATH=C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;c:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\android-sdk-windows;C:\Program Files\Common Files\Teleca Shared;C:\OgreSDK_vc10_v1-7-1\bin\release;C:\OgreSDK_vc10_v1-7-1;C:\Program Files\TortoiseSVN\bin;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;C:\Program Files\Java; C:\Program Files\Java\jdk1.6.0_20\bin; C:\Program Files\Java\JMF2.1.1e\lib\sound.jar; C:\Program Files\Java\JMF2.1.1e\lib\jmf.jar; C:\Program Files\Java\JMF2.1.1e\lib;C:\Program Files\SlikSvn\bin;C:\Program Files\QuickTime\QTSystem
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 10, GenuineIntel

--------------- S Y S T E M ---------------

OS: Windows 7 Build 7600

CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1

Memory: 4k page, physical 3668472k(2023512k free), swap 7335180k(4506508k free)

vm_info: Java HotSpot™ Client VM (17.0-b16) for windows-x86 JRE (1.6.0_21-b06), built on Jun 22 2010 00:56:49 by “java_re” with MS VC++ 7.1 (VS2003)

time: Thu Aug 26 09:33:46 2010
elapsed time: 26 seconds

In the “console”, when it shows openGL settings it prints: “PBuffer suppport: no”
Why? How can i set this to yes?
is it some renderWindow param?

PBuffer is an obsolete way to do offscreen rendering. FBO is way better so forget about PBuffer.

Re your problem, I have no idea how to help you more.
It might be related to objects being garbage collected too early for the GL driver, but that seem far fetched.
Have you tried the ogre4j support instead ?

Well, thank you a lot ZbuffeR, i appreciate your help.
The ogre4j forums haven’t any users and the administrator (part of the proyect developpers) can’t help more too.
i’ve tried to ask in ogre3d forums, but they refer me to ogre4j and close all my posts.
I’ll have to do what i didn’t want to… step down to D3D… and i say that, because, ogre4j also works with it but implements everything for OpenGL, so it’s a lot of work…
Any way, i’ll try again when i get to work the proyect with D3D…

Merci beaucoup. À très bien tôt!

I’ve been trawling the net for a solution to the very problem and I’m coming up with nothing so far.

I have a C++ app that is multithreaded, but the GL is rendered on the main thread. The second thread that I create is pure data processing. GL or not my view is there should be on influence on the GL by having this thread present; it is a design pattern that works for me 100% on a differnt GL application that I have been supporting on XP for years. I’m using Vista at home so I’ve been forced to use VS8 (VC6 no longer supported). I have 3 GL views, but altogether nothing special at all, in fact this app has no 3D, I’m just using a library that I know to get results I expect.

The access violation in nvoglv32.dll occurs on the call to wglMakeCurrent immediately after the call to SwapBuffers.

wglMakeCurrent(NULL, NULL);

The GPU is NVidia 8800 GTS (driver version which must have been updated when I installed


I had been using the default OpenGL api, but have tried to uprate using GLee to bypass windows OGL 1.1.

I am so far having not joy. I want to turn down the OGL acceleration to pure software, but this does not seem possible with the current NVidia control panel.

Commenting SwapBuffers resolves the crashing, but obviously I see no GL rendering! Turning off PFD_DOUBLEBUFFER in the pixel format descriptor then results in some very poor results, as one would expect.

So what could have changed? Should I be looking at the PIXELFORMATDESCRIPTOR perhaps, or faulty installation of the drivers (seems unlikely)? I am currently stumped!

The last snippet of info that someone may have also observed is that until I upgraded to 258.96 (from ~169) the crashing was largely inevitable but inconsistent. Now it occurs on the very first wglMakeCurrent(NULL, NULL) after the very first SwapBuffers().

I hope these observations help and someone can provide some insight.

Many thanks


I have witnessed the very same bug (SwapBuffers crashing on Win7). The bug got already reported to NVidia and will be fixed in the next driver release.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.