Announcement

Collapse
No announcement yet.

AMDGPU & Radeon DDX Updated - Better 2D Performance, Tear Free, DRI3 Default

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

  • #31
    Originally posted by MrCooper View Post

    This option only applies to DRI2. DRI3 always allows triple buffering, because the buffers are managed on the client side. Triple buffering with DRI2 is very tricky, so we decided not to put in the effort for that in favour of DRI3.
    Thanks for the explanation, but, I don't quite understand:

    You said DRI3 always allows triple buffering. What do you mean by "allows"? This sounds like as if it would just allow triple buffering but not necessarily enable it?

    I thought that setting options in the xf86-video-* DDX drivers actually enables/disables features for the X environment (i.e. desktop workspace)?

    So, I thought setting TripleBuffering=True via a xorg.conf file with xf86-video-intel for example would enable triple buffering for my desktop instead of just allowing it.

    So, where would I enable triple buffering for my desktop when using DRI3 with xf86-video-ati / xf86-video-amdgpu for example then?

    Originally posted by DebianXFCE Jr View Post

    There is also another way. Switch to Windows where you have better vendor drivers for your hardware. Or use earlier versions of distro with also a better driver support from the hardware vendor. I can't find any other solution to this but problem with screen tearing on newer distros or with Xfce is on the driver or compositor side. With mint 17 or windows and don't have any problems.
    Tearing is entirely absent from Windows since Windows Vista and since the introduction of DWM (https://en.wikipedia.org/wiki/Desktop_Window_Manager).

    As long as you are using DWM (i.e. Aero enabled), which essentially is Windows' compositor, there is no tearing whatsoever in Windows, regardless of what GPU you are using.

    To enable DWM you need to make sure not to use the Basic Windows theme. You need to use the Aero Windows theme (on Windows Vista and Windows 7). On Windows 8/8.1/10, DWM is always enabled I think.

    Then there will be no tearing whatsoever. The Windows desktop is entirely tear-free since ten years already:



    It's very unfortunate that on Linux there can even be tearing with compositing window managers, whereas on Windows there definitely is never any tearing at all when using DWM.

    Comment


    • #32
      Originally posted by bug77 View Post

      Again, technically you're right, but this is where sync modes come in. If the monitor and the video card can agree on timings, the monitor can be served tear-free images.
      Yeah, sorry about spamming you on this. I clearly didn't read the rest of the thread prior to posting
      The scenario you mention is, I believe, one solution I brought up (but it needs to most work to happen as neither nvidia or amd have really nailed the problem).

      Comment


      • #33
        Originally posted by DebianXFCE Jr View Post
        There is also another way. Switch to Windows where you have better vendor drivers for your hardware. Or use earlier versions of distro with also a better driver support from the hardware vendor. I can't find any other solution to this but problem with screen tearing on newer distros or with Xfce is on the driver or compositor side. With mint 17 or windows and don't have any problems.
        as usual you replied without understanding anything. we were discussing possible methods of implementing tearing prevention, not available drivers. driver has some implementation and it is either gpu waits for next monitor frame, or monitor waits for next gpu frame. my opponent listed only one method, i corrected him. you posted irrelevant info.

        Comment


        • #34
          Originally posted by atomsymbol
          In my opinion, the correct wording is that TearFree forces page flipping on all apps.
          That's not really accurate.

          TearFree simply copies the screen contents to dedicated scanout buffers periodically and uses the kernel DRM page flipping ioctl to flip between dedicated scanout buffers without tearing.

          It doesn't (can't) make apps use page flipping directly, rather the opposite: The current implementation prevents the DRM page flipping ioctl from being used for DRI page flipping, so 3D/video apps always have to copy the backbuffer contents to the front buffer.

          xorg-server-1.19 + xf86-video-amdgpu-1.2.0 runs nicely at monitor refresh rate on my machine:
          That's because vertical blank interrupts are used for timing, not directly related to page flipping.

          Comment


          • #35
            Originally posted by pq1930562 View Post
            You said DRI3 always allows triple buffering. What do you mean by "allows"? This sounds like as if it would just allow triple buffering but not necessarily enable it?
            Exactly. With DRI3, the client side is in complete control of the number of buffers, the X server/driver has no control over that.

            So, I thought setting TripleBuffering=True via a xorg.conf file with xf86-video-intel for example would enable triple buffering for my desktop instead of just allowing it.
            That's true if and only if the compositing manager uses DRI2.

            So, where would I enable triple buffering for my desktop when using DRI3 with xf86-video-ati / xf86-video-amdgpu for example then?
            Mesa always uses triple buffering with DRI3, so there's nothing else you have to do for that.


            Tearing is entirely absent from Windows since Windows Vista and since the introduction of DWM (https://en.wikipedia.org/wiki/Desktop_Window_Manager).
            With a decent compositing manager using OpenGL for rendering, there's no desktop tearing on Linux either, even without TearFree.

            Comment


            • #36
              Originally posted by MrCooper View Post
              With a decent compositing manager using OpenGL for rendering, there's no desktop tearing on Linux either, even without TearFree.
              And which compositing manager would that be?

              Comment


              • #37
                Originally posted by pq1930562 View Post

                And which compositing manager would that be?
                There are many choices. gnome-shell (with DRI3 enabled), kwin or compton (with the right configuration), ...

                Comment


                • #38
                  Originally posted by droste View Post

                  You can have tearing with 60fps on a 60Hz monitor!

                  Tearing happens when the monitor and the gpu are not synced so the gpu renders a new image while the old image is not completely displayed and that's independent from Hz or framerate.
                  So the only solution is to synchronize the gpu with the display and that will always cost performance. With single monitor setups vsync is enough to remove tearing, this option is for multi monitor setups where you simply can't sync the gpu with each monitor because they all read the image from the gpu at a different time.
                  Thanks for explaining that. I had wondered wth was going on, with only one monitor plugged in it looks great, but with the second monitor and the tv plugged in it definitely does tear. On windows too, even with Aero Glass, which people here swear up and down is impossible to tear, but it most definitely does.

                  Comment


                  • #39
                    Originally posted by duby229 View Post
                    Thanks for explaining that. I had wondered wth was going on, with only one monitor plugged in it looks great, but with the second monitor and the tv plugged in it definitely does tear. On windows too, even with Aero Glass, which people here swear up and down is impossible to tear, but it most definitely does.
                    You were claiming there was tearing on a normal desktop on a single monitor and that is impossible on WIndows.

                    Comment


                    • #40
                      Originally posted by starshipeleven View Post
                      You were claiming there was tearing on a normal desktop on a single monitor and that is impossible on WIndows.
                      I rarely use a single monitor, I'm certain I must have mentioned that.

                      Comment

                      Working...
                      X