Mesa (master): i965: Update brw_save_primitives_written_counters for pre-Gen7.

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Feb 21 20:38:14 UTC 2017


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Feb 16 21:17:44 2017 -0800

i965: Update brw_save_primitives_written_counters for pre-Gen7.

Sandybridge and earlier only have a single counter.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

---

 src/mesa/drivers/dri/i965/gen6_sol.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sol.c b/src/mesa/drivers/dri/i965/gen6_sol.c
index 41158bd..8adac92 100644
--- a/src/mesa/drivers/dri/i965/gen6_sol.c
+++ b/src/mesa/drivers/dri/i965/gen6_sol.c
@@ -297,11 +297,17 @@ brw_save_primitives_written_counters(struct brw_context *brw,
    brw_emit_mi_flush(brw);
 
    /* Emit MI_STORE_REGISTER_MEM commands to write the values. */
-   for (int i = 0; i < streams; i++) {
-      int offset = (obj->prim_count_buffer_index + i) * sizeof(uint64_t);
+   if (brw->gen >= 7) {
+      for (int i = 0; i < streams; i++) {
+         int offset = (obj->prim_count_buffer_index + i) * sizeof(uint64_t);
+         brw_store_register_mem64(brw, obj->prim_count_bo,
+                                  GEN7_SO_NUM_PRIMS_WRITTEN(i),
+                                  offset);
+      }
+   } else {
       brw_store_register_mem64(brw, obj->prim_count_bo,
-                               GEN7_SO_NUM_PRIMS_WRITTEN(i),
-                               offset);
+                               GEN6_SO_NUM_PRIMS_WRITTEN,
+                               obj->prim_count_buffer_index * sizeof(uint64_t));
    }
 
    /* Update where to write data to. */




More information about the mesa-commit mailing list