From: Stéphane Marchesin Date: Thu, 9 Feb 2012 06:43:14 +0000 (-0800) Subject: i915g: Add a way to profile the contents of command buffers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=633f21652aacbcd7eebe28597cac1dc556ea2b45;p=mesa.git i915g: Add a way to profile the contents of command buffers. --- diff --git a/src/gallium/drivers/i915/i915_state_emit.c b/src/gallium/drivers/i915/i915_state_emit.c index 2aed3f1c7dc..8ab8fb8cd74 100644 --- a/src/gallium/drivers/i915/i915_state_emit.c +++ b/src/gallium/drivers/i915/i915_state_emit.c @@ -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);