xf86-video-ati: Changes to 'kms-pflip'

Alex Deucher agd5f at kemper.freedesktop.org
Wed Dec 1 17:32:25 PST 2010


New branch 'kms-pflip' available with the following commits:
commit f48af8a6cfa1ac665f07b8f9712e94b77bc4f5e9
Author: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>
Date:   Tue Nov 23 04:41:53 2010 +0100

    ddx/ati: Fix reporting of pageflip completion events on multi-head.
    
    When a drawable is page-flipped on multiple crtc's (fullscreen
    drawable on mirror-mode or multi-head x-screen), only one pageflip
    event is finally delivered, after the last participating crtc signals
    flip completion, this to avoid visual corruption.
    
    Old code returned vblank count and timestamps of flip completion
    of this last crtc, instead of the values of the "master crtc", the
    one that was used for initially scheduling/triggering the pagflip
    via vblank events. (master = radeon_dri2_drawable_crtc(drawable))
    
    This patch makes sure that the pageflip completion values of the
    "master" crtc are returned, otherwise client applications will
    get confused by the random (msc, ust) values returned by whichever
    crtc was the last to complete its flip. Without this, the returned
    values change randomly and jump forward and backward in time and
    count.
    
    The patch also implements a consistency check on returned vblank
    count values of pageflip completion. Impossible values are detected,
    a x-warning is logged and returned (msc,ust) values are marked invalid,
    so clients could perform error handling. Such a warning would indicate
    bugs in the pageflip completion routine of future kms drivers or the
    ddx to aid driver debugging.
    
    Signed-off-by: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>

commit 122536ee0aeb1eef1a9d80d5e464dcb423dc2837
Author: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>
Date:   Mon Nov 22 04:11:07 2010 +0100

    ddx/ati: Add option "SwapbuffersWait" to control vsync of DRI2 swaps.
    
    A new optional kms driver option "SwapbuffersWait" is defined
    for xorg.conf, which defaults to "on". If "on", DRI2 bufferswaps
    will be synchronized to vsync, otherwise not.
    
    This currently only affects copy-swaps, not pageflipped swaps.
    It also requires a swap_interval setting of zero by the OpenGL
    client.
    
    Ideally, we'd provide a way for dri2 to pass the current swap
    interval to the ddx so we could change this dynamically.
    
    Signed-off-by: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>

commit 0de680730294bd623f6b3e189faa7b88a09d3a2a
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Nov 17 17:39:39 2010 -0500

    radeon/kms: add pageflip support
    
    requires radeon drm 2.8.0 or higher
    
    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
    Signed-off-by: Jerome Glisse <jglisse at redhat.com>

commit fccdca8db34010f566bd068c74cdef0f4a8cb7f5
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Nov 17 17:37:25 2010 -0500

    radeon/kms: allow tiled front buffer on 6xx/7xx
    
    Use UTS/DFS to tile/untile as appropriate for sw access.
    Also enables pageflipping with tiling enabled.



More information about the xorg-commit mailing list