mesa: add display list support for NV_texture_barrier
authorMarek Olšák <maraeo@gmail.com>
Fri, 11 Mar 2011 23:15:22 +0000 (00:15 +0100)
committerMarek Olšák <maraeo@gmail.com>
Tue, 15 Mar 2011 14:58:12 +0000 (15:58 +0100)
src/mesa/main/dlist.c

index 4e463dd06a119f4b64010f27997a2854a4228cd7..0112d9dde363febaee68b4036628328fae3aec79 100644 (file)
@@ -431,6 +431,9 @@ typedef enum
    /* GL_ARB_instanced_arrays */
    OPCODE_VERTEX_ATTRIB_DIVISOR,
 
+   /* GL_NV_texture_barrier */
+   OPCODE_TEXTURE_BARRIER_NV,
+
    /* The following three are meta instructions */
    OPCODE_ERROR,                /* raise compiled-in error */
    OPCODE_CONTINUE,
@@ -7031,6 +7034,18 @@ save_VertexAttribDivisor(GLuint index, GLuint divisor)
 }
 
 
+/* GL_NV_texture_barrier */
+static void
+save_TextureBarrierNV()
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+   alloc_instruction(ctx, OPCODE_TEXTURE_BARRIER_NV, 0);
+   if (ctx->ExecuteFlag) {
+      CALL_TextureBarrierNV(ctx->Exec, ());
+   }
+}
+
 
 /**
  * Save an error-generating command into display list.
@@ -8207,6 +8222,10 @@ execute_list(struct gl_context *ctx, GLuint list)
             CALL_VertexAttribDivisorARB(ctx->Exec, (n[1].ui, n[2].ui));
             break;
 
+         case OPCODE_TEXTURE_BARRIER_NV:
+            CALL_TextureBarrierNV(ctx->Exec, ());
+            break;
+
          case OPCODE_CONTINUE:
             n = (Node *) n[1].next;
             break;
@@ -9881,6 +9900,9 @@ _mesa_create_save_table(void)
    /* GL_ARB_instanced_arrays */
    SET_VertexAttribDivisorARB(table, save_VertexAttribDivisor);
 
+   /* GL_NV_texture_barrier */
+   SET_TextureBarrierNV(table, save_TextureBarrierNV);
+
    /* GL_ARB_draw_buffer_blend */
    SET_BlendFunciARB(table, save_BlendFunci);
    SET_BlendFuncSeparateiARB(table, save_BlendFuncSeparatei);