r29721 - trunk/libvo/gl_common.c
Author: reimar Date: Sun Sep 27 16:24:15 2009 New Revision: 29721 Log: Also check GLX client and server strings for extensions Modified: trunk/libvo/gl_common.c Modified: trunk/libvo/gl_common.c ============================================================================== --- trunk/libvo/gl_common.c Sat Sep 26 23:22:01 2009 (r29720) +++ trunk/libvo/gl_common.c Sun Sep 27 16:24:15 2009 (r29721) @@ -1563,6 +1563,21 @@ static XVisualInfo *getWindowVisualInfo( return XGetVisualInfo(mDisplay, VisualIDMask, &vinfo_template, &tmp); } +static void appendstr(char **dst, const char *str) +{ + int newsize; + char *newstr; + if (!str) + return; + newsize = strlen(*dst) + 1 + strlen(str) + 1; + newstr = realloc(*dst, newsize); + if (!newstr) + return; + *dst = newstr; + strcat(*dst, " "); + strcat(*dst, str); +} + /** * \brief Changes the window in which video is displayed. * If possible only transfers the context to the new window, otherwise @@ -1619,6 +1634,7 @@ int setGlWindow(XVisualInfo **vinfo, GLX if (!keep_context) { void *(*getProcAddress)(const GLubyte *); const char *(*glXExtStr)(Display *, int); + char *glxstr = strdup(""); if (*context) glXDestroyContext(mDisplay, *context); *context = new_context; @@ -1631,8 +1647,17 @@ int setGlWindow(XVisualInfo **vinfo, GLX if (!getProcAddress) getProcAddress = (void *)getdladdr; glXExtStr = getdladdr("glXQueryExtensionsString"); - getFunctions(getProcAddress, !glXExtStr ? NULL : - glXExtStr(mDisplay, DefaultScreen(mDisplay))); + if (glXExtStr) + appendstr(&glxstr, glXExtStr(mDisplay, DefaultScreen(mDisplay))); + glXExtStr = getdladdr("glXGetClientString"); + if (glXExtStr) + appendstr(&glxstr, glXExtStr(mDisplay, GLX_EXTENSIONS)); + glXExtStr = getdladdr("glXGetServerString"); + if (glXExtStr) + appendstr(&glxstr, glXExtStr(mDisplay, GLX_EXTENSIONS)); + + getFunctions(getProcAddress, glxstr); + free(glxstr); // and inform that reinit is neccessary return SET_WINDOW_REINIT;
reimar <subversion <at> mplayerhq.hu> writes:
Author: reimar Date: Sun Sep 27 16:24:15 2009 New Revision: 29721
Log: Also check GLX client and server strings for extensions
Modified: trunk/libvo/gl_common.c
This is on HP nx6110 laptop (Intel GPU?), running OpenSuse 10.3 and X.Org server 7.2-143.13
From this version on, mplayer -vo gl:yuv=n immediately restarts the X server for n=[1,2,3,4,6], the first back-trace can be found in Xorg.0.log.old.
mplayer -vo gl:yuv=5 immediately restarts the X server both before and after this commit with the second back-trace. -vo gl:yuv=1 (EE) DoSwapInterval: cx = 0x8738f90, GLX screen = 0x8268e58 Backtrace: 0: /usr/bin/Xorg(xf86SigHandler+0x81) [0x80ca381] 1: [0xffffe420] 2: /usr/lib/xorg/modules//extensions/libglx.so [0xb7c1b1c7] 3: /usr/lib/xorg/modules//extensions/libglx.so [0xb7c1fa6d] 4: /usr/bin/Xorg [0x81580be] 5: /usr/bin/Xorg(Dispatch+0x1af) [0x808f6af] 6: /usr/bin/Xorg(main+0x47e) [0x807717e] 7: /lib/libc.so.6(__libc_start_main+0xe0) [0xb7d32fe0] 8: /usr/bin/Xorg(FontFileCompleteXLFD+0x1e5) [0x8076501] Fatal server error: Caught signal 11. Server aborting (II) intel(0): xf86UnbindGARTMemory: unbind key 0 (II) intel(0): xf86UnbindGARTMemory: unbind key 1 -vo gl:yuv=5 Backtrace: 0: /usr/bin/Xorg(xf86SigHandler+0x81) [0x80ca381] 1: [0xffffe420] 2: /usr/lib/xorg/modules//extensions/libGLcore.so(_swrast_write_rgba_span+0x913) [0xa7876613] 3: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa785e93d] 4: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa78923c8] 5: /usr/lib/xorg/modules//extensions/libGLcore.so(_swrast_Triangle+0x2d) [0xa78915ad] 6: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa78a99ed] 7: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa78a9a38] 8: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa78c1fd1] 9: /usr/lib/xorg/modules//extensions/libGLcore.so [0xa78c2fa8] 10: /usr/lib/xorg/modules//extensions/libGLcore.so(_tnl_run_pipeline+0x153) [0xa78c5783] 11: /usr/lib/xorg/modules//extensions/libGLcore.so(_tnl_draw_prims+0x3f0) [0xa78c4c80] 12: /usr/lib/xorg/modules//extensions/libGLcore.so(vbo_exec_vtx_flush+0x1fb) [0xa78f6abb] 13: /usr/lib/xorg/modules//extensions/libGLcore.so(vbo_exec_FlushVertices+0x78) [0xa78f8ca8] 14: /usr/lib/xorg/modules//extensions/libGLcore.so(_mesa_ActiveTextureARB+0xb6) [0xa77ae0f6] 15: /usr/lib/xorg/modules//extensions/libglx.so [0xb7b8b748] 16: /usr/lib/xorg/modules//extensions/libglx.so(DoRender+0xdd) [0xb7b8245d] 17: /usr/lib/xorg/modules//extensions/libglx.so [0xb7b8257c] 18: /usr/lib/xorg/modules//extensions/libglx.so [0xb7b86a6d] 19: /usr/bin/Xorg [0x81580be] 20: /usr/bin/Xorg(Dispatch+0x1af) [0x808f6af] 21: /usr/bin/Xorg(main+0x47e) [0x807717e] 22: /lib/libc.so.6(__libc_start_main+0xe0) [0xb7c99fe0] 23: /usr/bin/Xorg(FontFileCompleteXLFD+0x1e5) [0x8076501] Fatal server error: Caught signal 11. Server aborting (II) intel(0): xf86UnbindGARTMemory: unbind key 0 (II) intel(0): xf86UnbindGARTMemory: unbind key 1 Carl Eugen
On Sat, May 22, 2010 at 11:34:23PM +0000, Carl Eugen Hoyos wrote:
reimar <subversion <at> mplayerhq.hu> writes:
Author: reimar Date: Sun Sep 27 16:24:15 2009 New Revision: 29721
Log: Also check GLX client and server strings for extensions
Modified: trunk/libvo/gl_common.c
This is on HP nx6110 laptop (Intel GPU?), running OpenSuse 10.3 and X.Org server 7.2-143.13
From this version on, mplayer -vo gl:yuv=n immediately restarts the X server for n=[1,2,3,4,6], the first back-trace can be found in Xorg.0.log.old.
X.org backtrace are unfortunately in general useless. MPlayer's -v output would be far more useful, at the very least OpenGL version, renderer string etc. are necessary. Complete glxinfo output up to but not including the visuals list might help, too.
mplayer -vo gl:yuv=5 immediately restarts the X server both before and after this commit with the second back-trace.
-vo gl:yuv=1 (EE) DoSwapInterval: cx = 0x8738f90, GLX screen = 0x8268e58
Tried with swapinterval=-1 ?
Reimar Döffinger <Reimar.Doeffinger <at> gmx.de> writes:
X.org backtrace are unfortunately in general useless. MPlayer's -v output would be far more useful
Hopefully enough output from -vo gl:swapinterval=-1 added Carl Eugen VIDEO: [XVID] 624x352 12bpp 23.976 fps 1027.5 kbps (125.4 kbyte/s) Auto-selected AVI audio ID = 1 [V] filefmt:3 fourcc:0x44495658 size:624x352 fps:23.976 ftime:=0.0417 Clip info: Software: MEncoder dev-SVN-r26940 get_path('sub/') -> '/home/cehoyos/.mplayer/sub/' X11 opening display: :0.0 vo: X11 color mask: FFFFFF (R:FF0000 G:FF00 B:FF) vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display) [x11] Detected wm supports NetWM. [x11] Detected wm supports FULLSCREEN state. [x11] Detected wm supports ABOVE state. [x11] Detected wm supports BELOW state. [x11] Detected wm supports STAYS_ON_TOP state. [x11] Current fstype setting honours FULLSCREEN STAYS_ON_TOP ABOVE BELOW X atoms [gl] GLX chose visual with ID 0x23 [gl] Running on OpenGL 'Mesa GLX Indirect' by 'Mesa project: www.mesa3d.org', version '1.4 (2.1 Mesa 7.0.1)' [gl] Settings after autodetection: ati-hack = 0, force-pbo = -1, rectangle = 0, yuv = 2 [gl] using extended formats. Use -vo gl:nomanyfmts if playback fails. [gl] Using 0 as slice height (0 means image height). ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family INFO: libavcodec init OK! Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4) ========================================================================== ========================================================================== Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer. mp3lib: using SSE optimized decore! MP3lib: init layer2&3 finished, tables done MPEG 1.0, Layer III, 48000 Hz 128 kbit Joint-Stereo, BPF: 384 Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0 AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000) Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3) ========================================================================== Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??... [libaf] Adding filter dummy [dummy] Was reinitialized: 48000Hz/2ch/s16le [dummy] Was reinitialized: 48000Hz/2ch/s16le Trying every known audio driver... ao2: 48000 Hz 2 chans s16le audio_setup: using '/dev/dsp' dsp device audio_setup: using '/dev/mixer' mixer device audio_setup: using 'pcm' mixer device audio_setup: sample format: s16le (requested: s16le) audio_setup: using 2 channels (requested: 2) audio_setup: using 48000 Hz samplerate (requested: 48000) audio_setup: frags: 16/16 (4096 bytes/frag) free: 65536 AO: [oss] 48000Hz 2ch s16le (2 bytes per sample) AO: Description: OSS/ioctl audio output AO: Author: A'rpi Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le... [dummy] Was reinitialized: 48000Hz/2ch/s16le [dummy] Was reinitialized: 48000Hz/2ch/s16le Starting playback... Increasing filtered audio buffer size from 0 to 65536 [ffmpeg] aspect_ratio: 1.772727 VDec: vo config request - 624 x 352 (preferred colorspace: Planar YV12) Trying filter chain: vo VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is 1.77:1 - prescaling to correct movie aspect. VO Config (624x352->624x352,flags=0,'MPlayer',0x32315659) VO: [gl] 624x352 => 624x352 Planar YV12 VO: Description: OpenGL VO: Author: Reimar Doeffinger <Reimar.Doeffinger@gmx.de> [gl] GLX chose visual with ID 0x23 [gl] Running on OpenGL 'Mesa GLX Indirect' by 'Mesa project: www.mesa3d.org', version '1.4 (2.1 Mesa 7.0.1)' [gl] Settings after autodetection: ati-hack = 0, force-pbo = -1, rectangle = 0, yuv = 2 [gl] Creating 1024x512 texture... [gl] 3 texture units needed for this type of YUV fragment support (found -1215377420) [gl] Resize: 624x352 *** [vo] Allocating (slices) mp_image_t, 624x352x12bpp YUV planar, 329472 bytes XXX initial v_pts=0.000 a_pos=8928 (0.553) *** [vo] Allocating (slices) mp_image_t, 624x352x12bpp YUV planar, 329472 bytes Unicode font: 656 glyphs. Unicode font: 656 glyphs. *** [vo] Allocating (slices) mp_image_t, 624x352x12bpp YUV planar, 329472 bytes
On Mon, May 24, 2010 at 01:54:37PM +0000, Carl Eugen Hoyos wrote:
[gl] Running on OpenGL 'Mesa GLX Indirect' by 'Mesa project: www.mesa3d.org', version '1.4 (2.1 Mesa 7.0.1)'
This looks truly ancient... And does this even have hardware acceleration?
[gl] Settings after autodetection: ati-hack = 0, force-pbo = -1, rectangle = 0, yuv = 2
That -1 is wrong, should be fixed. No idea if it avoids the crash though.
On Sunday, 23 May 2010 at 01:34, Carl Eugen Hoyos wrote:
reimar <subversion <at> mplayerhq.hu> writes:
Author: reimar Date: Sun Sep 27 16:24:15 2009 New Revision: 29721
Log: Also check GLX client and server strings for extensions
Modified: trunk/libvo/gl_common.c
This is on HP nx6110 laptop (Intel GPU?), running OpenSuse 10.3 and X.Org server 7.2-143.13
From this version on, mplayer -vo gl:yuv=n immediately restarts the X server for n=[1,2,3,4,6], the first back-trace can be found in Xorg.0.log.old.
mplayer -vo gl:yuv=5 immediately restarts the X server both before and after this commit with the second back-trace.
That's a bug in the Xorg server, you should report it to OpenSuse. It might have been fixed in a more recent version. IIRC the Xorg in OpenSuse 10.3 is quite old. Regards, R. -- MPlayer http://mplayerhq.hu | RPMFusion http://rpmfusion.org There should be a science of discontent. People need hard times and oppression to develop psychic muscles. -- from "Collected Sayings of Muad'Dib" by the Princess Irulan
On Mon, May 24, 2010 at 10:02:42AM +0200, Dominik 'Rathann' Mierzejewski wrote:
On Sunday, 23 May 2010 at 01:34, Carl Eugen Hoyos wrote:
reimar <subversion <at> mplayerhq.hu> writes:
Author: reimar Date: Sun Sep 27 16:24:15 2009 New Revision: 29721
Log: Also check GLX client and server strings for extensions
Modified: trunk/libvo/gl_common.c
This is on HP nx6110 laptop (Intel GPU?), running OpenSuse 10.3 and X.Org server 7.2-143.13
From this version on, mplayer -vo gl:yuv=n immediately restarts the X server for n=[1,2,3,4,6], the first back-trace can be found in Xorg.0.log.old.
mplayer -vo gl:yuv=5 immediately restarts the X server both before and after this commit with the second back-trace.
That's a bug in the Xorg server, you should report it to OpenSuse. It might have been fixed in a more recent version. IIRC the Xorg in OpenSuse 10.3 is quite old.
I would have hoped it to be obvious that X-server crashes are X bugs, however as I expected there was also a bug in MPlayer - this kind of thing is one of the reasons why I bother debugging obscure and broken-anyway systems.
participants (4)
-
Carl Eugen Hoyos -
Dominik 'Rathann' Mierzejewski -
reimar -
Reimar Döffinger