mesa: additional program limit assertions
authorBrian Paul <brianp@vmware.com>
Tue, 10 Aug 2010 14:38:12 +0000 (08:38 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 10 Aug 2010 14:38:19 +0000 (08:38 -0600)
src/mesa/program/program.c

index d99584d63bfc55946d9964ce834f1f63fe75b45a..3b6d68274465bbe7bd0e646836487feddf29ae25 100644 (file)
@@ -55,13 +55,21 @@ _mesa_init_program(GLcontext *ctx)
 
    /*
     * If this assertion fails, we need to increase the field
-    * size for register indexes.
+    * size for register indexes (see INST_INDEX_BITS).
     */
    ASSERT(ctx->Const.VertexProgram.MaxUniformComponents / 4
           <= (1 << INST_INDEX_BITS));
    ASSERT(ctx->Const.FragmentProgram.MaxUniformComponents / 4
           <= (1 << INST_INDEX_BITS));
 
+   ASSERT(ctx->Const.VertexProgram.MaxTemps <= (1 << INST_INDEX_BITS));
+   ASSERT(ctx->Const.VertexProgram.MaxLocalParams <= (1 << INST_INDEX_BITS));
+   ASSERT(ctx->Const.FragmentProgram.MaxTemps <= (1 << INST_INDEX_BITS));
+   ASSERT(ctx->Const.FragmentProgram.MaxLocalParams <= (1 << INST_INDEX_BITS));
+
+   ASSERT(ctx->Const.VertexProgram.MaxUniformComponents <= 4 * MAX_UNIFORMS);
+   ASSERT(ctx->Const.FragmentProgram.MaxUniformComponents <= 4 * MAX_UNIFORMS);
+
    /* If this fails, increase prog_instruction::TexSrcUnit size */
    ASSERT(MAX_TEXTURE_UNITS < (1 << 5));