Announcement

Collapse
No announcement yet.

Nouveau Will Now Sync Buffer-Swaps To VBlanks By Default

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

  • Nouveau Will Now Sync Buffer-Swaps To VBlanks By Default

    Phoronix: Nouveau Will Now Sync Buffer-Swaps To VBlanks By Default

    In trying to reduce tearing and match the behavior of the Intel and Radeon drivers, the Nouveau X.Org driver will now sync buffer-swaps to vblanks by default...

    http://www.phoronix.com/vr.php?view=MTcyNjQ

  • #2
    Does this option also affect games?

    If yes then it is like piss off all those who are interested in high framerates and good drivers... like gamers.
    I can't understand this.

    Comment


    • #3
      Originally posted by rudl View Post
      Does this option also affect games?

      If yes then it is like piss off all those who are interested in high framerates and good drivers... like gamers.
      I can't understand this.
      Like the article says, you can turn it off in xorg.conf. Just as easy as you could turn it on before, only the default is switched. It actually doesn't really warrant an article at all.

      Comment


      • #4
        Originally posted by rudl View Post
        Does this option also affect games?

        If yes then it is like piss off all those who are interested in high framerates and good drivers... like gamers.
        I can't understand this.
        Because even on high end setups you Vblanks will still screw you? Assuming you like image fidelity. Yes, frame rates that are lower than the monitors refresh rate can suck. Frame rates HIGHER than the monitors refresh rates also can suck if a frame gets rendered midway through a refresh.

        If you want the REAL fix then adopt (G/Free)Sync.

        Comment


        • #5
          it is not only about framerates but also inputlag.
          Even if I get 60+ fps i deactivate vsync for that reason.
          Especially for competetive-ish gaming, which is dominant on linux.... dota2/cs-go/ql/quake/xonotic/ it is important to turn vsync off.

          It should be up to the application .... game or windowmanager etc to set this option.
          You want to have control over this and not just force it systemwide.


          Even if it is posible to deactivate, you usually don't wont to mess with xorg.conf.
          Its a nogo for new linux users, gamers that want to transtition form win to linux.
          They test linux -> game feels sluggish -> back to win.

          Comment


          • #6
            Originally posted by Ericg View Post
            Because even on high end setups you Vblanks will still screw you? Assuming you like image fidelity. Yes, frame rates that are lower than the monitors refresh rate can suck. Frame rates HIGHER than the monitors refresh rates also can suck if a frame gets rendered midway through a refresh.

            If you want the REAL fix then adopt (G/Free)Sync.
            Doesn't really mater much going forward since with the DisplayPort 1.2a spec monitors will requerst frames from the card only when they are ready for them, the image fidelity is even higher then sync to vblank and has a lower latency to boot.

            Comment


            • #7
              Itís a good thing to have vsync on by default. The few competitive gamers who donít like it can disable it. Other people will enjoy a tear-free desktop and lowered power usage by default. Although it would be nice to have an easier way (a settings GUI) to change the setting.

              Comment


              • #8
                I really doubt competitive gamers use nouveau and I doubt they get frames high enough to need vsync with nouveau. I can barely run the desktop last time I tried them.

                Comment


                • #9
                  I'm really curious as to why the different drivers have different switches for turning off/on vsync.

                  Comment


                  • #10
                    At least, this fixes stuff running at hundreds, if not thousands of FPS. What a waste of power, noise and temperature.

                    Limiting FPS to the refresh rate + a few frames (eg. 61 FPS on a 60 Hz screen) would also work (less input lag, no stuttering when FPS are lower, but some tearing), but I don't know any driver that can limit FPS universally.

                    Comment


                    • #11
                      Originally posted by ua=42 View Post
                      I'm really curious as to why the different drivers have different switches for turning off/on vsync.
                      Ideally we only use these options as a last resort to work around driver bugs, and we do try to use an existing name from another driver if it already exists (at least I do). Controlling sync-to-vblank is actually up to the application (DRI2SetSwapInterval), except that DRI2 doesn't expose fine enough controls in its protocol (nor does Present) and DRI2 has a few well known implementation bugs in the Xserver.

                      Comment


                      • #12
                        Originally posted by ickle View Post
                        Ideally we only use these options as a last resort to work around driver bugs, and we do try to use an existing name from another driver if it already exists (at least I do). Controlling sync-to-vblank is actually up to the application (DRI2SetSwapInterval), except that DRI2 doesn't expose fine enough controls in its protocol (nor does Present) and DRI2 has a few well known implementation bugs in the Xserver.
                        Slightly off-topic, I would like to ask, who should be responsible for V-Sync, the application or the driver? If, as you say, it's the application, how should each game implement this? Why not do that from eglSwapBuffers and its GLX counterpart? I'm using LLVMpipe and, if swaps aren't held by myself, my application outputs as much frames as possible, which has sometimes hung my computer. FWIW, I'm using EGL.

                        Comment


                        • #13
                          Originally posted by kalrish View Post
                          Slightly off-topic, I would like to ask, who should be responsible for V-Sync, the application or the driver? If, as you say, it's the application, how should each game implement this? Why not do that from eglSwapBuffers and its GLX counterpart? I'm using LLVMpipe and, if swaps aren't held by myself, my application outputs as much frames as possible, which has sometimes hung my computer. FWIW, I'm using EGL.
                          How and when the swap is performed is outside of the specification for ordinary SwapBuffers. OML_sync_control allows the application to specify when the swap will occur, but it still doesn't mandate the method (and so whether to tear or not) and is based on a single fixed frequency output device. GLX_MESA_swap_interval allows the application to control vsync, and it is also exposed through driconf and the vblank_mode env var. Unfortunately, there is not a single solution that allows the application to have full control of the time and method of how a frame is presented to the user, and how rendering should proceed whilst the previous frame is pending display.

                          Comment


                          • #14
                            Originally posted by ickle View Post
                            How and when the swap is performed is outside of the specification for ordinary SwapBuffers. OML_sync_control allows the application to specify when the swap will occur, but it still doesn't mandate the method (and so whether to tear or not) and is based on a single fixed frequency output device. GLX_MESA_swap_interval allows the application to control vsync, and it is also exposed through driconf and the vblank_mode env var. Unfortunately, there is not a single solution that allows the application to have full control of the time and method of how a frame is presented to the user, and how rendering should proceed whilst the previous frame is pending display.
                            Thanks for your explanation. I will try eglSwapInterval when I can, and also read further about this topic and framebuffer objects. It's indeed unfortunate that there's no consensus.

                            Comment


                            • #15
                              Originally posted by philip550c View Post
                              I really doubt competitive gamers use nouveau and I doubt they get frames high enough to need vsync with nouveau. I can barely run the desktop last time I tried them.
                              Then I'm sure you tried them before they got reclocking support. They should be much faster now. The desktop should definitely reach 60 FPS.

                              Comment

                              Working...
                              X