Mesa (master): turnip: check the right alignment requirement on shader iova
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Feb 28 14:28:09 UTC 2020
Module: Mesa
Branch: master
Commit: 7d27a9ffb36909812c249558da2485da44afd89f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d27a9ffb36909812c249558da2485da44afd89f
Author: Jonathan Marek <jonathan at marek.ca>
Date: Tue Feb 11 21:11:07 2020 -0500
turnip: check the right alignment requirement on shader iova
I had some trouble because I assumed this was right, tested that the
alignment requirement is actually 16.
Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979>
---
src/freedreno/vulkan/tu_pipeline.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c
index d1dc5644cc6..4bd59a087d5 100644
--- a/src/freedreno/vulkan/tu_pipeline.c
+++ b/src/freedreno/vulkan/tu_pipeline.c
@@ -972,7 +972,11 @@ tu6_emit_shader_object(struct tu_cs *cs,
assert(variant->type == stage);
const uint64_t binary_iova = binary_bo->iova + binary_offset;
- assert((binary_iova & 0x3) == 0);
+ assert((binary_iova & 0xf) == 0);
+ /* note: it looks like HW might try to read a few instructions beyond the instrlen size
+ * of the shader. this could be a potential source of problems at some point
+ * possibly this doesn't happen if shader iova is aligned enough (to 4k for example)
+ */
tu_cs_emit_pkt4(cs, reg, 2);
tu_cs_emit_qw(cs, binary_iova);
More information about the mesa-commit
mailing list