Mesa (master): anv/blorp: Flush the texture cache in UpdateBuffer
Jason Ekstrand
jekstrand at kemper.freedesktop.org
Fri Apr 14 20:35:07 UTC 2017
Module: Mesa
Branch: master
Commit: 939337e49fb8a6e16f83e4e030743f91b1b05cc5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=939337e49fb8a6e16f83e4e030743f91b1b05cc5
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Fri Mar 31 15:33:51 2017 -0700
anv/blorp: Flush the texture cache in UpdateBuffer
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Cc: "13.0 17.0" <mesa-stable at lists.freedesktop.org>
---
src/intel/vulkan/anv_blorp.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index 4904ee3a5f..1755663e2a 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -690,12 +690,19 @@ void anv_CmdUpdateBuffer(
assert(max_update_size < MAX_SURFACE_DIM * 4);
+ /* We're about to read data that was written from the CPU. Flush the
+ * texture cache so we don't get anything stale.
+ */
+ cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
+
while (dataSize) {
const uint32_t copy_size = MIN2(dataSize, max_update_size);
struct anv_state tmp_data =
anv_cmd_buffer_alloc_dynamic_state(cmd_buffer, copy_size, 64);
+ anv_state_flush(cmd_buffer->device, tmp_data);
+
memcpy(tmp_data.map, pData, copy_size);
int bs = 16;
More information about the mesa-commit
mailing list