anv: flush pipeline before query result copies
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 29 Nov 2018 13:02:03 +0000 (13:02 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 29 Nov 2018 22:07:31 +0000 (22:07 +0000)
commit37f9788e9a8e443772b5ad6f339567e6ae6a8320
tree047cb68ab8f86ea66783f45745c38826ee324388
parent39b20b7d4f464fbbd181af19ab419d1e488af2e5
anv: flush pipeline before query result copies

Pipeline state pending bits should be taken into account when copying
results.

In the particular bug below, the results of the
vkCmdCopyQueryPoolResults() command was being overwritten by the
preceding vkCmdCopyBuffer() with a same destination buffer. This is
because we copy the buffers using the 3D pipeline whereas we copy the
query results using the command streamer. Those pieces of HW work in
parallel and the results are somewhat undefined.

v2: Unconditionally flush the pipeline before copying the results
    (Jason)

v3: Wrap & expressions (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108894
Cc: mesa-stable@lists.freedesktop.org
src/intel/vulkan/genX_query.c