iris: Print the batch name when decoding
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 8 Nov 2018 23:32:59 +0000 (15:32 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:09 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_batch.c
src/gallium/drivers/iris/iris_batch.h
src/gallium/drivers/iris/iris_context.c

index 45fda4cd0b59f159d1b47171b989824685da3bb3..203ca139f66c69c1a486e2f1da8c6c3bbc2f5a86 100644 (file)
@@ -140,11 +140,13 @@ iris_init_batch(struct iris_batch *batch,
                 struct iris_vtable *vtbl,
                 struct pipe_debug_callback *dbg,
                 struct iris_batch **all_batches,
+                const char *name,
                 uint8_t engine)
 {
    batch->screen = screen;
    batch->vtbl = vtbl;
    batch->dbg = dbg;
+   batch->name = name;
 
    /* engine should be one of I915_EXEC_RENDER, I915_EXEC_BLT, etc. */
    assert((engine & ~I915_EXEC_RING_MASK) == 0);
@@ -456,9 +458,9 @@ _iris_batch_flush_fence(struct iris_batch *batch,
          second_bytes = bytes_for_commands;
          bytes_for_commands += batch->primary_batch_size;
       }
-      fprintf(stderr, "%19s:%-3d: Batchbuffer flush with %5d+%5db (%0.1f%%) "
+      fprintf(stderr, "%19s:%-3d: %s batch [%u] flush with %5d+%5db (%0.1f%%) "
               "(cmds), %4d BOs (%0.1fMb aperture)\n",
-              file, line,
+              file, line, batch->name, batch->hw_ctx_id,
               batch->primary_batch_size, second_bytes,
               100.0f * bytes_for_commands / BATCH_SZ,
               batch->exec_count,
index 17f2a581d9758d3f612278ebbf67eaf166ac8990..c8efee2015a7b663727167ff22c473caf854b49a 100644 (file)
@@ -49,6 +49,9 @@ struct iris_batch {
    struct iris_vtable *vtbl;
    struct pipe_debug_callback *dbg;
 
+   /** The name of this batch for debug info (e.g. "render") */
+   const char *name;
+
    /** Current batchbuffer being queued up. */
    struct iris_bo *bo;
    void *map;
@@ -109,6 +112,7 @@ void iris_init_batch(struct iris_batch *batch,
                      struct iris_vtable *vtbl,
                      struct pipe_debug_callback *dbg,
                      struct iris_batch **other_batches,
+                     const char *name,
                      uint8_t ring);
 void iris_chain_to_new_batch(struct iris_batch *batch);
 void iris_batch_free(struct iris_batch *batch);
index 9283bff63115e32b610f9ba11c6d13ef888a5811..981b7dd8b88dc00c6208901ac11f3f6f4eddabd0 100644 (file)
@@ -215,10 +215,11 @@ iris_create_context(struct pipe_screen *pscreen, void *priv, unsigned flags)
       &ice->render_batch,
       &ice->compute_batch,
    };
+   const char *batch_names[IRIS_BATCH_COUNT] = { "render", "compute", };
 
    for (int i = 0; i < IRIS_BATCH_COUNT; i++) {
       iris_init_batch(batches[i], screen, &ice->vtbl, &ice->dbg,
-                      batches, I915_EXEC_RENDER);
+                      batches, batch_names[i], I915_EXEC_RENDER);
    }
 
    ice->vtbl.init_render_context(screen, &ice->render_batch, &ice->vtbl,