Results 1 to 8 of 8

Thread: Another Shot At The KMS Page-Flipping Ioctl

  1. #1
    Join Date
    Jan 2007
    Posts
    13,403

    Default Another Shot At The KMS Page-Flipping Ioctl

    Phoronix: Another Shot At The KMS Page-Flipping Ioctl

    Being worked on for the past several months by Kristian Høgsberg and other developers has been the KMS page-flipping ioctl, which makes it possible for kernel mode-setting drivers to benefit from tear-free updating of the screen with low-latency page-flipping. This kernel DRM ioctl is also a requirement for the Wayland Display Server...

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

  2. #2
    Join Date
    Jan 2009
    Location
    Vienna, Austria; Germany; hello world :)
    Posts
    607

    Default

    way to go opensource graphics (drivers) !

    great work Kristian

  3. #3
    Join Date
    Jul 2008
    Location
    Greece
    Posts
    3,762

    Default

    I suppose triple buffering is up to userspace, right? Without it, vsync will totally kill performance.

  4. #4
    Join Date
    Nov 2008
    Posts
    755

    Default

    Quote Originally Posted by RealNC View Post
    I suppose triple buffering is up to userspace, right?
    You have to specify the next buffer to the ioctl, so you can use the ioctl for double buffering, triple buffering or anything you like. The number of buffers is determined by user space.

  5. #5

    Default

    That's only for intel graphic chip i915, or the patch add the mechanism to the drm and implement it only for the i915 driver ?

  6. #6
    Join Date
    Nov 2007
    Location
    Die trolls, die!
    Posts
    525

    Default

    Does the radeon/nouveau driver take also profit from it?

  7. #7
    Join Date
    Jul 2008
    Location
    Greece
    Posts
    3,762

    Default

    Quote Originally Posted by rohcQaH View Post
    You have to specify the next buffer to the ioctl, so you can use the ioctl for double buffering, triple buffering or anything you like. The number of buffers is determined by user space.
    I asked because under Windows, I can force triple buffering from Catalyst Control Center for OpenGL apps, and am not sure if this is a driver feature (kernel space) or just something the control center (user space) does completely outside of kernel space.

    In any event, isn't that ioctl supposed to be used by the drivers? Are games and applications expected to support triple buffering themselves? Under Windows, some do. The majority doesn't however, which is why you can force it in the drivers.

  8. #8
    Join Date
    Nov 2008
    Posts
    755

    Default

    yes, the ioctl is supposed to be used by drivers or maybe even by frameworks like SDL, not directly by the games et al.

    remember that a good portion of the driver runs in userspace. The kernel itself just manages resources and rendering time between processes (DRI + KSM), the actual drawing commands are issued from userspace (i.e. mesa).

    can the driver force double/triple buffering for an application? Depends on the application. openGL itself doesn't provide a way to manage multiple buffers or vwaits at all, you need to use additional libraries (glut, SDL, Qt, ...). I don't know which of those rely on the driver for buffer management and which use their own.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •