Subject: 5-10 lines of code. Do u see a bug?

Using XMMS 1.2.5 and the plugin OpenGL Spectrum Analyzer 1.2.5 that comes with it 
gives errors on both X11 4.1.0 w/ DRI + tdfx driver and NVidia OGL driver. The errors 
are of type:

1) Seg. Fault and  Xlib: unexpected async reply (sequence 0x1728)!

2)   Gdk-ERROR **: BadValue (integer parameter out of range for operation) serial 45 
error_code 2 request_code 147 minor_code 13

This happens when through the Vizualization menu enable/disable the plugin (especially 
if you do it really fast)

Looking at the code for hours only revealed a missing XFree() [ in the create_window() 
code ]. But that didn't fix the errors.

The following lines are suspicious though:

        if (window)
        {
                if (grabbed_pointer)
                {
                        XUngrabPointer(dpy, CurrentTime);
                        grabbed_pointer = FALSE;
                }

                XDestroyWindow(dpy, window);
                window = 0;
        }

        if (glxcontext)
        {
                glXMakeCurrent(dpy, 0, NULL);
                glXDestroyContext(dpy, glxcontext);
                glxcontext = NULL;
        }


Note that the order of glXDestroyContext and XDestoryWindow as above.  Once I reversed 
the above two if(dpy) and if(glxcontext) statements the problems went away. It does 
not seg. fault or crash XMMS.

Does this mean:

1) it was OKAY initially (as shown above) and the GL drivers have a problem when the 
window is killed before the context (driver should be able to handle this)

or

2) the above code is NOT OKAY. You should never kill the window before you have killed 
the context


Please tell us the right way of doing things, unless you have any more ideas on why 
the plugin is crashing xmms...  

PS. does glXDestroyContext do a glFlush() or waits for buffers to empty or hardware to 
be quiescent (sp?) or does it just return immediately?  The docs say about it being 
active in the current thread, but does that include the GL drivers?

Thanks


More info:
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
OpenGL vendor string: VA Linux Systems, Inc.
OpenGL renderer string: Mesa DRI Voodoo4 20010501 x86/MMX
OpenGL version string: 1.2 Mesa 3.4.2
OpenGL extensions:
    GL_ARB_multitexture, GL_ARB_transpose_matrix, GL_EXT_abgr,
    GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, GL_EXT_histogram,
    GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_polygon_offset,
    GL_EXT_rescale_normal, GL_EXT_stencil_wrap, GL_EXT_texture3D,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_object,
    GL_EXT_texture_lod_bias, GL_EXT_vertex_array, GL_HP_occlusion_test,
   GL_MESA_window_pos, GL_MESA_resize_buffers, GL_NV_texgen_reflection,
    GL_PGI_misc_hints, GL_SGI_color_matrix, GL_SGI_color_table,
    GL_SGIS_pixel_texture, GL_SGIS_texture_edge_clamp, GL_SGIX_pixel_texture
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess




-- 

Get your free email from www.linuxmail.org 


Powered by Outblaze

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to