anv: flush tile cache with query copy command
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 14 Jan 2022 08:06:31 +0000 (10:06 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 18 Mar 2022 10:02:33 +0000 (10:02 +0000)
This fixes the test_resolve_non_issued_query_data vkd3d-proton test.

This change is required on TGL+ (maybe ICL?) because on all platforms
3D pipeline writes are not coherent with CS. On previous platform we
fixed this by flushing the render cache to make sure data is visble to
CS before it writes to memory. But on more recently platforms,
flushing the render cache leaves the data in the tile cache which is
still not coherent with CS, so we need to flush that one too.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14552>

src/intel/vulkan/genX_query.c

index f55c7d0..d6dc493 100644 (file)
@@ -1380,6 +1380,7 @@ void genX(CmdCopyQueryPoolResults)(
     */
    if (cmd_buffer->state.pending_pipe_bits & ANV_PIPE_RENDER_TARGET_BUFFER_WRITES) {
       anv_add_pending_pipe_bits(cmd_buffer,
+                                ANV_PIPE_TILE_CACHE_FLUSH_BIT |
                                 ANV_PIPE_RENDER_TARGET_CACHE_FLUSH_BIT,
                                 "CopyQueryPoolResults");
    }