Mesa (main): iris: Emit flushes for push constant source buffers
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Apr 13 09:39:36 UTC 2022
Module: Mesa
Branch: main
Commit: 1c8b4940ebf795a2c41b901ef722a6182bc94eda
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c8b4940ebf795a2c41b901ef722a6182bc94eda
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri Mar 4 03:47:06 2022 -0800
iris: Emit flushes for push constant source buffers
Push constant loading is not coherent with L3 according to the document
that describes the hardware change for the vertex buffer L3 Bypass
Disable field.
If we've updated a push constant buffer with say, a blorp_buffer_copy,
we may need to flush both the render cache and the tile cache.
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Reviewed-by: Rohan Garg <rohan.garg at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15275>
---
src/gallium/drivers/iris/iris_state.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 86266add319..c52f927976f 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -5617,6 +5617,9 @@ setup_constant_buffers(struct iris_context *ice,
assert(cbuf->buffer_offset % 32 == 0);
+ if (res)
+ iris_emit_buffer_barrier_for(batch, res->bo, IRIS_DOMAIN_OTHER_READ);
+
push_bos->buffers[n].length = range->length;
push_bos->buffers[n].addr =
res ? ro_bo(res->bo, range->start * 32 + cbuf->buffer_offset)
More information about the mesa-commit
mailing list