intel: Reset the buffer offset after releasing reference to packed upload
[mesa.git] / src / mesa / state_tracker / st_atom.c
index 7806df4a5310592a628c2fff2023b185209fd5a2..bf160fe10809bcbe6c576918f628c69fe3618c05 100644 (file)
@@ -34,8 +34,7 @@
 #include "st_atom.h"
 #include "st_cb_bitmap.h"
 #include "st_program.h"
-
-#include "pipe/p_context.h"
+#include "st_manager.h"
 
 
 /**
@@ -48,6 +47,7 @@ static const struct st_tracked_state *atoms[] =
 
    &st_finalize_textures,
    &st_update_fp,
+   &st_update_gp,
    &st_update_vp,
 
    &st_update_rasterizer,
@@ -58,7 +58,9 @@ static const struct st_tracked_state *atoms[] =
    &st_update_sampler,
    &st_update_texture,
    &st_update_framebuffer,
+   &st_update_msaa,
    &st_update_vs_constants,
+   &st_update_gs_constants,
    &st_update_fs_constants,
    &st_update_pixel_transfer
 };
@@ -107,7 +109,7 @@ static void xor_states( struct st_state_flags *result,
  */
 static void check_program_state( struct st_context *st )
 {
-   GLcontext *ctx = st->ctx;
+   struct gl_context *ctx = st->ctx;
 
    if (ctx->VertexProgram._Current != &st->vp->Base)
       st->dirty.st |= ST_NEW_VERTEX_PROGRAM;
@@ -115,6 +117,8 @@ static void check_program_state( struct st_context *st )
    if (ctx->FragmentProgram._Current != &st->fp->Base)
       st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
 
+   if (ctx->GeometryProgram._Current != &st->gp->Base)
+      st->dirty.st |= ST_NEW_GEOMETRY_PROGRAM;
 }
 
 
@@ -136,16 +140,18 @@ void st_validate_state( struct st_context *st )
 
    check_program_state( st );
 
-   if (st->pipe->screen->update_buffer)
-      st->pipe->screen->update_buffer(st->pipe->screen,
-                                     st->pipe->priv);
+   st_manager_validate_framebuffers(st);
 
    if (state->st == 0)
       return;
 
    /*printf("%s %x/%x\n", __FUNCTION__, state->mesa, state->st);*/
 
+#ifdef NDEBUG
+   if (0) {
+#else
    if (1) {
+#endif
       /* Debug version which enforces various sanity checks on the
        * state flags which are generated and checked to help ensure
        * state atoms are ordered correctly in the list.