From: Gurchetan Singh Date: Tue, 21 Sep 2021 23:20:18 +0000 (-0700) Subject: drm/virtio: implement context init: track {ring_idx, emit_fence_info} in virtio_gpu_fence X-Git-Tag: v5.16-rc1~140^2~10^2~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7547675b84bf452542463db29adb113cadb7dd6d;p=thirdparty%2Fkernel%2Flinux.git drm/virtio: implement context init: track {ring_idx, emit_fence_info} in virtio_gpu_fence Each fence should be associated with a [fence ID, fence_context, seqno]. The seqno number is just the fence id. To get the fence context, we add the ring_idx to the 3D context's base_fence_ctx. The ring_idx is between 0 and 31, inclusive. Each 3D context will have it's own base_fence_ctx. The ring_idx will be emitted to host userspace, when emit_fence_info is true. Signed-off-by: Gurchetan Singh Acked-by: Lingfeng Yang Link: http://patchwork.freedesktop.org/patch/msgid/20210921232024.817-7-gurchetansingh@chromium.org Signed-off-by: Gerd Hoffmann --- diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h index 9996abf60e3ad..401aec1a5efba 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drv.h +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h @@ -139,7 +139,9 @@ struct virtio_gpu_fence_driver { struct virtio_gpu_fence { struct dma_fence f; + uint32_t ring_idx; uint64_t fence_id; + bool emit_fence_info; struct virtio_gpu_fence_driver *drv; struct list_head node; };