On Mon, May 19, 2025 at 2:15 PM Dave Airlie airlied@gmail.com wrote:
On Tue, 20 May 2025 at 03:54, Rob Clark robdclark@gmail.com wrote:
From: Rob Clark robdclark@chromium.org
Conversion to DRM GPU VA Manager[1], and adding support for Vulkan Sparse Memory[2] in the form of:
A new VM_BIND submitqueue type for executing VM MSM_SUBMIT_BO_OP_MAP/ MAP_NULL/UNMAP commands
A new VM_BIND ioctl to allow submitting batches of one or more MAP/MAP_NULL/UNMAP commands to a VM_BIND submitqueue
I did not implement support for synchronous VM_BIND commands. Since userspace could just immediately wait for the `SUBMIT` to complete, I don't think we need this extra complexity in the kernel. Synchronous/immediate VM_BIND operations could be implemented with a 2nd VM_BIND submitqueue.
This seems suboptimal for Vulkan userspaces. non-sparse binds are all synchronous, you are adding an extra ioctl to wait, or do you manage these via a different mechanism?
Normally it's just an extra in-fence for the SUBMIT ioctl to ensure the binds happen before cmd execution
When it comes to UAPI, it's easier to add something later, than to take something away, so I don't see a problem adding synchronous binds later if that proves to be needed. But I don't think it is.
BR, -R