> i have this weird issue with waveform. but this was also there before the
> latest patch.
> when i use waveform display i get 100%cpu load. even if i am not even playing
> anything at all. this does not happen with simple display.
>
> i have compared straces from both cases.
> waveform produces a lot of these lines (notice all those getpid() calls..
> there are none in the simple-display):
>
> [pid 6299] 0.000013 ioctl(43, 0x80984120, 0x44f05e50) = 0
> [pid 6278] 0.000995 <... getpid resumed> ) = 6278
> [pid 6278] 0.000992 getpid( <unfinished ...>
> [pid 6299] 0.000012 clock_gettime(CLOCK_REALTIME, {1216067052,
> 376500320}) = 0
> [pid 6278] 0.000998 <... getpid resumed> ) = 6278
> [pid 6278] 0.000993 getpid( <unfinished ...>
> [pid 6299] 0.000016 poll( <unfinished ...>
> [pid 6278] 0.000986 <... getpid resumed> ) = 6278
> [pid 6278] 0.000995 getpid() = 6278
> [pid 6278] 0.002005 getpid() = 6278
> [pid 6278] 0.001998 getpid() = 6278
> [pid 6278] 0.001997 getpid() = 6278
> [pid 6278] 0.002000 getpid() = 6278
> [pid 6278] 0.002000 getpid() = 6278
> [pid 6299] 0.001009 <... poll resumed> [{fd=43, events=POLLOUT|POLLERR|
> POLLNVAL, revents=POLLOUT}], 1, 16) = 1
> [pid 6299] 0.000995 ioctl(43, 0x80984120 <unfinished ...>
> [pid 6278] 0.000019 getpid() = 6278
> [pid 6299] 0.000985 <... ioctl resumed> , 0x44f05e50) = 0
> [pid 6299] 0.000994 clock_gettime(CLOCK_REALTIME, <unfinished ...>
> [pid 6278] 0.000012 getpid() = 6278
> [pid 6299] 0.000995 <... clock_gettime resumed> {1216067052, 394903059})
> = 0
> [pid 6278] 0.002996 getpid() = 6278
> [pid 6299] 0.001008 clock_gettime(CLOCK_REALTIME, {1216067052,
> 399503073}) = 0
> [pid 6278] 0.001000 getpid() = 6278
> [pid 6299] 0.001016 ioctl(43, 0x80984120, 0x44f05e50) = 0
> [pid 6278] 0.000979 getpid() = 6278
> [pid 6299] 0.001001 clock_gettime(CLOCK_REALTIME, {1216067052,
> 403497684}) = 0
> [pid 6278] 0.001013 getpid() = 6278
> [pid 6299] 0.000991 poll([{fd=43, events=POLLOUT|POLLERR|POLLNVAL,
> revents=POLLOUT}], 1, 16) = 1
> [pid 6278] 0.001001 getpid() = 6278
> [pid 6299] 0.000995 ioctl(43, 0x80984120, 0x44f05e50) = 0
>
> ===================================
> basically it keeps doing this until i quit mixxx
>
> i'm running gentoo on a amd64 machine, nvidia gl drivers.
> gcc 4.1.2
>
> playback is surprisingly good. gui is completely unresponsive to the point
> where my complete desktop is almost unusable :)
>
>From what you describe, it sounds like you don't have direct rendering
enabled. Does "glxinfo | grep direct" say direct rendering: yes ?
The whole desktop being unusable sounds like X is spending all it's time
rendering the updates that we are posting from Mixxx. When this is
happening can you drop to a terminal and see if Xorg is also at high CPU
usage?
I'm not really sure why all those getpid calls are occuring. The render
loop is accomplished via Qt's timer interface. Every 30ms or so (in the
old visual code), a timerevent fires, which is followed by a call to
update() so a paintEvent is scheduled on the waveform widgets.
This means that they're being redrawn just about 1000/30 = 33 fps. I'd be
curious to see if the problem goes away when you turn the fps down. Go to
wvisualwaveform.cpp and in the constructor, change the setTimer call to
something higher, like 100 and see what happens.
I experienced almost /exactly/ what you described when I wrote a Non-GL
accelerated version of the waveform viewer to go with the GL version. The
intent was so that people could have a waveform viewer other than simple
if they didn't have GL support. I figured that a modern CPU/GPU would be
able to handle it without the GL, but what I found was that X and Mixxx
became unresponsive -- but the music playback was good. This leads me to
believe that the GUI thread is spending all its time making requests to X,
and X is the bottleneck. The Mixxx engine thread, however, is just fine
and chugs merrily along playing the audio.
Do you run Xinerama or Twinview, by any chance?
RJ
>
>
> /justin
>
>
> -------------------------------------------------------------------------
> Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
> Studies have shown that voting for your favorite open source project,
> along with a healthy diet, reduces your potential for chronic lameness
> and boredom. Vote Now at http://www.sourceforge.net/community/cca08
> _______________________________________________
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel