[Ardour-Dev] SuperRapidScreenUpdates are neither rapid, nor super.
fons at kokkinizita.net
Sun Mar 8 08:33:00 PDT 2009
On Sun, Mar 08, 2009 at 08:54:58AM -0500, Paul Davis wrote:
> On Sun, Mar 8, 2009 at 7:07 AM, Fons Adriaensen <fons at kokkinizita.net>wrote:
> > It shouldn't be a CPU hog. Yass (scrolling scope) running
> > full-screen, 100 updates/second,
> how does it accomplish this on an 80Hz monitor?
The software doesn't care about the monitor frame
rate, it just writes an update 100 times per second.
It's a waste of resources of course, just for the
> You need to repaint only two narrow vertical strips,
> > the new part at the right, and the one that was covered
> > by the playhead in it previous position. The important
> > part is to structure your display code in such a way
> > it can do this efficiently.
> the problem is that its not always "your" display code that is the problem.
> we reworked the canvas display logic to avoid a very nasty problem with X &
> the GnomeCanvas. the Canvas has no concept of "zoom, keeping the center of
> the current display in the center".
You mean it has no call to set the offset and scale
(mapping between user coordinates and pixels) in one
call ? Or it has but translates this into two separate
operations ? That is a serious defect.
> because X is async, you can sometimes (often!) see the intermediate state
> between the window move and the redraw.
That's not because X i async, just because there is
an intermediate state, and it takes finite time to
repaint. You can set X to synchronous more, but it's
not good for performance and would probably render
the problem you refer to even worse.
X has many ways to do things, you can paint directly
to the sceen (as far as the HW allows), to a server-
side buffer and then copy it, or to a client side image
and transfer that. Toolkits like GTK tend to hide these
options and impose a uniform model, which is not always
good for performance.
Laboratorio di Acustica ed Elettroacustica
Be quiet, Master Land; and you, Professor,
will you be so good as to listen to me ?
More information about the Ardour-Dev