Waveform 2.0 is jerking: GPU V-Sync
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Medium
|
Daniel Schürmann | ||
1.11 |
Won't Fix
|
Medium
|
Daniel Schürmann | ||
2.0 |
Fix Released
|
Medium
|
Daniel Schürmann |
Bug Description
I have noticed that the waveform 2.0 is jerking on my system.
System:
Ubuntu Oneiric 32bit
Gnome-Shell
Pentium Dual E2180 @ 2.00 GHz
2 GiB RAM
Radeon HD 4350 with radeon driver
lp:mixxx #3012
I am not sure if it is an hardware performance problem, because the CPU usage is at 40% the same as with waveform 1.0.
The selected and the current frame rate are 30 fps. It is possible to have both at 60 fps without additional issues.
The jerking happens about 3 times per second. It looks like if there where some frames refreshed with ~5 fps although 30 fps is selected.
This was tested with "Filtered (GL)" and Simple (GL).
Filtered (GLSL) produces no waveform, only | bars. If I can see this correct, at least without jerking.
"Filtered" has a frame rate of ~5 fps at all.
Related branches
- Mixxx Development Team: Pending requested
-
Diff: 3371 lines (+1344/-530)50 files modifiedmixxx/build/depends.py (+4/-0)
mixxx/src/controlobjectbase.h (+147/-0)
mixxx/src/dlgprefcontrols.cpp (+16/-23)
mixxx/src/dlgprefcontrols.h (+1/-6)
mixxx/src/engine/bpmcontrol.cpp (+3/-2)
mixxx/src/engine/enginebuffer.cpp (+9/-10)
mixxx/src/engine/enginebuffer.h (+3/-2)
mixxx/src/main.cpp (+9/-0)
mixxx/src/mixxx.cpp (+1/-3)
mixxx/src/sounddeviceportaudio.cpp (+2/-0)
mixxx/src/visualplayposition.cpp (+109/-0)
mixxx/src/visualplayposition.h (+57/-0)
mixxx/src/waveform/renderers/glvsynctestrenderer.cpp (+133/-0)
mixxx/src/waveform/renderers/glvsynctestrenderer.h (+19/-0)
mixxx/src/waveform/renderers/waveformrenderbeat.cpp (+1/-1)
mixxx/src/waveform/renderers/waveformrendererendoftrack.cpp (+16/-2)
mixxx/src/waveform/renderers/waveformrendererendoftrack.h (+2/-1)
mixxx/src/waveform/renderers/waveformrendererhsv.cpp (+0/-177)
mixxx/src/waveform/renderers/waveformrendererhsv.h (+0/-21)
mixxx/src/waveform/renderers/waveformrendererpreroll.cpp (+5/-3)
mixxx/src/waveform/renderers/waveformrendermark.cpp (+2/-2)
mixxx/src/waveform/renderers/waveformrendermarkrange.cpp (+2/-2)
mixxx/src/waveform/renderers/waveformwidgetrenderer.cpp (+50/-50)
mixxx/src/waveform/renderers/waveformwidgetrenderer.h (+7/-4)
mixxx/src/waveform/vsyncthread.cpp (+179/-0)
mixxx/src/waveform/vsyncthread.h (+109/-0)
mixxx/src/waveform/waveformwidgetfactory.cpp (+160/-55)
mixxx/src/waveform/waveformwidgetfactory.h (+27/-16)
mixxx/src/waveform/widgets/emptywaveformwidget.cpp (+6/-0)
mixxx/src/waveform/widgets/emptywaveformwidget.h (+2/-1)
mixxx/src/waveform/widgets/glsimplewaveformwidget.cpp (+19/-4)
mixxx/src/waveform/widgets/glsimplewaveformwidget.h (+6/-5)
mixxx/src/waveform/widgets/glslwaveformwidget.cpp (+23/-3)
mixxx/src/waveform/widgets/glslwaveformwidget.h (+7/-5)
mixxx/src/waveform/widgets/glvsynctestwidget.cpp (+75/-0)
mixxx/src/waveform/widgets/glvsynctestwidget.h (+30/-0)
mixxx/src/waveform/widgets/glwaveformwidget.cpp (+18/-4)
mixxx/src/waveform/widgets/glwaveformwidget.h (+5/-4)
mixxx/src/waveform/widgets/hsvwaveformwidget.cpp (+0/-41)
mixxx/src/waveform/widgets/hsvwaveformwidget.h (+0/-29)
mixxx/src/waveform/widgets/qtsimplewaveformwidget.cpp (+19/-4)
mixxx/src/waveform/widgets/qtsimplewaveformwidget.h (+6/-5)
mixxx/src/waveform/widgets/qtwaveformwidget.cpp (+19/-4)
mixxx/src/waveform/widgets/qtwaveformwidget.h (+6/-5)
mixxx/src/waveform/widgets/softwarewaveformwidget.h (+5/-5)
mixxx/src/waveform/widgets/waveformwidgetabstract.cpp (+8/-15)
mixxx/src/waveform/widgets/waveformwidgetabstract.h (+5/-4)
mixxx/src/waveform/widgets/waveformwidgettype.h (+3/-2)
mixxx/src/widget/wspinny.cpp (+7/-8)
mixxx/src/widget/wspinny.h (+2/-2)
Changed in mixxx: | |
milestone: | none → 1.11.0 |
tags: | added: waveform |
Changed in mixxx: | |
assignee: | nobody → Daniel Schürmann (daschuer) |
status: | Confirmed → In Progress |
no longer affects: | mixxx/2.1 |
Changed in mixxx: | |
status: | In Progress → Fix Released |
Attached you find a sequence with a jerk.
I am not sure how significant is, but maybe it helps.
It was generated by desktoprecorder, converted to avi and picked single steps with avidemux.
It seems, that frame 3 is jumping to far ahead and because of this, frame 4 is jumping back.
In the last 3 frames the waveform stops.
I am really not sure if this is the truth or if this is the result from reencoding.