## VGEM VGEM — VGEM support library |

## Functions

void | vgem_create ()
void * | vgem_mmap ()
bool | vgem_has_fences ()
bool | vgem_fence_has_flag ()
uint32_t | vgem_fence_attach ()
void | vgem_fence_signal ()

## Types and Values

struct | vgem_bo
#define | VGEM_FENCE_WRITE
#define | WIP_VGEM_FENCE_NOTIMEOUT

## Includes

    #include <igt.h>

## Description

This library provides various auxiliary helper functions for writing VGEM tests. VGEM is especially useful as a virtual dma-buf import and exporter and for testing cross driver synchronization (either using epxlicit dma-fences or using implicit fences attached to dma-bufs).

## Functions

### vgem_create ()

    void
    vgem_create (int fd,
                 struct vgem_bo *bo);

### vgem_mmap ()

    void *
    vgem_mmap (int fd,
               struct vgem_bo *bo,
               unsigned  prot);

### vgem_has_fences ()

    bool
    vgem_has_fences (int fd);

### vgem_fence_has_flag ()

    bool
    vgem_fence_has_flag (int fd,
                         unsigned  flags);

### vgem_fence_attach ()

    uint32_t
    vgem_fence_attach (int fd,
                       struct vgem_bo *bo,
                       unsigned  flags);

### vgem_fence_signal ()

    void
    vgem_fence_signal (int fd,
                       uint32_t fence);

## Types and Values

### struct vgem_bo

    struct vgem_bo {
    	uint32_t handle;
    	uint32_t width, height;
    	uint32_t bpp, pitch;
    	uint64_t size;
    };

### VGEM_FENCE_WRITE

    #define VGEM_FENCE_WRITE 0x1

### WIP_VGEM_FENCE_NOTIMEOUT

    #define WIP_VGEM_FENCE_NOTIMEOUT 0x2