Mesa (master): broadcom/vc5: Account for InstanceID/VertexID in VPM segment size.

Eric Anholt anholt at kemper.freedesktop.org
Thu Mar 22 22:12:29 UTC 2018


Module: Mesa
Branch: master
Commit: d7a015cbc6a6c12a87ee7ec725cc399d3712f43c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7a015cbc6a6c12a87ee7ec725cc399d3712f43c

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Mar 22 13:52:11 2018 -0700

broadcom/vc5: Account for InstanceID/VertexID in VPM segment size.

Fixes failure in
GTF-GLES3.gtf.GL3Tests.draw_instanced.draw_instanced_attrib_size

---

 src/broadcom/compiler/vir.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c
index ff9405e6c1..93990ee806 100644
--- a/src/broadcom/compiler/vir.c
+++ b/src/broadcom/compiler/vir.c
@@ -728,15 +728,20 @@ uint64_t *v3d_compile_vs(const struct v3d_compiler *compiler,
                 prog_data->vpm_input_size += c->vattr_sizes[i];
         }
 
-        /* Input/output segment size are in 8x32-bit multiples. */
-        prog_data->vpm_input_size = align(prog_data->vpm_input_size, 8) / 8;
-        prog_data->vpm_output_size = align(c->num_vpm_writes, 8) / 8;
-
         prog_data->uses_vid = (s->info.system_values_read &
                                (1ull << SYSTEM_VALUE_VERTEX_ID));
         prog_data->uses_iid = (s->info.system_values_read &
                                (1ull << SYSTEM_VALUE_INSTANCE_ID));
 
+        if (prog_data->uses_vid)
+                prog_data->vpm_input_size++;
+        if (prog_data->uses_iid)
+                prog_data->vpm_input_size++;
+
+        /* Input/output segment size are in 8x32-bit multiples. */
+        prog_data->vpm_input_size = align(prog_data->vpm_input_size, 8) / 8;
+        prog_data->vpm_output_size = align(c->num_vpm_writes, 8) / 8;
+
         return v3d_return_qpu_insts(c, final_assembly_size);
 }
 




More information about the mesa-commit mailing list