-
- Downloads
WIP: drm/virtio: Support fence-passing feature
Support extended version of VIRTIO_GPU_CMD_SUBMIT_3D command that allows passing in-fence IDs to host for waiting, removing need to do expensive host-guest roundtrips in a case of waiting for fences on a guest side. Guest userspace must enable new VIRTGPU_CONTEXT_PARAM_FENCE_PASSING flag and host must support new VIRTIO_GPU_F_FENCE_PASSING feature in order to activate the fence passing for a given virtio-gpu context. Array of in-fence IDs is then prepended to the VIRTIO_GPU_CMD_SUBMIT_3D's data, the previously unused padding field of the command is reused for the number of in-fences. A new VIRTGPU_EXECBUF_SHARED_FENCE flag is added to the job submission UAPI and must be set by userspace if it wants to make fence shareable with/on host. Certain jobs won't want to share fence, in particular Venus will benefit from this flag. Link: virgl/virglrenderer!1138 Link: https://gitlab.freedesktop.org/digetx/qemu/-/commits/native-context-iris Link: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4679609 Signed-off-by:Dmitry Osipenko <dmitry.osipenko@collabora.com>
Showing
- drivers/gpu/drm/virtio/virtgpu_drv.c 1 addition, 0 deletionsdrivers/gpu/drm/virtio/virtgpu_drv.c
- drivers/gpu/drm/virtio/virtgpu_drv.h 10 additions, 1 deletiondrivers/gpu/drm/virtio/virtgpu_drv.h
- drivers/gpu/drm/virtio/virtgpu_fence.c 12 additions, 3 deletionsdrivers/gpu/drm/virtio/virtgpu_fence.c
- drivers/gpu/drm/virtio/virtgpu_ioctl.c 11 additions, 2 deletionsdrivers/gpu/drm/virtio/virtgpu_ioctl.c
- drivers/gpu/drm/virtio/virtgpu_kms.c 6 additions, 2 deletionsdrivers/gpu/drm/virtio/virtgpu_kms.c
- drivers/gpu/drm/virtio/virtgpu_submit.c 95 additions, 4 deletionsdrivers/gpu/drm/virtio/virtgpu_submit.c
- drivers/gpu/drm/virtio/virtgpu_submit.c.orig 633 additions, 0 deletionsdrivers/gpu/drm/virtio/virtgpu_submit.c.orig
- drivers/gpu/drm/virtio/virtgpu_vq.c 5 additions, 2 deletionsdrivers/gpu/drm/virtio/virtgpu_vq.c
- include/uapi/drm/virtgpu_drm.h 3 additions, 0 deletionsinclude/uapi/drm/virtgpu_drm.h
- include/uapi/linux/virtio_gpu.h 10 additions, 1 deletioninclude/uapi/linux/virtio_gpu.h
- scripts/selinux/genheaders/genheaders 0 additions, 0 deletionsscripts/selinux/genheaders/genheaders
Loading
Please register or sign in to comment