mesa: fix assertion failure for GL_ALPHA FBOs
[mesa.git] / src / mesa / main / context.c
index 0963e75f35ebcc4172d1a9aecb04ac2984ffacdb..e140a21b35486a71f2f1b664d9395c8d95505ebf 100644 (file)
@@ -415,6 +415,7 @@ one_time_init( GLcontext *ctx )
       }
 
       _mesa_init_sqrt_table();
+      _mesa_init_get_hash(ctx);
 
       for (i = 0; i < 256; i++) {
          _mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
@@ -652,6 +653,9 @@ check_context_limits(GLcontext *ctx)
 
    assert(ctx->Const.MaxDrawBuffers <= MAX_DRAW_BUFFERS);
 
+   /* if this fails, add more enum values to gl_buffer_index */
+   assert(BUFFER_COLOR0 + MAX_DRAW_BUFFERS <= BUFFER_COUNT);
+
    /* XXX probably add more tests */
 }
 
@@ -899,22 +903,6 @@ _mesa_initialize_context_for_api(GLcontext *ctx,
 #endif
    ctx->CurrentDispatch = ctx->Exec;
 
-#if FEATURE_dlist
-   ctx->Save = _mesa_create_save_table();
-   if (!ctx->Save) {
-      _mesa_release_shared_state(ctx, ctx->Shared);
-      free(ctx->Exec);
-      return GL_FALSE;
-   }
-
-   _mesa_install_save_vtxfmt( ctx, &ctx->ListState.ListVtxfmt );
-#endif
-
-   /* Neutral tnl module stuff */
-   _mesa_init_exec_vtxfmt( ctx ); 
-   ctx->TnlModule.Current = NULL;
-   ctx->TnlModule.SwapCount = 0;
-
    ctx->FragmentProgram._MaintainTexEnvProgram
       = (_mesa_getenv("MESA_TEX_PROG") != NULL);
 
@@ -927,6 +915,21 @@ _mesa_initialize_context_for_api(GLcontext *ctx,
 
    switch (ctx->API) {
    case API_OPENGL:
+      /* Neutral tnl module stuff */
+      _mesa_init_exec_vtxfmt( ctx ); 
+      ctx->TnlModule.Current = NULL;
+      ctx->TnlModule.SwapCount = 0;
+
+#if FEATURE_dlist
+      ctx->Save = _mesa_create_save_table();
+      if (!ctx->Save) {
+        _mesa_release_shared_state(ctx, ctx->Shared);
+        free(ctx->Exec);
+        return GL_FALSE;
+      }
+
+      _mesa_install_save_vtxfmt( ctx, &ctx->ListState.ListVtxfmt );
+#endif
       break;
    case API_OPENGLES:
       /**