[Mesa-dev] [PATCH 15/20] intel/error2aub: store engine last ring buffer head/tail pointers

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue Sep 25 08:23:54 UTC 2018


Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
 src/intel/tools/error2aub.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/intel/tools/error2aub.c b/src/intel/tools/error2aub.c
index 0400da53470..72531a97b18 100644
--- a/src/intel/tools/error2aub.c
+++ b/src/intel/tools/error2aub.c
@@ -279,6 +279,14 @@ main(int argc, char *argv[])
 
    enum address_space active_gtt = PPGTT;
 
+   struct {
+      struct {
+         uint32_t ring_buffer_head;
+         uint32_t ring_buffer_tail;
+      } instances[3];
+   } engines[I915_ENGINE_CLASS_VIDEO_ENHANCE + 1];
+   memset(engines, 0, sizeof(engines));
+
    int num_ring_bos = 0;
 
    struct list_head bo_list;
@@ -309,6 +317,20 @@ main(int argc, char *argv[])
          continue;
       }
 
+      if (sscanf(line, "  ring->head: 0x%x\n",
+                 &engines[
+                    active_engine_class].instances[
+                       active_engine_instance].ring_buffer_head) == 1) {
+         continue;
+      }
+
+      if (sscanf(line, "  ring->tail: 0x%x\n",
+                 &engines[
+                    active_engine_class].instances[
+                       active_engine_instance].ring_buffer_tail) == 1) {
+         continue;
+      }
+
       const char *active_start = "Active (";
       if (strncmp(line, active_start, strlen(active_start)) == 0) {
          char *ring = line + strlen(active_start);
-- 
2.19.0



More information about the mesa-dev mailing list