ctx->Array._DrawVAO = NULL;
ctx->VertexProgram._VPModeInputFilter = vp_input_filter;
_mesa_set_draw_vao(ctx, vao);
+ _mesa_set_varying_vp_inputs(ctx, vp_input_filter & vao->_EnabledWithMapMode);
}
void
_mesa_update_edgeflag_state_vao(ctx);
ctx->NewDriverState |= ST_NEW_VERTEX_ARRAYS;
ctx->Array.NewVertexElements = true;
-}
-/**
- * Update derived VAO state. This determines whether to update gallium vertex
- * buffers and vertex elements, and it sets which vertex attribs are enabled
- * according to the filter.
- */
-void
-_mesa_update_vao_state(struct gl_context *ctx, GLbitfield filter)
-{
- struct gl_vertex_array_object *vao = ctx->Array._DrawVAO;
- _mesa_set_varying_vp_inputs(ctx, filter & vao->_EnabledWithMapMode);
+ /* Restore original states. */
+ _mesa_update_edgeflag_state_vao(ctx);
+ _mesa_set_varying_vp_inputs(ctx, ctx->VertexProgram._VPModeInputFilter &
+ saved->_EnabledWithMapMode);
}
-
/**
* Is 'mode' a valid value for glBegin(), glDrawArrays(), glDrawElements(),
* etc? Also, do additional checking related to transformation feedback.
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
GET_CURRENT_CONTEXT(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
{
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
FLUSH_FOR_DRAW(ctx);
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
if (stride == 0)
stride = 4 * sizeof(GLuint); /* sizeof(DrawArraysIndirectCommand) */
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);
if (stride == 0)
stride = 5 * sizeof(GLuint); /* sizeof(DrawElementsIndirectCommand) */
- _mesa_update_vao_state(ctx, ctx->VertexProgram._VPModeInputFilter);
-
if (ctx->NewState)
_mesa_update_state(ctx);