mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 13:00:09 +01:00
mesa: add _NEW_VARYING_VP_INPUTS for gl_context::varying_vp_inputs
This is a frequently-updated state and _NEW_ARRAY already causes revalidation of the vbo module. It's kinda counter-productive to recompute arrays in the vbo module if _NEW_ARRAY is set and then set _NEW_ARRAY again. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
784dd51198
commit
576c8c592a
5 changed files with 11 additions and 9 deletions
|
|
@ -337,7 +337,7 @@ static GLbitfield get_fp_input_mask( struct gl_context *ctx )
|
|||
}
|
||||
else if (!(vertexProgram || vertexShader)) {
|
||||
/* Fixed function vertex logic */
|
||||
/* _NEW_ARRAY */
|
||||
/* _NEW_VARYING_VP_INPUTS */
|
||||
GLbitfield64 varying_inputs = ctx->varying_vp_inputs;
|
||||
|
||||
/* These get generated in the setup routine regardless of the
|
||||
|
|
|
|||
|
|
@ -3062,6 +3062,7 @@ struct gl_matrix_stack
|
|||
#define _NEW_BUFFER_OBJECT (1 << 28)
|
||||
#define _NEW_FRAG_CLAMP (1 << 29)
|
||||
#define _NEW_TRANSFORM_FEEDBACK (1 << 30) /**< gl_context::TransformFeedback */
|
||||
#define _NEW_VARYING_VP_INPUTS (1 << 31) /**< gl_context::varying_vp_inputs */
|
||||
#define _NEW_ALL ~0
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -473,12 +473,13 @@ _mesa_update_state_locked( struct gl_context *ctx )
|
|||
/* Determine which state flags effect vertex/fragment program state */
|
||||
if (ctx->FragmentProgram._MaintainTexEnvProgram) {
|
||||
prog_flags |= (_NEW_BUFFERS | _NEW_TEXTURE | _NEW_FOG |
|
||||
_NEW_ARRAY | _NEW_LIGHT | _NEW_POINT | _NEW_RENDERMODE |
|
||||
_NEW_PROGRAM | _NEW_FRAG_CLAMP | _NEW_COLOR);
|
||||
_NEW_VARYING_VP_INPUTS | _NEW_LIGHT | _NEW_POINT |
|
||||
_NEW_RENDERMODE | _NEW_PROGRAM | _NEW_FRAG_CLAMP |
|
||||
_NEW_COLOR);
|
||||
}
|
||||
if (ctx->VertexProgram._MaintainTnlProgram) {
|
||||
prog_flags |= (_NEW_ARRAY | _NEW_TEXTURE | _NEW_TEXTURE_MATRIX |
|
||||
_NEW_TRANSFORM | _NEW_POINT |
|
||||
prog_flags |= (_NEW_VARYING_VP_INPUTS | _NEW_TEXTURE |
|
||||
_NEW_TEXTURE_MATRIX | _NEW_TRANSFORM | _NEW_POINT |
|
||||
_NEW_FOG | _NEW_LIGHT |
|
||||
_MESA_NEW_NEED_EYE_COORDS);
|
||||
}
|
||||
|
|
@ -626,7 +627,7 @@ _mesa_set_varying_vp_inputs( struct gl_context *ctx,
|
|||
{
|
||||
if (ctx->varying_vp_inputs != varying_inputs) {
|
||||
ctx->varying_vp_inputs = varying_inputs;
|
||||
ctx->NewState |= _NEW_ARRAY;
|
||||
ctx->NewState |= _NEW_VARYING_VP_INPUTS;
|
||||
/*printf("%s %x\n", __FUNCTION__, varying_inputs);*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -523,8 +523,8 @@ recalculate_input_bindings(struct gl_context *ctx)
|
|||
* Examine the enabled vertex arrays to set the exec->array.inputs[] values.
|
||||
* These will point to the arrays to actually use for drawing. Some will
|
||||
* be user-provided arrays, other will be zero-stride const-valued arrays.
|
||||
* Note that this might set the _NEW_ARRAY dirty flag so state validation
|
||||
* must be done after this call.
|
||||
* Note that this might set the _NEW_VARYING_VP_INPUTS dirty flag so state
|
||||
* validation must be done after this call.
|
||||
*/
|
||||
void
|
||||
vbo_bind_arrays(struct gl_context *ctx)
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ vbo_exec_vtx_flush(struct vbo_exec_context *exec, GLboolean keepUnmapped)
|
|||
if (exec->vtx.copied.nr != exec->vtx.vert_count) {
|
||||
struct gl_context *ctx = exec->ctx;
|
||||
|
||||
/* Before the update_state() as this may raise _NEW_ARRAY
|
||||
/* Before the update_state() as this may raise _NEW_VARYING_VP_INPUTS
|
||||
* from _mesa_set_varying_vp_inputs().
|
||||
*/
|
||||
vbo_exec_bind_arrays( ctx );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue