Announcement

Collapse
No announcement yet.

Nouveau Will Now Sync Buffer-Swaps To VBlanks By Default

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

  • #16
    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.
    Actually, that is not true!

    I am just wrapping up a Linux DRM backend for OpenTK and this actually gives 100% control over the render/scanout framebuffer, including page flipping, vsyncing, single-/double-/multi-buffering and anything else you might ever need. This is way more powerful than anything available on any other operating system, including DXGI on Windows. The Linux kernel APIs never fail to impress me with their strength and design.

    Of course, GLX/X11 expose exactly nothing of this functionality, so desktop applications are stuck with vsync on/off and little else, but the power is there if you ever need to go deeper.

    Comment


    • #17
      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.
      Actually, that is not true!

      I am just wrapping up a Linux DRM backend for OpenTK and this actually gives 100% control over the render/scanout framebuffer, including page flipping, vsyncing, single-/double-/multi-buffering and anything else you might ever need. This is way more powerful than anything available on any other operating system, including DXGI on Windows. The Linux kernel APIs never fail to impress me with their strength and design.

      Of course, GLX/X11 expose exactly nothing of this functionality, so desktop applications are stuck with vsync on/off and little else, but the power is there if you ever need to go deeper.

      Comment

      Working...
      X