amdgpu doesn't do implicit sync, requires drivers to do it in IBs

Christian König ckoenig.leichtzumerken at gmail.com
Thu May 28 09:11:31 UTC 2020


Well we still need implicit sync or otherwise the GPU scheduler would 
pick up the jobs in the wrong order.

See without this when we have the following sequence of submission:

Client IB1 using buffer A
Client IB2
X IB1 using buffer A

We could end up with the execution order

X IB1 using buffer A
Client IB1 using buffer A
Client IB2

And that is not correct. The scheduler is only allowed to do the following:

Client IB1 using buffer A
X IB1 using buffer A
Client IB2

And that's what implicit sync is taking care of.

Christian.

Am 26.05.20 um 00:07 schrieb Marek Olšák:
> If a user mode driver is changed to rely on the existence of implicit 
> sync, it results in corruption and flickering as reported here: 
> https://gitlab.freedesktop.org/mesa/mesa/-/issues/2950
>
> Marek
>
> On Mon, May 25, 2020 at 6:05 PM Marek Olšák <maraeo at gmail.com 
> <mailto:maraeo at gmail.com>> wrote:
>
>     Hi Christian,
>
>     Bas and Michel wanted to discuss this. The main disadvantage of no
>     implicit (pipeline) sync within the same queue is that we get
>     lower performance and lower GPU utilization in some cases.
>
>     We actually never really needed the kernel to have implicit sync,
>     because all user mode drivers contained hacks to work without it.
>
>     Marek
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20200528/8fc0ea9b/attachment-0001.htm>


More information about the amd-gfx mailing list