From 7d27a9ffb36909812c249558da2485da44afd89f Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Tue, 11 Feb 2020 21:11:07 -0500 Subject: [PATCH] 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 Reviewed-by: Eric Anholt Part-of: --- 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); -- 2.30.2