mesa: remove _NEW_VARYING_VP_INPUTS in favor of _NEW_FF_(VERT|FRAG)_PROGRAM

This adds _NEW_FF_FRAG_PROGRAM.

_mesa_set_varying_vp_inputs flags both fixed-func programs because both use
the state.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>
This commit is contained in:
Marek Olšák 2021-02-01 16:09:04 -05:00 committed by Marge Bot
parent 8e56ad6fae
commit abd57010f3
5 changed files with 8 additions and 13 deletions

View file

@ -425,8 +425,6 @@ static struct dirty_bit_map mesa_bits[] = {
DEFINE_BIT(_NEW_PROGRAM),
DEFINE_BIT(_NEW_PROGRAM_CONSTANTS),
DEFINE_BIT(_NEW_FRAG_CLAMP),
/* Avoid sign extension problems. */
{(unsigned) _NEW_VARYING_VP_INPUTS, "_NEW_VARYING_VP_INPUTS", 0},
{0, 0, 0}
};

View file

@ -86,7 +86,7 @@ _mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs)
if (ctx->VertexProgram._VPModeOptimizesConstantAttribs &&
ctx->VertexProgram._VaryingInputs != varying_inputs) {
ctx->VertexProgram._VaryingInputs = varying_inputs;
ctx->NewState |= _NEW_VARYING_VP_INPUTS;
ctx->NewState |= _NEW_FF_VERT_PROGRAM | _NEW_FF_FRAG_PROGRAM;
}
}

View file

@ -179,7 +179,6 @@ static GLbitfield filter_fp_input_mask( GLbitfield fp_inputs,
/* Fixed function vertex logic */
GLbitfield possible_inputs = 0;
/* _NEW_VARYING_VP_INPUTS */
GLbitfield varying_inputs = ctx->VertexProgram._VaryingInputs;
/* We only update ctx->VertexProgram._VaryingInputs when in VP_MODE_FF _VPMode */
assert(VP_MODE_FF == ctx->VertexProgram._VPMode);

View file

@ -4657,7 +4657,7 @@ struct gl_matrix_stack
#define _NEW_FF_VERT_PROGRAM (1u << 28)
#define _NEW_FRAG_CLAMP (1u << 29)
#define _NEW_MATERIAL (1u << 30) /**< gl_context::Light.Material */
#define _NEW_VARYING_VP_INPUTS (1u << 31) /**< gl_context::VertexProgram._VaryingInputs */
#define _NEW_FF_FRAG_PROGRAM (1u << 31)
#define _NEW_ALL ~0
/*@}*/

View file

@ -491,16 +491,14 @@ _mesa_update_state_locked( struct gl_context *ctx )
if (ctx->FragmentProgram._UsesTexEnvProgram) {
prog_flags |= _NEW_BUFFERS | _NEW_TEXTURE_OBJECT | _NEW_FOG |
_NEW_VARYING_VP_INPUTS | _NEW_LIGHT_FF_PROGRAM |
_NEW_POINT | _NEW_RENDERMODE | _NEW_COLOR |
_NEW_TEXTURE_STATE;
_NEW_FF_FRAG_PROGRAM | _NEW_POINT | _NEW_RENDERMODE |
_NEW_COLOR | _NEW_TEXTURE_STATE | _NEW_LIGHT_FF_PROGRAM;
}
if (ctx->VertexProgram._UsesTnlProgram) {
prog_flags |= _NEW_VARYING_VP_INPUTS | _NEW_TEXTURE_OBJECT |
prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_TEXTURE_OBJECT |
_NEW_TEXTURE_MATRIX | _NEW_TRANSFORM | _NEW_POINT |
_NEW_FOG | _NEW_LIGHT_FF_PROGRAM | _NEW_TEXTURE_STATE |
_NEW_FF_VERT_PROGRAM;
_NEW_FOG | _NEW_LIGHT_FF_PROGRAM | _NEW_TEXTURE_STATE;
}
if (new_state & prog_flags) {
@ -624,8 +622,8 @@ set_vertex_processing_mode(struct gl_context *ctx, gl_vertex_processing_mode m)
}
/* Since we only track the varying inputs while being in fixed function
* vertex processing mode, we may need to recheck for the
* _NEW_VARYING_VP_INPUTS bit.
* vertex processing mode, we may need to update fixed-func shaders
* for zero-stride vertex attribs.
*/
_mesa_set_varying_vp_inputs(ctx, ctx->Array._DrawVAOEnabledAttribs);
}