Mesa (master): mesa: add QueryCounter display list support

Marek Olšák mareko at kemper.freedesktop.org
Tue Jul 10 17:08:21 UTC 2012


Module: Mesa
Branch: master
Commit: 204777c5dcf7d4e489e299094f0dc8cb15569354
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=204777c5dcf7d4e489e299094f0dc8cb15569354

Author: Marek Olšák <maraeo at gmail.com>
Date:   Tue Jun 26 21:47:44 2012 +0200

mesa: add QueryCounter display list support

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/main/dlist.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index a0d84cf..a827d13 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -469,6 +469,9 @@ typedef enum
    OPCODE_BEGIN_CONDITIONAL_RENDER,
    OPCODE_END_CONDITIONAL_RENDER,
 
+   /* ARB_timer_query */
+   OPCODE_QUERY_COUNTER,
+
    /* The following three are meta instructions */
    OPCODE_ERROR,                /* raise compiled-in error */
    OPCODE_CONTINUE,
@@ -5351,6 +5354,23 @@ save_EndQueryARB(GLenum target)
    }
 }
 
+
+static void GLAPIENTRY
+save_QueryCounter(GLuint id, GLenum target)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   Node *n;
+   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+   n = alloc_instruction(ctx, OPCODE_QUERY_COUNTER, 2);
+   if (n) {
+      n[1].ui = id;
+      n[2].e = target;
+   }
+   if (ctx->ExecuteFlag) {
+      CALL_QueryCounter(ctx->Exec, (id, target));
+   }
+}
+
 #endif /* FEATURE_queryobj */
 
 
@@ -8345,6 +8365,9 @@ execute_list(struct gl_context *ctx, GLuint list)
          case OPCODE_END_QUERY_ARB:
             CALL_EndQueryARB(ctx->Exec, (n[1].e));
             break;
+         case OPCODE_QUERY_COUNTER:
+            CALL_QueryCounter(ctx->Exec, (n[1].ui, n[2].e));
+            break;
 #endif
          case OPCODE_DRAW_BUFFERS_ARB:
             {
@@ -10309,6 +10332,7 @@ _mesa_create_save_table(void)
    _mesa_init_queryobj_dispatch(table); /* glGetQuery, etc */
    SET_BeginQueryARB(table, save_BeginQueryARB);
    SET_EndQueryARB(table, save_EndQueryARB);
+   SET_QueryCounter(table, save_QueryCounter);
 #endif
 
    SET_DrawBuffersARB(table, save_DrawBuffersARB);




More information about the mesa-commit mailing list