summaryrefslogtreecommitdiffstats
path: root/src/freedreno
diff options
context:
space:
mode:
authorJonathan Marek <[email protected]>2020-02-11 21:11:07 -0500
committerMarge Bot <[email protected]>2020-02-28 14:04:20 +0000
commit7d27a9ffb36909812c249558da2485da44afd89f (patch)
treee3a20446a4266d8522f6027c9bdf4283aa2e26b3 /src/freedreno
parent0f0662a5515d04f46dac332b69ec324bad16d812 (diff)
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 <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979>
Diffstat (limited to 'src/freedreno')
-rw-r--r--src/freedreno/vulkan/tu_pipeline.c6
1 files changed, 5 insertions, 1 deletions
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);