On Sat, 23 Mar 2013 17:10:01 -0700 (PDT) Bryan Olmstead <[email protected]>
said:

> 
> I just built a new machine with an nvidia gtx 650, using the 
> nvidia drivers, installed e 0.17.1 and efl 1.7.5 and have been trying to 
> figure out how to fix an issue with tearing/blockiness when the windows 
> are moved.
> 
> I've tried so many different things I cannot keep them straight, but there 
> seems to be two basic situations:
> 
> Composite is on, using opengl and loose sync and texture from pixmap for 
> both.
> 
> 1-  When tear-free updates is not checked the windows and mouse move fast 
> and stay together.  But, the sides of the windows tear.  If I move the 
> window right, I can see the scrollbar on the right flicker or appear 1/2 
> to 3/4 drawn as it moves.
> 
> 2-  When tear-free updates is checked the flicker and 1/2 to 3/4 problem 
> goes away.  But, as I drag the window across the screen the window lags 
> and the cursor will get an inch or more ahead of the window!  Then, when I 
> stop, the window catches up.
> 
> If any other information would be help let me know.
> 
> Thanks in advance,

that's your choice. lag with no tear, or tear with no lag. i can launch into an
essay on why this is the case, but i won't. that's life. there is nothing you
can do about it (pretty much).

basically tear-free is buffer swapping. your driver is also probably choosing
triple buffering which adds an extra frame (about 16ms) to latency compared to
double buffering. this may be tweakable in xorg.conf settings, but not from
the client-side (e/opengl app). this allows for better smoothness at the expense
of latency.

the mouse pointer is moved by the xserver directly WHEN the mouse
input comes in. it takes time to send mouse events to an app AND have it
process them AND have it render. as such with tear-free rendering off it is not
vsyncing and e is responding to events as fast as it can (respond and do draw).
this means that the latency you see between mouse and window is purely that of
e's responding and drawing (note drawing time is highly dependent on things
like cpu speed or with opengl gpu performance etc.). once tear-free (vsync) is
in place, a frame is rendered but is in a queue for display and that can add 16
or 33ms until it gets to the screen. 16ms for double-buffered and 33ms for
triple buffered. that's life.

the only feasible cure is to make the mouse cursor have the same lag as the
rendering (render together), BUT there is no way to do that in x11 as the mouse
is directly controlled by a different process than the one drawing/compositing.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to