Mesa (master): radv: flush and invalidate CB before resetting query pools on GFX9

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 13 09:20:51 UTC 2019


Module: Mesa
Branch: master
Commit: ca6bf9a6cd0a58aba24d3873c9a4938cd548cf10
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca6bf9a6cd0a58aba24d3873c9a4938cd548cf10

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Jun 13 10:52:02 2019 +0200

radv: flush and invalidate CB before resetting query pools on GFX9

We have to emit a CACHE_FLUSH_AND_INV_TS_EVENT to be sure all
prior GPU work is done. While we are at it, also flush and
invalidate DB.

This fixes the following CTS (when the small hint is disabled):
dEQP-VK.query_pool.statistics_query.reset_before_copy.*

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-By: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_query.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c
index 3bbd10cbb34..bec7b23af05 100644
--- a/src/amd/vulkan/radv_query.c
+++ b/src/amd/vulkan/radv_query.c
@@ -1641,6 +1641,10 @@ static void emit_end_query(struct radv_cmd_buffer *cmd_buffer,
 					       RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
 					       RADV_CMD_FLAG_INV_GLOBAL_L2 |
 					       RADV_CMD_FLAG_INV_VMEM_L1;
+	if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX9) {
+		cmd_buffer->active_query_flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB |
+						       RADV_CMD_FLAG_FLUSH_AND_INV_DB;
+	}
 }
 
 void radv_CmdBeginQueryIndexedEXT(




More information about the mesa-commit mailing list