X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_atom.c;h=bf160fe10809bcbe6c576918f628c69fe3618c05;hb=5ce0f7f10908a0636900bae783cb426a6c607673;hp=7806df4a5310592a628c2fff2023b185209fd5a2;hpb=3ce4375912c8ea488460e593e07c5bb15b92dca9;p=mesa.git diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c index 7806df4a531..bf160fe1080 100644 --- a/src/mesa/state_tracker/st_atom.c +++ b/src/mesa/state_tracker/st_atom.c @@ -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.