]> pilppa.com Git - linux-2.6-omap-h63xx.git/commit
i915: Remove racy delayed vblank swap ioctl.
authorEric Anholt <eric@anholt.net>
Tue, 4 Nov 2008 20:01:24 +0000 (12:01 -0800)
committerDave Airlie <airlied@linux.ie>
Tue, 11 Nov 2008 07:44:22 +0000 (17:44 +1000)
commitbd95e0a4a6bb9485fe35dda62719663f6ceabae1
tree72e0665fb8585f3f2b68a7c1fbc10baf5bbbb5c3
parentd3e74d0237b102d34979015fbf6df02ca4413074
i915: Remove racy delayed vblank swap ioctl.

When userland detected that this ioctl was supported (by version number check),
it used it in a racy way -- dispatch delayed swap, wait for vblank, continue
rendering. As there was no mechanism for it to wait for the swap to finish,
sometimes it would render before the swap and garbage would be displayed on
the screen.

By removing the ioctl and returning -EINVAL, userland returns to its previous,
correct rendering path of waiting for a vblank then dispatching a swap.  The
only path that could have used this ioctl correctly was page flipping, which
relied on only one client running and emitting wait-for-vblank-before-rendering
in the command stream.  That path also falls back correctly, at the performance
cost of not being able to queue up rendering before the flip occurs.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c