• Chris Wilson's avatar
    drm/vgem: Attach sw fences to exported vGEM dma-buf (ioctl) · 40777984
    Chris Wilson authored
    vGEM buffers are useful for passing data between software clients and
    hardware renders. By allowing the user to create and attach fences to
    the exported vGEM buffers (on the dma-buf), the user can implement a
    deferred renderer and queue hardware operations like flipping and then
    signal the buffer readiness (i.e. this allows the user to schedule
    operations out-of-order, but have them complete in-order).
    
    This also makes it much easier to write tightly controlled testcases for
    dma-buf fencing and signaling between hardware drivers.
    
    v2: Don't pretend the fences exist in an ordered timeline, but allocate
    a separate fence-context for each fence so that the fences are
    unordered.
    v3: Make the debug output more interesting, and show the signaled status.
    v4: Automatically signal the fence to prevent userspace from
    indefinitely hanging drivers.
    
    Testcase: igt/vgem_basic/dmabuf-fence
    Testcase: igt/vgem_slow/nohang
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: Zach Reizner <zachr@google.com>
    Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Acked-by: default avatarZach Reizner <zachr@google.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/1468571471-12610-1-git-send-email-chris@chris-wilson.co.uk
    40777984
vgem_drv.c 8.52 KB