mesa: add _mesa_add_sized_state_reference() helper

This will be used for adding packed builtin uniforms.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Timothy Arceri
2018-03-13 20:47:48 +11:00
parent 2377754329
commit 57ebab64c0
2 changed files with 27 additions and 14 deletions
+22 -14
View File
@@ -362,21 +362,11 @@ _mesa_add_typed_unnamed_constant(struct gl_program_parameter_list *paramList,
return pos;
}
/**
* Add a new state reference to the parameter list.
* This will be used when the program contains something like this:
* PARAM ambient = state.material.front.ambient;
*
* \param paramList the parameter list
* \param stateTokens an array of 5 (STATE_LENGTH) state tokens
* \return index of the new parameter.
*/
GLint
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[STATE_LENGTH])
_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[STATE_LENGTH],
const unsigned size, bool pad_and_align)
{
const GLuint size = 4; /* XXX fix */
char *name;
GLint index;
@@ -391,7 +381,8 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList,
name = _mesa_program_state_string(stateTokens);
index = _mesa_add_parameter(paramList, PROGRAM_STATE_VAR, name,
size, GL_NONE, NULL, stateTokens, true);
size, GL_NONE, NULL, stateTokens,
pad_and_align);
paramList->StateFlags |= _mesa_program_state_flags(stateTokens);
/* free name string here since we duplicated it in add_parameter() */
@@ -399,3 +390,20 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList,
return index;
}
/**
* Add a new state reference to the parameter list.
* This will be used when the program contains something like this:
* PARAM ambient = state.material.front.ambient;
*
* \param paramList the parameter list
* \param stateTokens an array of 5 (STATE_LENGTH) state tokens
* \return index of the new parameter.
*/
GLint
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[STATE_LENGTH])
{
return _mesa_add_sized_state_reference(paramList, stateTokens, 4, true);
}
+5
View File
@@ -127,6 +127,11 @@ _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
swizzleOut);
}
extern GLint
_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[STATE_LENGTH],
const unsigned size, bool pad_and_align);
extern GLint
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[]);