There is any PIPE_CONTROL flush added by GuC at the end of batch buffers?
I have a group of Vulkan tests that results flips at every test execution.
Adding a PIPE_CONTROL at the end of batch buffers in Mesa + https://patchwork.freedesktop.org/patch/539712/?series=118446&rev=1 in Xe KMD fixes those tests for good.
So I was wondering if there is any difference between i915 and Xe around this. I see i915 doing emit_flush(rq, EMIT_FLUSH) in several places that I think that are execlist only.
Xe don't do anything like emit_flush(rq, EMIT_FLUSH), it only do something like emit_flush(rq, EMIT_INVALIDATE) before emit emit_bb_start().
What about the i915 emit_fini_breadcrumb() flushes? Why Xe don't need those?