<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 31, 2023 at 3:14 PM Michel Dänzer <<a href="mailto:michel.daenzer@mailbox.org">michel.daenzer@mailbox.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 10/31/23 14:40, Tatsuyuki Ishi wrote:<br>
> In Vulkan, it is the application's responsibility to perform adequate<br>
> synchronization before a sparse unmap, replace or BO destroy operation.<br>
> Until now, the kernel applied the same rule as implicitly-synchronized<br>
> APIs like OpenGL, which with per-VM BOs made page table updates stall the<br>
> queue completely. The newly added AMDGPU_VM_EXPLICIT_SYNC flag allows<br>
> drivers to opt-out of this behavior, while still ensuring adequate implicit<br>
> sync happens for kernel-initiated updates (e.g. BO moves).<br>
> <br>
> We record whether to use implicit sync or not for each freed mapping. To<br>
> avoid increasing the mapping struct's size, this is union-ized with the<br>
> interval tree field which is unused after the unmap.<br>
> <br>
> The reason this is done with a GEM ioctl flag, instead of being a VM /<br>
> context global setting, is that the current libdrm implementation shares<br>
> the DRM handle even between different kind of drivers (radeonsi vs radv).<br>
<br>
Different drivers always use separate contexts though, even with the same DRM file description, don't they?<br>
<br>
FWIW, RADV will also want explicit sync in the CS ioctl.<br>
<br></blockquote><div>I think a crucial problem is that VA ioctls don't take a context so a per-context flag doesn't solve this (the previous attempt used it because all the sync changes were on the CS submit side and not the VA ioctl side) . So I'd still like to solve that side for RADV, but I think the VA ioctl flag makes sense here if we need to do anything different VA ioctl wise.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
-- <br>
Earthling Michel Dänzer            |                  <a href="https://redhat.com" rel="noreferrer" target="_blank">https://redhat.com</a><br>
Libre software enthusiast          |         Mesa and Xwayland developer<br>
<br>
</blockquote></div></div>