Hi Thomas,

Thanks for all your hard work developing the new waveforms and doing
thorough performance testing and troubleshooting. It's great to get to
see the root of the problem.

I think the only way to fix OpenGL performance and resolve a lot of
these weird issues is to group all "high performance" graphics inside
a single OpenGL context (QGLWidget or otherwise).

I think this is generally a good architecture move because it'll make
our UI significantly more portable. (eg. The library can be a native /
Qt widget, but everything else could just be done with OpenGL.) Don't
worry about the skins for now either, we can design them around any
contraints we end up with.

What do you think?

Thanks,
Albert


On Sat, Apr 21, 2012 at 11:51 PM, thomas vincent <vri...@gmail.com> wrote:
> Hi mixxx,
>
> Many of you guys tried the new alpha version of mixxx that includes the new
> waveform-2.0 features.
> You may have noticed that this version of the waveform needs more resources
> that the previous.
>
> I have spend many days now trying to understand more what's appending and
> why simple rendering take so long when other application seems to run
> flawlessly.
> I wrote many sample applications base on NeHe tutorials (with and without
> Qt) that I ran them mostly on linux-64 ubuntu 11.10 with both gnome and KDE)
> and on windows7-64 too.
>
> I have noticed that even if the rendering is actually blazing fast *every*
> swap buffer we request will last until the context is "allowed" to be
> swapped.
> This is depended of a lot of parameters including hardware, drivers, drivers
> settings, current opengl format, vertical sync, ... One of the key concept
> here is vertical sync see http://www.opengl.org/wiki/Swap_Interval.
> On top of that composite manager can decide to postpone the buffer swap the
> application is rendered in, if this take more than a swap interval we are
> losing a frame, etc, etc ...
>
> In this context the worst thing we can do is using multiples QGLWidgets
> (even if they share their context) to render.
> Every single rendering will result in a ql swap buffer request, and every
> swap buffer will need the gl queue to be processed completely.
> I tried to draw the equivalent of 4 waveforms (4*10000 colored moving
> triangles) plus 4 spinnys (4 rotating textured quads) in a single GLWidget.
> I can reach 60 fps on every OS I tried when mixxx (with one widget per
> waveform/spinny) barely reach 10-15 fps depending of the OS (Laptop i7
> 1.6GHz, Nvidia GeForce GT 230M).
>
> We really need to change the way the rendering is done in Mixxx, but this
> involve majors changes.
> It will be great to start thinking about this, I honestly think that for the
> 1.11 version it's too late.
>
> What you guys think about this ?
> Do you think it could be suitable to have all waveform/spinny regrouped the
> same QGLWidget ?
> What about going full opengl in a single opengl main widget ? (next version
> of Qt 5.0 will *need* an opengl back-end rendering system anyway).
>
> Thomas (vRince)
>
>
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel



-- 
Albert Santoni
Developer, Mixxx
http://www.mixxx.org
http://www.oscillicious.com

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to