iris: implement inter-context busy-tracking
Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the Kernel would ensure dependency tracking for us. After we implemented explicit busy tracking in commit 89a34cb8, only the external objects kept relying on the Kernel's implicit tracking and Iris did inter-batch busy tracking, meaning we lost inter-screen and inter-context synchronization. This seemed fine to me since, as far as I understood, it is the duty of the application to synchronize itself against multiple screens and contexts.
The problem here is that applications were actually relying on the old behavior where the Kernel guarantees synchronization, so 89a34cb8 can be seen as a regression. This commit addresses the inter-context synchronization case.
Cc: mesa-stable
Closes: #5731 (closed)
Closes: #5812 (closed)
Fixes: 89a34cb8 ("iris: switch to explicit busy tracking")
Tested-by: Konstantin Kharlamov
Signed-off-by: Paulo Zanoni