virgl: add driver for virtio-gpu 3D (v2)
authorDave Airlie <airlied@redhat.com>
Thu, 22 Jan 2015 05:11:47 +0000 (15:11 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 23 Oct 2015 04:40:07 +0000 (14:40 +1000)
commita8987b88ff1db4ac00720a9b56c4bc3aeb666537
tree1b8e9cf19e11731d3a3df23e80fcadd14c7685a1
parent531f5d1270782927911c5c720201e86c6f40182d
virgl: add driver for virtio-gpu 3D (v2)

virgl is the 3D acceleration backend for the
virtio-gpu shipping with qemu.

The 3D acceleration is designed around gallium
and TGSI as the virtualisation layer. The backend
renderer translates the virgl interface into
OpenGL currently.

This is the initial import of the driver to mesa.

The kernel driver portions are lined up for drm-next.

Currently this driver supports up to GL3.3 and some
misc extensions if the host driver exposes it. It is
planned to iterate the virgl API to new GL levels
as mesa host drivers gain features.

v2: fix resource tracking across flushes to avoid
->bind hack in mapping.
consolidate mapping and waiting code for transfers.
use u_range for dirt tracking.
handle larger shaders in protocol.
include virtgpu_drm.h in mesa for now.
add translation layer for gallium tgsi to virgl tgsi.

Signed-off-by: Dave Airlie <airlied@redhat.com>
29 files changed:
configure.ac
src/gallium/Makefile.am
src/gallium/auxiliary/target-helpers/inline_drm_helper.h
src/gallium/drivers/virgl/Automake.inc [new file with mode: 0644]
src/gallium/drivers/virgl/Makefile.am [new file with mode: 0644]
src/gallium/drivers/virgl/virgl.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_buffer.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_context.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_context.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_encode.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_encode.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_protocol.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_public.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_query.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_resource.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_resource.h [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_screen.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_streamout.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_texture.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_tgsi.c [new file with mode: 0644]
src/gallium/drivers/virgl/virgl_winsys.h [new file with mode: 0644]
src/gallium/targets/dri/Makefile.am
src/gallium/winsys/virgl/drm/Makefile.am [new file with mode: 0644]
src/gallium/winsys/virgl/drm/Makefile.sources [new file with mode: 0644]
src/gallium/winsys/virgl/drm/virgl_drm_public.h [new file with mode: 0644]
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c [new file with mode: 0644]
src/gallium/winsys/virgl/drm/virgl_drm_winsys.h [new file with mode: 0644]
src/gallium/winsys/virgl/drm/virgl_hw.h [new file with mode: 0644]
src/gallium/winsys/virgl/drm/virtgpu_drm.h [new file with mode: 0644]