diff options
Diffstat (limited to 'src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c')
-rw-r--r-- | src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c index 96ee4ff82b..7c799b5827 100644 --- a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c +++ b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c @@ -240,3 +240,21 @@ vmw_ioctl_buffer_unmap(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf) { --buf->map_count; } + +int +vmw_ioctl_update_layout(struct vmw_customizer *vmw, uint32_t num, struct vmw_rect *rects) +{ + struct drm_vmw_update_layout_arg ul_arg; + int ret; + + assert(sizeof(struct vmw_rect) == sizeof(struct drm_vmw_rect)); + + memset(&ul_arg, 0, sizeof(ul_arg)); + ul_arg.num_outputs = num; + ul_arg.rects = (uint64_t)(uintptr_t)rects; + + ret = drmCommandWriteRead(vmw->fd, DRM_VMW_UPDATE_LAYOUT, + &ul_arg, sizeof(ul_arg)); + + return ret; +} |