summaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2019-10-09 14:30:49 +0200
committerSamuel Pitoiset <[email protected]>2019-10-10 13:23:20 +0200
commitdad80eadb2815727ece2827ca29dd648ab1adbb1 (patch)
tree974340fb9b33e277310d9274b4e68d8ca9178ded /src/amd
parentaa75be05af5cd261c96eddb8a42efa85bbb1ba89 (diff)
radv: sync before resetting query pools if timestamps have been written
Otherwise, the GPU might write timestamp queries after the reset operation. This is similar to other query operations. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/vulkan/radv_query.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c
index ba9723244ee..cafe0253864 100644
--- a/src/amd/vulkan/radv_query.c
+++ b/src/amd/vulkan/radv_query.c
@@ -1773,5 +1773,15 @@ void radv_CmdWriteTimestamp(
}
query_va += pool->stride;
}
+
+ cmd_buffer->active_query_flush_bits |= RADV_CMD_FLAG_PS_PARTIAL_FLUSH |
+ RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
+ RADV_CMD_FLAG_INV_L2 |
+ RADV_CMD_FLAG_INV_VCACHE;
+ 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;
+ }
+
assert(cmd_buffer->cs->cdw <= cdw_max);
}