i915g: Add a way to profile the contents of command buffers.
authorStéphane Marchesin <marcheu@chromium.org>
Thu, 9 Feb 2012 06:43:14 +0000 (22:43 -0800)
committerStéphane Marchesin <marcheu@chromium.org>
Mon, 13 Feb 2012 00:32:15 +0000 (16:32 -0800)
src/gallium/drivers/i915/i915_state_emit.c

index 2aed3f1c7dcc6566fa44458dc819ea1fb7d24ca3..8ab8fb8cd7474529b35527bdbff72b7c541df224 100644 (file)
@@ -429,10 +429,22 @@ i915_validate_state(struct i915_context *i915, unsigned *batch_space)
    else
       *batch_space = 0;
 
+#if 0
+static int counter_total = 0;
+#define VALIDATE_ATOM(atom, hw_dirty) \
+   if (i915->hardware_dirty & hw_dirty) { \
+      static int counter_##atom = 0;\
+      validate_##atom(i915, &tmp); \
+      *batch_space += tmp;\
+      counter_##atom += tmp;\
+      counter_total += tmp;\
+      printf("%s: \t%d/%d \t%2.2f\n",#atom, counter_##atom, counter_total, counter_##atom*100.f/counter_total);}
+#else
 #define VALIDATE_ATOM(atom, hw_dirty) \
    if (i915->hardware_dirty & hw_dirty) { \
       validate_##atom(i915, &tmp); \
       *batch_space += tmp; }
+#endif
    VALIDATE_ATOM(flush, I915_HW_FLUSH);
    VALIDATE_ATOM(immediate, I915_HW_IMMEDIATE);
    VALIDATE_ATOM(dynamic, I915_HW_DYNAMIC);