/* Execute an OpenGL call and time it with a GPU metrics counter. */
#define TIMED_DEFER(function,...) do { \
if (! inside_new_list) { \
- unsigned counter; \
- counter = metrics_counter_new (); \
- metrics_counter_start (counter); \
+ metrics_counter_start (); \
} \
GLWRAP_DEFER(function, __VA_ARGS__); \
if (! inside_new_list) { \
glBegin (GLenum mode)
{
if (! inside_new_list)
- {
- unsigned counter;
- counter = metrics_counter_new ();
- metrics_counter_start (counter);
- }
+ metrics_counter_start ();
GLWRAP_DEFER (glBegin, mode);
}
{
GLWRAP_DEFER (glEnd);
- if (! inside_new_list) {
+ if (! inside_new_list)
metrics_counter_stop ();
- }
}
/* And we need to track display lists to avoid inserting queries
int frames;
int verbose;
-unsigned
-metrics_counter_new (void)
+void
+metrics_counter_start (void)
{
counter_t *counter;
current_context.counter_head = counter;
}
- return counter->id;
-}
-
-void
-metrics_counter_start (unsigned counter)
-{
- glBeginQuery (GL_TIME_ELAPSED, counter);
+ glBeginQuery (GL_TIME_ELAPSED, counter->id);
}
void
#ifndef METRICS_H
#define METRICS_H
-/* Add a new counter to the metrics tracking state.
+/* Start accumulating GPU time.
*
- * The value accumulated in this counter be accounted against the
+ * The time accumulated will be accounted against the
* current program (as set with metrics_set_current_program).
- *
- * Returns: A counter ID suitable for use with metrics_counter_start
- * and metrics_counter_stop.
*/
-unsigned
-metrics_counter_new (void);
-
-/* Start accumulating GPU time spent into the given counter. */
void
-metrics_counter_start (unsigned counter);
+metrics_counter_start (void);
/* Stop accumulating GPU time (stops the most-recently started counter) */
void