Phoronix Forums  

Go Back   Phoronix Forums > Linux Graphics / X.Org Drivers > X.Org & Mesa

X.Org & Mesa Discussion of X.Org and Mesa / Gallium3D. This includes the discussion of the X Server, RandR, OpenGL, Kernel-based Mode-Setting, and other X components not covered by other forums.

Reply
 
Thread Tools Display Modes
  #1  
Old 10-30-2009, 11:20 PM
phoronix phoronix is offline
Phoronix News Bot
 
Join Date: Jan 2007
Posts: 3,102
Default DRI2 Sync + Swap Extensions Near Reality

Phoronix: DRI2 Sync + Swap Extensions Near Reality

When running a modern Linux graphics driver stack in a composited environment there is a lot less tearing -- particularly with regard to video playback, but OpenGL applications too -- now than there was in the past, but there is still room for improvement. One of the ways to improve this is by properly controlling the display of buffers with how often the swaps occur and to sync them with the monitor's refresh rate or the rate at which the compositor is running...

http://www.phoronix.com/vr.php?view=NzY1Ng
Reply With Quote
  #2  
Old 10-31-2009, 12:44 AM
RealNC RealNC is offline
Senior Member
 
Join Date: Jul 2008
Location: Greece
Posts: 1,169
Default

Quote:
Originally Posted by phoronix View Post
When running a modern Linux graphics driver stack in a composited environment there is a lot less tearing [...] now than there was in the past
Orly? Xgl, which is old was running flawlessly without tearing
Reply With Quote
  #3  
Old 10-31-2009, 12:56 AM
ripps818 ripps818 is offline
Junior Member
 
Join Date: Jun 2008
Posts: 2
Default

Cool, could this fix the performance issues with textured video playback with the kms ati drivers?
Reply With Quote
  #4  
Old 10-31-2009, 01:58 AM
Louise Louise is offline
Senior Member
 
Join Date: May 2008
Posts: 468
Default

Is tearing and flicker the same?
Reply With Quote
  #5  
Old 10-31-2009, 06:23 AM
BlackStar BlackStar is offline
Senior Member
 
Join Date: Oct 2007
Location: Greece
Posts: 448
Default

Quote:
Originally Posted by Louise View Post
Is tearing and flicker the same?
No.

Simply put, tearing occurs when the back-to-front buffer swap happens out of sync with the monitor's refresh rate. This means that the scanout starts before the front buffer is completely refreshed, which results in the monitor displaying both old and new data at the same time. The "tear" is a (usually) horizontal line at the point where the split between old and new data lies. VSync takes care of this artifact - unfortunately, vsync is not easy to implement under AIGLX using the current infrastructure, hence this work.

Flicker is the artifact that occurs when using direct rendering (DRI1) on a composited environment. The compositor normally redirects all rendering to an off-screen area to perform composition, before spitting the result back to screen. However, DRI1 is oblivious to this procedure and renders directly on screen, overwriting the compositor's output (flicker!) DRI2 solves this issue.
Reply With Quote
  #6  
Old 10-31-2009, 06:39 AM
panda84 panda84 is offline
Phoronix Member
 
Join Date: Jun 2008
Posts: 99
Default

Quote:
Originally Posted by RealNC View Post
Orly? Xgl, which is old was running flawlessly without tearing
Yes, because, AFAIK (I'm no expert at all), Xgl was a whole reimplementation of X protocol over OpenGL. A drawback was that you weren't able to run any OpenGL thing inside Xgl itself, which is not funny in any way.

BTW, is antialiasing possible with ATI open drivers? I'd like to see smooth edges on my cube!
Reply With Quote
  #7  
Old 10-31-2009, 09:03 AM
bugmenot bugmenot is offline
Senior Member
 
Join Date: Nov 2007
Posts: 363
Default

Thanks Jesse!
Reply With Quote
  #8  
Old 10-31-2009, 11:20 AM
oneman oneman is offline
Junior Member
 
Join Date: Sep 2006
Posts: 32
Default

This kind of thing is what I've been waiting for in Linux Desktop graphics for a decade. Go Go Go!!
Reply With Quote
  #9  
Old 10-31-2009, 12:14 PM
Louise Louise is offline
Senior Member
 
Join Date: May 2008
Posts: 468
Default

Quote:
Originally Posted by BlackStar View Post
No.

Simply put, tearing occurs when the back-to-front buffer swap happens out of sync with the monitor's refresh rate. This means that the scanout starts before the front buffer is completely refreshed, which results in the monitor displaying both old and new data at the same time. The "tear" is a (usually) horizontal line at the point where the split between old and new data lies. VSync takes care of this artifact - unfortunately, vsync is not easy to implement under AIGLX using the current infrastructure, hence this work.

Flicker is the artifact that occurs when using direct rendering (DRI1) on a composited environment. The compositor normally redirects all rendering to an off-screen area to perform composition, before spitting the result back to screen. However, DRI1 is oblivious to this procedure and renders directly on screen, overwriting the compositor's output (flicker!) DRI2 solves this issue.
In that case, I have a lot of tearing

Where in the OSS ATi graphics driver stack does VSync belong? DRI2?

Last edited by Louise; 10-31-2009 at 12:16 PM.
Reply With Quote
  #10  
Old 10-31-2009, 03:18 PM
DanL DanL is offline
Senior Member
 
Join Date: Oct 2007
Posts: 247
Default

Quote:
Where in the OSS ATi graphics driver stack does VSync belong? DRI2?
I think vsync might need support for interrupts, which the open-source ATI drivers lack (because of lack of documentation).
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 12:51 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Copyright ©2004 - 2009 by Phoronix Media.