pan/midgard: Implement non-aligned UBOs
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 15 Nov 2019 19:13:18 +0000 (14:13 -0500)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 18 Nov 2019 02:18:45 +0000 (21:18 -0500)
The field is more fine-grained than we had assumed.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/midgard_compile.c

index bf794997796c7a3621ce176a4917159e09d04518..19573900bd9aa03639643b1c67fa315e5473a051 100644 (file)
@@ -1131,12 +1131,9 @@ emit_ubo_read(
 
         midgard_instruction ins = m_ld_ubo_int4(dest, offset);
 
-        assert((offset & 0xF) == 0);
-        offset /= 16;
-
         /* TODO: Don't split */
-        ins.load_store.varying_parameters = (offset & 7) << 7;
-        ins.load_store.address = offset >> 3;
+        ins.load_store.varying_parameters = (offset & 0x7F) << 3;
+        ins.load_store.address = offset >> 7;
         ins.mask = mir_mask_for_intr(instr, true);
 
         if (indirect_offset) {