https://bugs.freedesktop.org/show_bug.cgi?id=28069
Summary: maniadrive - smooth play with LIBGL_ALWAYS_INDIRECT=true, (almost) unplayable otherwise Product: DRI Version: XOrg CVS Platform: Other OS/Version: All Status: NEW Severity: enhancement Priority: medium Component: DRM/Radeon AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: pcpa@mandriva.com.br
The problem described in https://bugs.freedesktop.org/show_bug.cgi?id=28002 actually also happens with the ati driver. Just that with the ati driver, it is less visible (the car position jumps less), but with LIBGL_ALWAYS_INDIRECT it also becomes a lot more smooth.
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #1 from Michel Dänzer michel@daenzer.net 2010-05-12 04:50:42 PDT --- Please attach (as opposed to paste) the output of glxinfo with and without LIBGL_ALWAYS_INDIRECT.
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #2 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-12 13:15:36 PDT --- Created an attachment (id=35599) --> (https://bugs.freedesktop.org/attachment.cgi?id=35599) LIBGL_ALWAYS_INDIRECT=true glxinfo.txt
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #3 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-12 13:16:12 PDT --- Created an attachment (id=35600) --> (https://bugs.freedesktop.org/attachment.cgi?id=35600) glxinfo
https://bugs.freedesktop.org/show_bug.cgi?id=28069
Paulo César Pereira de Andrade pcpa@mandriva.com.br changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #35599|LIBGL_ALWAYS_INDIRECT=true |LIBGL_ALWAYS_INDIRECT=true description|glxinfo.txt |glxinfo
--- Comment #4 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-12 13:16:49 PDT --- (From update of attachment 35599) description is command line used
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #5 from Michel Dänzer michel@daenzer.net 2010-05-14 07:31:59 PDT --- Quite a few more extensions are available with direct rendering, e.g. GLX_SGI_video_sync. Maybe there's a problem with one of those. Might be interesting to, with direct rendering:
* If the maniadrive process hogs the CPU: Get a profile with sysprof or oprofile. * Otherwise: Interrupt execution at regular intervals in gdb and see if it's in a particular place most of the time.
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #6 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-14 12:22:37 PDT --- It doesn't hog cpu, and the performance decrease in fps is minimal. After 30ish ^Cs in gdb the most common backtrace pattern is:
Program received signal SIGINT, Interrupt. 0xffffe424 in __kernel_vsyscall () (gdb) bt #0 0xffffe424 in __kernel_vsyscall () #1 0xb6e92b16 in poll () from /lib/i686/libc.so.6 #2 0xb5e94c10 in ?? () from /usr/lib/libxcb.so.1 #3 0xb5e96c14 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1 #4 0xb637e33b in _XReply () from /usr/lib/libX11.so.6 #5 0xb69828a8 in ?? () from /usr/lib/libGL.so.1 #6 0xb6982fae in glXMakeCurrentReadSGI () from /usr/lib/libGL.so.1 #7 0xb6983103 in glXMakeCurrent () from /usr/lib/libGL.so.1 #8 0xb6f6deea in myglutGetEvents () from /usr/lib/libraydium.so.0 #9 0xb6f6e004 in glutMainLoop () from /usr/lib/libraydium.so.0 #10 0xb6f33120 in raydium_callback () from /usr/lib/libraydium.so.0 #11 0x08053fe6 in ?? () #12 0xb6ddcb96 in __libc_start_main () from /lib/i686/libc.so.6 #13 0x0804b8c1 in ?? ()
the second most common pattern is: Program received signal SIGINT, Interrupt. 0xb6e92aa1 in poll () from /lib/i686/libc.so.6 (gdb) bt #0 0xb6e92aa1 in poll () from /lib/i686/libc.so.6 #1 0xb5e94c10 in ?? () from /usr/lib/libxcb.so.1 #2 0xb5e951c2 in ?? () from /usr/lib/libxcb.so.1 #3 0xb5e95591 in xcb_writev () from /usr/lib/libxcb.so.1 #4 0xb637e12c in _XSend () from /usr/lib/libX11.so.6 #5 0xb69831a8 in ?? () from /usr/lib/libGL.so.1 #6 0xb69a1e7a in ?? () from /usr/lib/libGL.so.1 #7 0xb6f53890 in raydium_particle_draw_all () from /usr/lib/libraydium.so.0 #8 0xb6f32fe3 in raydium_callback_image () from /usr/lib/libraydium.so.0 #9 0xb6f57158 in raydium_rendering_finish () from /usr/lib/libraydium.so.0 #10 0x08052a85 in ?? () #11 0xb6f6dfff in glutMainLoop () from /usr/lib/libraydium.so.0 #12 0xb6f33120 in raydium_callback () from /usr/lib/libraydium.so.0 #13 0x08053fe6 in ?? () #14 0xb6ddcb96 in __libc_start_main () from /lib/i686/libc.so.6 #15 0x0804b8c1 in ?? ()
only a few times I got a "random" different backtrace, eg: Program received signal SIGINT, Interrupt. 0xb62a800c in pthread_once () from /lib/i686/libpthread.so.0 (gdb) bt #0 0xb62a800c in pthread_once () from /lib/i686/libpthread.so.0 #1 0xb692b9d7 in ?? () from /usr/lib/libGL.so.1 #2 0xb69376d4 in ?? () from /usr/lib/libGL.so.1 #3 0xb6ef84c1 in raydium_osd_printf () from /usr/lib/libraydium.so.0 #4 0x0804c91d in ?? () #5 0x08052a80 in ?? () #6 0xb6f16fff in glutMainLoop () from /usr/lib/libraydium.so.0 #7 0xb6edc120 in raydium_callback () from /usr/lib/libraydium.so.0 #8 0x08053fe6 in ?? () #9 0xb6d85b96 in __libc_start_main () from /lib/i686/libc.so.6 #10 0x0804b8c1 in ?? ()
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #7 from Michel Dänzer michel@daenzer.net 2010-05-20 02:45:52 PDT --- Possible next steps would be trying to figure out if it really needs to call glXMakeCurrent() so often / why that takes such a long time.
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #8 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-20 16:26:50 PDT --- (In reply to comment #7)
Possible next steps would be trying to figure out if it really needs to call glXMakeCurrent() so often / why that takes such a long time.
I tried to find in the svn log in http://raydium.org/svn.php?all= but neither there neither a way to do a svn checkout and then a svn annotate...
If you look at http://raydium.org/svn.php?f=/trunk/raydium/myglut-x11.c, in "void myglutGetEvents (void)" it calls it for ConfigureNotify events, but also always call when leaving that function. The only non local exits are for ClientMessage and DestroyNotify events.
Maybe it was some kind of workaround to some bug.
I made a bug report also at the maniadrive forum at:
http://memak.raydium.org/viewtopic.php?f=10&t=2115
as it appears to be a raydium or maniadrive bug. At least based on your comment. Thanks.
https://bugs.freedesktop.org/show_bug.cgi?id=28069
--- Comment #9 from Paulo César Pereira de Andrade pcpa@mandriva.com.br 2010-05-20 16:30:19 PDT --- Just for the record, I made a build commenting the call to glxMakeCurrent() and tested on an ati and intel card.
In the ati, it appears to have resolved the issue, but framerates become reported as like 9 fps, and it was indeed somewhat choppy, but the car did not keep "jumping". With the intel card it did not make any difference, and still LIBGL_ALWAYS_INDIRECT=true would correct the issue in the alternate build (and framerate as over 150 fps in both cards/computers).
[ talking about intel card because I also reported the problem in https://bugs.freedesktop.org/show_bug.cgi?id=28002 ]
https://bugs.freedesktop.org/show_bug.cgi?id=28069
Martin Peres martin.peres@free.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |MOVED Status|NEW |RESOLVED
--- Comment #10 from Martin Peres martin.peres@free.fr --- -- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/126.
dri-devel@lists.freedesktop.org