Digging in the kernel, there's some suspicious logic in the i915 driver
(used by Mesa i965 etc):

/* Throttle our rendering by waiting until the ring has completed our requests
 * emitted over 20 msec ago.
 *
 * Note that if we were to use the current jiffies each time around the loop,
 * we wouldn't escape the function with any frames outstanding if the time to
 * render a frame was over 20ms.
 *
 * This should get us reasonable parallelism between CPU and GPU but also
 * relatively low latency when blocking on a particular request to finish.
 */
static int
i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)


I think that's the problem. Maybe Mir is behaving so well that a single frame 
doesn't fill the ring (when Mir is only double buffering). So we have to rely 
on the 20ms delay in the i915 kernel module that causes us to skip a frame.

I'm still hoping to be wrong, and that this isn't a *feature* of the
i915 kernel module.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1377872

Title:
  Double-buffered compositing performance is very poor (30 FPS) on intel

To manage notifications about this bug go to:
https://bugs.launchpad.net/mesa/+bug/1377872/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to