Announcement

Collapse
No announcement yet.

DRI2 Sync + Swap Extensions Near Reality

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    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

    Comment


    • #3
      Cool, could this fix the performance issues with textured video playback with the kms ati drivers?

      Comment


      • #4
        Is tearing and flicker the same?

        Comment


        • #5
          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.

          Comment


          • #6
            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!

            Comment


            • #7
              Thanks Jesse!

              Comment


              • #8
                This kind of thing is what I've been waiting for in Linux Desktop graphics for a decade. Go Go Go!!

                Comment


                • #9
                  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; 31 October 2009, 12:16 PM.

                  Comment


                  • #10
                    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).

                    Comment

                    Working...
                    X